Index: pkg/analyzer/lib/src/generated/resolver.dart |
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart |
index 10466cb3eb0b9cc0a9cd73489ee1cf39bf01d0b5..4d27e6b8e9192ccd69695f3437d1cc82e87d3158 100644 |
--- a/pkg/analyzer/lib/src/generated/resolver.dart |
+++ b/pkg/analyzer/lib/src/generated/resolver.dart |
@@ -2001,21 +2001,12 @@ class HtmlUnitBuilder implements ht.XmlVisitor<Object> { |
* Build the HTML element for the given source. |
* |
* @param source the source describing the compilation unit |
- * @return the HTML element that was built |
- * @throws AnalysisException if the analysis could not be performed |
- */ |
- HtmlElementImpl buildHtmlElement(Source source) => buildHtmlElement2(source, _context.getModificationStamp(source), _context.parseHtmlUnit(source)); |
- |
- /** |
- * Build the HTML element for the given source. |
- * |
- * @param source the source describing the compilation unit |
* @param modificationStamp the modification time of the source for which an element is being |
* built |
* @param unit the AST structure representing the HTML |
* @throws AnalysisException if the analysis could not be performed |
*/ |
- HtmlElementImpl buildHtmlElement2(Source source, int modificationStamp, ht.HtmlUnit unit) { |
+ HtmlElementImpl buildHtmlElement(Source source, int modificationStamp, ht.HtmlUnit unit) { |
this._modificationStamp = modificationStamp; |
HtmlElementImpl result = new HtmlElementImpl(_context, source.shortName); |
result.source = source; |
@@ -2368,10 +2359,10 @@ class BestPracticesVerifier extends RecursiveAstVisitor<Object> { |
if (rhsType.isDynamic && rhsNameStr == sc.Keyword.DYNAMIC.syntax) { |
if (node.notOperator == null) { |
// the is case |
- _errorReporter.reportError2(HintCode.UNNECESSARY_TYPE_CHECK_TRUE, node, []); |
+ _errorReporter.reportErrorForNode(HintCode.UNNECESSARY_TYPE_CHECK_TRUE, node, []); |
} else { |
// the is not case |
- _errorReporter.reportError2(HintCode.UNNECESSARY_TYPE_CHECK_FALSE, node, []); |
+ _errorReporter.reportErrorForNode(HintCode.UNNECESSARY_TYPE_CHECK_FALSE, node, []); |
} |
return true; |
} |
@@ -2382,19 +2373,19 @@ class BestPracticesVerifier extends RecursiveAstVisitor<Object> { |
if (rhsType.isObject || (expression is NullLiteral && rhsNameStr == _NULL_TYPE_NAME)) { |
if (node.notOperator == null) { |
// the is case |
- _errorReporter.reportError2(HintCode.UNNECESSARY_TYPE_CHECK_TRUE, node, []); |
+ _errorReporter.reportErrorForNode(HintCode.UNNECESSARY_TYPE_CHECK_TRUE, node, []); |
} else { |
// the is not case |
- _errorReporter.reportError2(HintCode.UNNECESSARY_TYPE_CHECK_FALSE, node, []); |
+ _errorReporter.reportErrorForNode(HintCode.UNNECESSARY_TYPE_CHECK_FALSE, node, []); |
} |
return true; |
} else if (rhsNameStr == _NULL_TYPE_NAME) { |
if (node.notOperator == null) { |
// the is case |
- _errorReporter.reportError2(HintCode.TYPE_CHECK_IS_NULL, node, []); |
+ _errorReporter.reportErrorForNode(HintCode.TYPE_CHECK_IS_NULL, node, []); |
} else { |
// the is not case |
- _errorReporter.reportError2(HintCode.TYPE_CHECK_IS_NOT_NULL, node, []); |
+ _errorReporter.reportErrorForNode(HintCode.TYPE_CHECK_IS_NOT_NULL, node, []); |
} |
return true; |
} |
@@ -2423,7 +2414,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor<Object> { |
displayName = "${displayName}.${constructorElement.displayName}"; |
} |
} |
- _errorReporter.reportError2(HintCode.DEPRECATED_MEMBER_USE, node, [displayName]); |
+ _errorReporter.reportErrorForNode(HintCode.DEPRECATED_MEMBER_USE, node, [displayName]); |
return true; |
} |
return false; |
@@ -2481,7 +2472,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor<Object> { |
if (parenthesizedExpression.parent is MethodInvocation) { |
MethodInvocation methodInvocation = parenthesizedExpression.parent as MethodInvocation; |
if (_TO_INT_METHOD_NAME == methodInvocation.methodName.name && methodInvocation.argumentList.arguments.isEmpty) { |
- _errorReporter.reportError2(HintCode.DIVISION_OPTIMIZATION, methodInvocation, []); |
+ _errorReporter.reportErrorForNode(HintCode.DIVISION_OPTIMIZATION, methodInvocation, []); |
return true; |
} |
} |
@@ -2516,7 +2507,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor<Object> { |
// Check the block for a return statement, if not, create the hint |
BlockFunctionBody blockFunctionBody = body as BlockFunctionBody; |
if (!blockFunctionBody.accept(new ExitDetector())) { |
- _errorReporter.reportError2(HintCode.MISSING_RETURN, returnType, [returnTypeType.displayName]); |
+ _errorReporter.reportErrorForNode(HintCode.MISSING_RETURN, returnType, [returnTypeType.displayName]); |
return true; |
} |
return false; |
@@ -2539,7 +2530,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor<Object> { |
if (equalsOperatorMethodElement != null) { |
PropertyAccessorElement hashCodeElement = classElement.getGetter(_HASHCODE_GETTER_NAME); |
if (hashCodeElement == null) { |
- _errorReporter.reportError2(HintCode.OVERRIDE_EQUALS_BUT_NOT_HASH_CODE, node.name, [classElement.displayName]); |
+ _errorReporter.reportErrorForNode(HintCode.OVERRIDE_EQUALS_BUT_NOT_HASH_CODE, node.name, [classElement.displayName]); |
return true; |
} |
} |
@@ -2592,7 +2583,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor<Object> { |
} |
if (overriddenAccessor != null) { |
String memberType = (executableElement as PropertyAccessorElement).isGetter ? _GETTER : _SETTER; |
- _errorReporter.reportError2(HintCode.OVERRIDDING_PRIVATE_MEMBER, node.name, [ |
+ _errorReporter.reportErrorForNode(HintCode.OVERRIDDING_PRIVATE_MEMBER, node.name, [ |
memberType, |
executableElement.displayName, |
classElement.displayName]); |
@@ -2601,7 +2592,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor<Object> { |
} else { |
MethodElement overriddenMethod = classElement.getMethod(elementName); |
if (overriddenMethod != null) { |
- _errorReporter.reportError2(HintCode.OVERRIDDING_PRIVATE_MEMBER, node.name, [ |
+ _errorReporter.reportErrorForNode(HintCode.OVERRIDDING_PRIVATE_MEMBER, node.name, [ |
_METHOD, |
executableElement.displayName, |
classElement.displayName]); |
@@ -2630,7 +2621,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor<Object> { |
// TODO(jwren) After dartbug.com/13732, revisit this, we should be able to remove the |
// !(x instanceof TypeParameterType) checks. |
if (lhsType != null && rhsType != null && !lhsType.isDynamic && !rhsType.isDynamic && lhsType is! TypeParameterType && rhsType is! TypeParameterType && lhsType.isSubtypeOf(rhsType)) { |
- _errorReporter.reportError2(HintCode.UNNECESSARY_CAST, node, []); |
+ _errorReporter.reportErrorForNode(HintCode.UNNECESSARY_CAST, node, []); |
return true; |
} |
return false; |
@@ -2654,7 +2645,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor<Object> { |
MethodInvocation methodInvocation = expression as MethodInvocation; |
if (identical(methodInvocation.staticType, VoidTypeImpl.instance)) { |
SimpleIdentifier methodName = methodInvocation.methodName; |
- _errorReporter.reportError2(HintCode.USE_OF_VOID_RESULT, methodName, [methodName.name]); |
+ _errorReporter.reportErrorForNode(HintCode.USE_OF_VOID_RESULT, methodName, [methodName.name]); |
return true; |
} |
return false; |
@@ -2719,9 +2710,9 @@ class Dart2JSVerifier extends RecursiveAstVisitor<Object> { |
// } else |
if (typeNameStr == _DOUBLE_TYPE_NAME && libraryElement != null && libraryElement.isDartCore) { |
if (node.notOperator == null) { |
- _errorReporter.reportError2(HintCode.IS_DOUBLE, node, []); |
+ _errorReporter.reportErrorForNode(HintCode.IS_DOUBLE, node, []); |
} else { |
- _errorReporter.reportError2(HintCode.IS_NOT_DOUBLE, node, []); |
+ _errorReporter.reportErrorForNode(HintCode.IS_NOT_DOUBLE, node, []); |
} |
return true; |
} |
@@ -2760,13 +2751,13 @@ class DeadCodeVerifier extends RecursiveAstVisitor<Object> { |
if (lhsResult != null) { |
if (lhsResult.isTrue && isBarBar) { |
// report error on else block: true || !e! |
- _errorReporter.reportError2(HintCode.DEAD_CODE, node.rightOperand, []); |
+ _errorReporter.reportErrorForNode(HintCode.DEAD_CODE, node.rightOperand, []); |
// only visit the LHS: |
safelyVisit(lhsCondition); |
return null; |
} else if (lhsResult.isFalse && isAmpAmp) { |
// report error on if block: false && !e! |
- _errorReporter.reportError2(HintCode.DEAD_CODE, node.rightOperand, []); |
+ _errorReporter.reportErrorForNode(HintCode.DEAD_CODE, node.rightOperand, []); |
// only visit the LHS: |
safelyVisit(lhsCondition); |
return null; |
@@ -2794,7 +2785,7 @@ class DeadCodeVerifier extends RecursiveAstVisitor<Object> { |
Statement lastStatement = statements[size - 1]; |
int offset = nextStatement.offset; |
int length = lastStatement.end - offset; |
- _errorReporter.reportError4(HintCode.DEAD_CODE, offset, length, []); |
+ _errorReporter.reportErrorForOffset(HintCode.DEAD_CODE, offset, length, []); |
return null; |
} |
} |
@@ -2809,12 +2800,12 @@ class DeadCodeVerifier extends RecursiveAstVisitor<Object> { |
if (result != null) { |
if (result.isTrue) { |
// report error on else block: true ? 1 : !2! |
- _errorReporter.reportError2(HintCode.DEAD_CODE, node.elseExpression, []); |
+ _errorReporter.reportErrorForNode(HintCode.DEAD_CODE, node.elseExpression, []); |
safelyVisit(node.thenExpression); |
return null; |
} else { |
// report error on if block: false ? !1! : 2 |
- _errorReporter.reportError2(HintCode.DEAD_CODE, node.thenExpression, []); |
+ _errorReporter.reportErrorForNode(HintCode.DEAD_CODE, node.thenExpression, []); |
safelyVisit(node.elseExpression); |
return null; |
} |
@@ -2833,13 +2824,13 @@ class DeadCodeVerifier extends RecursiveAstVisitor<Object> { |
// report error on else block: if(true) {} else {!} |
Statement elseStatement = node.elseStatement; |
if (elseStatement != null) { |
- _errorReporter.reportError2(HintCode.DEAD_CODE, elseStatement, []); |
+ _errorReporter.reportErrorForNode(HintCode.DEAD_CODE, elseStatement, []); |
safelyVisit(node.thenStatement); |
return null; |
} |
} else { |
// report error on if block: if (false) {!} else {} |
- _errorReporter.reportError2(HintCode.DEAD_CODE, node.thenStatement, []); |
+ _errorReporter.reportErrorForNode(HintCode.DEAD_CODE, node.thenStatement, []); |
safelyVisit(node.elseStatement); |
return null; |
} |
@@ -2873,7 +2864,7 @@ class DeadCodeVerifier extends RecursiveAstVisitor<Object> { |
CatchClause lastCatchClause = catchClauses[numOfCatchClauses - 1]; |
int offset = nextCatchClause.offset; |
int length = lastCatchClause.end - offset; |
- _errorReporter.reportError4(HintCode.DEAD_CODE_CATCH_FOLLOWING_CATCH, offset, length, []); |
+ _errorReporter.reportErrorForOffset(HintCode.DEAD_CODE_CATCH_FOLLOWING_CATCH, offset, length, []); |
return null; |
} |
} |
@@ -2882,7 +2873,7 @@ class DeadCodeVerifier extends RecursiveAstVisitor<Object> { |
CatchClause lastCatchClause = catchClauses[numOfCatchClauses - 1]; |
int offset = catchClause.offset; |
int length = lastCatchClause.end - offset; |
- _errorReporter.reportError4(HintCode.DEAD_CODE_ON_CATCH_SUBTYPE, offset, length, [currentType.displayName, type.displayName]); |
+ _errorReporter.reportErrorForOffset(HintCode.DEAD_CODE_ON_CATCH_SUBTYPE, offset, length, [currentType.displayName, type.displayName]); |
return null; |
} |
} |
@@ -2899,7 +2890,7 @@ class DeadCodeVerifier extends RecursiveAstVisitor<Object> { |
CatchClause lastCatchClause = catchClauses[numOfCatchClauses - 1]; |
int offset = nextCatchClause.offset; |
int length = lastCatchClause.end - offset; |
- _errorReporter.reportError4(HintCode.DEAD_CODE_CATCH_FOLLOWING_CATCH, offset, length, []); |
+ _errorReporter.reportErrorForOffset(HintCode.DEAD_CODE_CATCH_FOLLOWING_CATCH, offset, length, []); |
return null; |
} |
} |
@@ -2915,7 +2906,7 @@ class DeadCodeVerifier extends RecursiveAstVisitor<Object> { |
if (result != null) { |
if (result.isFalse) { |
// report error on if block: while (false) {!} |
- _errorReporter.reportError2(HintCode.DEAD_CODE, node.body, []); |
+ _errorReporter.reportErrorForNode(HintCode.DEAD_CODE, node.body, []); |
return null; |
} |
} |
@@ -3525,7 +3516,7 @@ class ImportsVerifier extends RecursiveAstVisitor<Object> { |
*/ |
void generateDuplicateImportHints(ErrorReporter errorReporter) { |
for (ImportDirective duplicateImport in _duplicateImports) { |
- errorReporter.reportError2(HintCode.DUPLICATE_IMPORT, duplicateImport.uri, []); |
+ errorReporter.reportErrorForNode(HintCode.DUPLICATE_IMPORT, duplicateImport.uri, []); |
} |
} |
@@ -3547,7 +3538,7 @@ class ImportsVerifier extends RecursiveAstVisitor<Object> { |
continue; |
} |
} |
- errorReporter.reportError2(HintCode.UNUSED_IMPORT, unusedImport.uri, []); |
+ errorReporter.reportErrorForNode(HintCode.UNUSED_IMPORT, unusedImport.uri, []); |
} |
} |
@@ -3685,7 +3676,7 @@ class ImportsVerifier extends RecursiveAstVisitor<Object> { |
ImportElement importElement = importDirective.element; |
if (importElement != null) { |
NamespaceBuilder builder = new NamespaceBuilder(); |
- namespace = builder.createImportNamespace(importElement); |
+ namespace = builder.createImportNamespaceForDirective(importElement); |
_namespaceMap[importDirective] = namespace; |
} |
} |
@@ -3803,12 +3794,12 @@ class OverrideVerifier extends RecursiveAstVisitor<Object> { |
if (isOverride(element)) { |
if (getOverriddenMember(element) == null) { |
if (element is MethodElement) { |
- _errorReporter.reportError2(HintCode.OVERRIDE_ON_NON_OVERRIDING_METHOD, node.name, []); |
+ _errorReporter.reportErrorForNode(HintCode.OVERRIDE_ON_NON_OVERRIDING_METHOD, node.name, []); |
} else if (element is PropertyAccessorElement) { |
if (element.isGetter) { |
- _errorReporter.reportError2(HintCode.OVERRIDE_ON_NON_OVERRIDING_GETTER, node.name, []); |
+ _errorReporter.reportErrorForNode(HintCode.OVERRIDE_ON_NON_OVERRIDING_GETTER, node.name, []); |
} else { |
- _errorReporter.reportError2(HintCode.OVERRIDE_ON_NON_OVERRIDING_SETTER, node.name, []); |
+ _errorReporter.reportErrorForNode(HintCode.OVERRIDE_ON_NON_OVERRIDING_SETTER, node.name, []); |
} |
} |
} |
@@ -3896,7 +3887,7 @@ class PubVerifier extends RecursiveAstVisitor<Object> { |
Source pubspecSource = _context.sourceFactory.resolveUri(source, relativePubspecPath); |
if (_context.exists(pubspecSource)) { |
// Files inside the lib directory hierarchy should not reference files outside |
- _errorReporter.reportError2(PubSuggestionCode.FILE_IMPORT_INSIDE_LIB_REFERENCES_FILE_OUTSIDE, uriLiteral, []); |
+ _errorReporter.reportErrorForNode(PubSuggestionCode.FILE_IMPORT_INSIDE_LIB_REFERENCES_FILE_OUTSIDE, uriLiteral, []); |
} |
return true; |
} |
@@ -3944,7 +3935,7 @@ class PubVerifier extends RecursiveAstVisitor<Object> { |
if (StringUtilities.indexOf5(fullName, 0, 0x2F, 0x6C, 0x69, 0x62, 0x2F) < 0) { |
// Files outside the lib directory hierarchy should not reference files inside |
// ... use package: url instead |
- _errorReporter.reportError2(PubSuggestionCode.FILE_IMPORT_OUTSIDE_LIB_REFERENCES_FILE_INSIDE, uriLiteral, []); |
+ _errorReporter.reportErrorForNode(PubSuggestionCode.FILE_IMPORT_OUTSIDE_LIB_REFERENCES_FILE_INSIDE, uriLiteral, []); |
return true; |
} |
} |
@@ -3962,7 +3953,7 @@ class PubVerifier extends RecursiveAstVisitor<Object> { |
bool checkForPackageImportContainsDotDot(StringLiteral uriLiteral, String path) { |
if (StringUtilities.startsWith3(path, 0, 0x2E, 0x2E, 0x2F) || StringUtilities.indexOf4(path, 0, 0x2F, 0x2E, 0x2E, 0x2F) >= 0) { |
// Package import should not to contain ".." |
- _errorReporter.reportError2(PubSuggestionCode.PACKAGE_IMPORT_CONTAINS_DOT_DOT, uriLiteral, []); |
+ _errorReporter.reportErrorForNode(PubSuggestionCode.PACKAGE_IMPORT_CONTAINS_DOT_DOT, uriLiteral, []); |
return true; |
} |
return false; |
@@ -4061,7 +4052,7 @@ class ToDoFinder { |
if (matcher.find()) { |
int offset = commentToken.offset + matcher.start() + matcher.group(1).length; |
int length = matcher.group(2).length; |
- _errorReporter.reportError4(TodoCode.TODO, offset, length, [matcher.group(2)]); |
+ _errorReporter.reportErrorForOffset(TodoCode.TODO, offset, length, [matcher.group(2)]); |
} |
} |
} |
@@ -5392,9 +5383,9 @@ class ElementResolver extends SimpleAstVisitor<Object> { |
MethodElement propagatedMethod = lookUpMethod(leftHandSide, propagatedType, methodName); |
node.propagatedElement = propagatedMethod; |
if (shouldReportMissingMember(staticType, staticMethod)) { |
- _resolver.reportErrorProxyConditionalAnalysisError3(staticType.element, StaticTypeWarningCode.UNDEFINED_METHOD, operator, [methodName, staticType.displayName]); |
+ _resolver.reportErrorProxyConditionalAnalysisError(staticType.element, StaticTypeWarningCode.UNDEFINED_METHOD, operator, [methodName, staticType.displayName]); |
} else if (_enableHints && shouldReportMissingMember(propagatedType, propagatedMethod) && !memberFoundInSubclass(propagatedType.element, methodName, true, false)) { |
- _resolver.reportErrorProxyConditionalAnalysisError3(propagatedType.element, HintCode.UNDEFINED_METHOD, operator, [methodName, propagatedType.displayName]); |
+ _resolver.reportErrorProxyConditionalAnalysisError(propagatedType.element, HintCode.UNDEFINED_METHOD, operator, [methodName, propagatedType.displayName]); |
} |
} |
} |
@@ -5414,9 +5405,9 @@ class ElementResolver extends SimpleAstVisitor<Object> { |
MethodElement propagatedMethod = lookUpMethod(leftOperand, propagatedType, methodName); |
node.propagatedElement = propagatedMethod; |
if (shouldReportMissingMember(staticType, staticMethod)) { |
- _resolver.reportErrorProxyConditionalAnalysisError3(staticType.element, StaticTypeWarningCode.UNDEFINED_OPERATOR, operator, [methodName, staticType.displayName]); |
+ _resolver.reportErrorProxyConditionalAnalysisError(staticType.element, StaticTypeWarningCode.UNDEFINED_OPERATOR, operator, [methodName, staticType.displayName]); |
} else if (_enableHints && shouldReportMissingMember(propagatedType, propagatedMethod) && !memberFoundInSubclass(propagatedType.element, methodName, true, false)) { |
- _resolver.reportErrorProxyConditionalAnalysisError3(propagatedType.element, HintCode.UNDEFINED_OPERATOR, operator, [methodName, propagatedType.displayName]); |
+ _resolver.reportErrorProxyConditionalAnalysisError(propagatedType.element, HintCode.UNDEFINED_OPERATOR, operator, [methodName, propagatedType.displayName]); |
} |
} |
} |
@@ -5595,13 +5586,13 @@ class ElementResolver extends SimpleAstVisitor<Object> { |
} |
Object visitExportDirective(ExportDirective node) { |
- Element element = node.element; |
- if (element is ExportElement) { |
+ ExportElement exportElement = node.element; |
+ if (exportElement != null) { |
// The element is null when the URI is invalid |
// TODO(brianwilkerson) Figure out whether the element can ever be something other than an |
// ExportElement |
- resolveCombinators(element.exportedLibrary, node.combinators); |
- setMetadata(element, node); |
+ resolveCombinators(exportElement.exportedLibrary, node.combinators); |
+ setMetadata(exportElement, node); |
} |
return null; |
} |
@@ -5833,7 +5824,7 @@ class ElementResolver extends SimpleAstVisitor<Object> { |
ClassElement enclosingClass = _resolver.enclosingClass; |
targetTypeName = enclosingClass.displayName; |
ErrorCode proxyErrorCode = (generatedWithTypePropagation ? HintCode.UNDEFINED_METHOD : StaticTypeWarningCode.UNDEFINED_METHOD) as ErrorCode; |
- _resolver.reportErrorProxyConditionalAnalysisError(_resolver.enclosingClass, proxyErrorCode, methodName, [methodName.name, targetTypeName]); |
+ _resolver.reportProxyConditionalErrorForNode(_resolver.enclosingClass, proxyErrorCode, methodName, [methodName.name, targetTypeName]); |
} else { |
// ignore Function "call" |
// (if we are about to create a hint using type propagation, then we can use type |
@@ -5855,7 +5846,7 @@ class ElementResolver extends SimpleAstVisitor<Object> { |
} |
targetTypeName = targetType == null ? null : targetType.displayName; |
ErrorCode proxyErrorCode = (generatedWithTypePropagation ? HintCode.UNDEFINED_METHOD : StaticTypeWarningCode.UNDEFINED_METHOD) as ErrorCode; |
- _resolver.reportErrorProxyConditionalAnalysisError(targetType.element, proxyErrorCode, methodName, [methodName.name, targetTypeName]); |
+ _resolver.reportProxyConditionalErrorForNode(targetType.element, proxyErrorCode, methodName, [methodName.name, targetTypeName]); |
} |
} else if (identical(errorCode, StaticTypeWarningCode.UNDEFINED_SUPER_METHOD)) { |
// Generate the type name. |
@@ -5887,9 +5878,9 @@ class ElementResolver extends SimpleAstVisitor<Object> { |
MethodElement propagatedMethod = lookUpMethod(operand, propagatedType, methodName); |
node.propagatedElement = propagatedMethod; |
if (shouldReportMissingMember(staticType, staticMethod)) { |
- _resolver.reportErrorProxyConditionalAnalysisError3(staticType.element, StaticTypeWarningCode.UNDEFINED_OPERATOR, node.operator, [methodName, staticType.displayName]); |
+ _resolver.reportErrorProxyConditionalAnalysisError(staticType.element, StaticTypeWarningCode.UNDEFINED_OPERATOR, node.operator, [methodName, staticType.displayName]); |
} else if (_enableHints && shouldReportMissingMember(propagatedType, propagatedMethod) && !memberFoundInSubclass(propagatedType.element, methodName, true, false)) { |
- _resolver.reportErrorProxyConditionalAnalysisError3(propagatedType.element, HintCode.UNDEFINED_OPERATOR, node.operator, [methodName, propagatedType.displayName]); |
+ _resolver.reportErrorProxyConditionalAnalysisError(propagatedType.element, HintCode.UNDEFINED_OPERATOR, node.operator, [methodName, propagatedType.displayName]); |
} |
return null; |
} |
@@ -5964,9 +5955,9 @@ class ElementResolver extends SimpleAstVisitor<Object> { |
MethodElement propagatedMethod = lookUpMethod(operand, propagatedType, methodName); |
node.propagatedElement = propagatedMethod; |
if (shouldReportMissingMember(staticType, staticMethod)) { |
- _resolver.reportErrorProxyConditionalAnalysisError3(staticType.element, StaticTypeWarningCode.UNDEFINED_OPERATOR, operator, [methodName, staticType.displayName]); |
+ _resolver.reportErrorProxyConditionalAnalysisError(staticType.element, StaticTypeWarningCode.UNDEFINED_OPERATOR, operator, [methodName, staticType.displayName]); |
} else if (_enableHints && shouldReportMissingMember(propagatedType, propagatedMethod) && !memberFoundInSubclass(propagatedType.element, methodName, true, false)) { |
- _resolver.reportErrorProxyConditionalAnalysisError3(propagatedType.element, HintCode.UNDEFINED_OPERATOR, operator, [methodName, propagatedType.displayName]); |
+ _resolver.reportErrorProxyConditionalAnalysisError(propagatedType.element, HintCode.UNDEFINED_OPERATOR, operator, [methodName, propagatedType.displayName]); |
} |
} |
return null; |
@@ -6056,7 +6047,7 @@ class ElementResolver extends SimpleAstVisitor<Object> { |
Annotation annotation = node.parent as Annotation; |
_resolver.reportErrorForNode(CompileTimeErrorCode.INVALID_ANNOTATION, annotation, []); |
} else { |
- _resolver.reportErrorProxyConditionalAnalysisError(_resolver.enclosingClass, StaticWarningCode.UNDEFINED_IDENTIFIER, node, [node.name]); |
+ _resolver.reportProxyConditionalErrorForNode(_resolver.enclosingClass, StaticWarningCode.UNDEFINED_IDENTIFIER, node, [node.name]); |
} |
} |
node.staticElement = element; |
@@ -6249,13 +6240,13 @@ class ElementResolver extends SimpleAstVisitor<Object> { |
sc.Token rightBracket = node.rightBracket; |
ErrorCode errorCode = (shouldReportMissingMember_static ? StaticTypeWarningCode.UNDEFINED_OPERATOR : HintCode.UNDEFINED_OPERATOR) as ErrorCode; |
if (leftBracket == null || rightBracket == null) { |
- _resolver.reportErrorProxyConditionalAnalysisError(shouldReportMissingMember_static ? staticType.element : propagatedType.element, errorCode, node, [ |
+ _resolver.reportProxyConditionalErrorForNode(shouldReportMissingMember_static ? staticType.element : propagatedType.element, errorCode, node, [ |
methodName, |
shouldReportMissingMember_static ? staticType.displayName : propagatedType.displayName]); |
} else { |
int offset = leftBracket.offset; |
int length = rightBracket.offset - offset + 1; |
- _resolver.reportErrorProxyConditionalAnalysisError2(shouldReportMissingMember_static ? staticType.element : propagatedType.element, errorCode, offset, length, [ |
+ _resolver.reportProxyConditionalErrorForOffset(shouldReportMissingMember_static ? staticType.element : propagatedType.element, errorCode, offset, length, [ |
methodName, |
shouldReportMissingMember_static ? staticType.displayName : propagatedType.displayName]); |
} |
@@ -6649,7 +6640,7 @@ class ElementResolver extends SimpleAstVisitor<Object> { |
if (labelNode == null) { |
if (labelScope == null) { |
} else { |
- labelElement = labelScope.lookup2(LabelScope.EMPTY_LABEL) as LabelElementImpl; |
+ labelElement = labelScope.lookup(LabelScope.EMPTY_LABEL) as LabelElementImpl; |
if (labelElement == null) { |
} |
// |
@@ -6662,7 +6653,7 @@ class ElementResolver extends SimpleAstVisitor<Object> { |
if (labelScope == null) { |
_resolver.reportErrorForNode(CompileTimeErrorCode.LABEL_UNDEFINED, labelNode, [labelNode.name]); |
} else { |
- labelElement = labelScope.lookup(labelNode) as LabelElementImpl; |
+ labelElement = labelScope.lookup(labelNode.name) as LabelElementImpl; |
if (labelElement == null) { |
_resolver.reportErrorForNode(CompileTimeErrorCode.LABEL_UNDEFINED, labelNode, [labelNode.name]); |
} else { |
@@ -7123,7 +7114,7 @@ class ElementResolver extends SimpleAstVisitor<Object> { |
// |
return; |
} |
- Namespace namespace = new NamespaceBuilder().createExportNamespace2(library); |
+ Namespace namespace = new NamespaceBuilder().createExportNamespaceForLibrary(library); |
for (Combinator combinator in combinators) { |
NodeList<SimpleIdentifier> names; |
if (combinator is HideCombinator) { |
@@ -7318,29 +7309,29 @@ class ElementResolver extends SimpleAstVisitor<Object> { |
if (propertyName.inSetterContext()) { |
if (isStaticProperty) { |
ErrorCode errorCode = (shouldReportMissingMember_static ? StaticWarningCode.UNDEFINED_SETTER : HintCode.UNDEFINED_SETTER) as ErrorCode; |
- _resolver.reportErrorProxyConditionalAnalysisError(staticOrPropagatedEnclosingElt, errorCode, propertyName, [ |
+ _resolver.reportProxyConditionalErrorForNode(staticOrPropagatedEnclosingElt, errorCode, propertyName, [ |
propertyName.name, |
staticOrPropagatedEnclosingElt.displayName]); |
} else { |
ErrorCode errorCode = (shouldReportMissingMember_static ? StaticTypeWarningCode.UNDEFINED_SETTER : HintCode.UNDEFINED_SETTER) as ErrorCode; |
- _resolver.reportErrorProxyConditionalAnalysisError(staticOrPropagatedEnclosingElt, errorCode, propertyName, [ |
+ _resolver.reportProxyConditionalErrorForNode(staticOrPropagatedEnclosingElt, errorCode, propertyName, [ |
propertyName.name, |
staticOrPropagatedEnclosingElt.displayName]); |
} |
} else if (propertyName.inGetterContext()) { |
if (isStaticProperty) { |
ErrorCode errorCode = (shouldReportMissingMember_static ? StaticWarningCode.UNDEFINED_GETTER : HintCode.UNDEFINED_GETTER) as ErrorCode; |
- _resolver.reportErrorProxyConditionalAnalysisError(staticOrPropagatedEnclosingElt, errorCode, propertyName, [ |
+ _resolver.reportProxyConditionalErrorForNode(staticOrPropagatedEnclosingElt, errorCode, propertyName, [ |
propertyName.name, |
staticOrPropagatedEnclosingElt.displayName]); |
} else { |
ErrorCode errorCode = (shouldReportMissingMember_static ? StaticTypeWarningCode.UNDEFINED_GETTER : HintCode.UNDEFINED_GETTER) as ErrorCode; |
- _resolver.reportErrorProxyConditionalAnalysisError(staticOrPropagatedEnclosingElt, errorCode, propertyName, [ |
+ _resolver.reportProxyConditionalErrorForNode(staticOrPropagatedEnclosingElt, errorCode, propertyName, [ |
propertyName.name, |
staticOrPropagatedEnclosingElt.displayName]); |
} |
} else { |
- _resolver.reportErrorProxyConditionalAnalysisError(staticOrPropagatedEnclosingElt, StaticWarningCode.UNDEFINED_IDENTIFIER, propertyName, [propertyName.name]); |
+ _resolver.reportProxyConditionalErrorForNode(staticOrPropagatedEnclosingElt, StaticWarningCode.UNDEFINED_IDENTIFIER, propertyName, [propertyName.name]); |
} |
} |
} |
@@ -8754,7 +8745,7 @@ class Library { |
_directiveUris[directive] = uriContent; |
uriContent = Uri.encodeFull(uriContent); |
if (directive is ImportDirective && uriContent.startsWith(_DART_EXT_SCHEME)) { |
- _libraryElement.hasExtUri2 = true; |
+ _libraryElement.hasExtUri = true; |
return null; |
} |
try { |
@@ -9420,7 +9411,7 @@ class LibraryResolver { |
libraryElement.imports = new List.from(imports); |
libraryElement.exports = new List.from(exports); |
if (libraryElement.entryPoint == null) { |
- Namespace namespace = new NamespaceBuilder().createExportNamespace2(libraryElement); |
+ Namespace namespace = new NamespaceBuilder().createExportNamespaceForLibrary(libraryElement); |
Element element = namespace.get(LibraryElementBuilder.ENTRY_POINT_NAME); |
if (element is FunctionElement) { |
libraryElement.entryPoint = element; |
@@ -10070,7 +10061,7 @@ class ResolverVisitor extends ScopedVisitor { |
Object visitAsExpression(AsExpression node) { |
super.visitAsExpression(node); |
- override(node.expression, node.type.type); |
+ overrideExpression(node.expression, node.type.type); |
return null; |
} |
@@ -10247,8 +10238,8 @@ class ResolverVisitor extends ScopedVisitor { |
} |
node.accept(_elementResolver); |
node.accept(_typeAnalyzer); |
- bool thenIsAbrupt = isAbruptTermination(thenExpression); |
- bool elseIsAbrupt = isAbruptTermination(elseExpression); |
+ bool thenIsAbrupt = isAbruptTerminationExpression(thenExpression); |
+ bool elseIsAbrupt = isAbruptTerminationExpression(elseExpression); |
if (elseIsAbrupt && !thenIsAbrupt) { |
propagateTrueState(condition); |
propagateState(thenExpression); |
@@ -10432,8 +10423,8 @@ class ResolverVisitor extends ScopedVisitor { |
} |
node.accept(_elementResolver); |
node.accept(_typeAnalyzer); |
- bool thenIsAbrupt = isAbruptTermination2(thenStatement); |
- bool elseIsAbrupt = isAbruptTermination2(elseStatement); |
+ bool thenIsAbrupt = isAbruptTerminationStatement(thenStatement); |
+ bool elseIsAbrupt = isAbruptTerminationStatement(elseStatement); |
if (elseIsAbrupt && !thenIsAbrupt) { |
propagateTrueState(condition); |
if (thenOverrides != null) { |
@@ -10681,14 +10672,14 @@ class ResolverVisitor extends ScopedVisitor { |
* might be overridden |
* @param potentialType the potential type of the elements |
*/ |
- void override(Expression expression, Type2 potentialType) { |
+ void overrideExpression(Expression expression, Type2 potentialType) { |
VariableElement element = getOverridableStaticElement(expression); |
if (element != null) { |
- override2(element, potentialType); |
+ overrideVariable(element, potentialType); |
} |
element = getOverridablePropagatedElement(expression); |
if (element != null) { |
- override2(element, potentialType); |
+ overrideVariable(element, potentialType); |
} |
} |
@@ -10700,7 +10691,7 @@ class ResolverVisitor extends ScopedVisitor { |
* @param element the element whose type might be overridden |
* @param potentialType the potential type of the element |
*/ |
- void override2(VariableElement element, Type2 potentialType) { |
+ void overrideVariable(VariableElement element, Type2 potentialType) { |
if (potentialType == null || potentialType.isBottom) { |
return; |
} |
@@ -10724,7 +10715,7 @@ class ResolverVisitor extends ScopedVisitor { |
* @param node the node specifying the location of the error |
* @param arguments the arguments to the error, used to compose the error message |
*/ |
- void reportErrorProxyConditionalAnalysisError(Element enclosingElement, ErrorCode errorCode, AstNode node, List<Object> arguments) { |
+ void reportProxyConditionalErrorForNode(Element enclosingElement, ErrorCode errorCode, AstNode node, List<Object> arguments) { |
_proxyConditionalAnalysisErrors.add(new ProxyConditionalAnalysisError(enclosingElement, new AnalysisError.con2(source, node.offset, node.length, errorCode, arguments))); |
} |
@@ -10737,7 +10728,7 @@ class ResolverVisitor extends ScopedVisitor { |
* @param length the length of the location of the error |
* @param arguments the arguments to the error, used to compose the error message |
*/ |
- void reportErrorProxyConditionalAnalysisError2(Element enclosingElement, ErrorCode errorCode, int offset, int length, List<Object> arguments) { |
+ void reportProxyConditionalErrorForOffset(Element enclosingElement, ErrorCode errorCode, int offset, int length, List<Object> arguments) { |
_proxyConditionalAnalysisErrors.add(new ProxyConditionalAnalysisError(enclosingElement, new AnalysisError.con2(source, offset, length, errorCode, arguments))); |
} |
@@ -10749,7 +10740,7 @@ class ResolverVisitor extends ScopedVisitor { |
* @param token the token specifying the location of the error |
* @param arguments the arguments to the error, used to compose the error message |
*/ |
- void reportErrorProxyConditionalAnalysisError3(Element enclosingElement, ErrorCode errorCode, sc.Token token, List<Object> arguments) { |
+ void reportErrorProxyConditionalAnalysisError(Element enclosingElement, ErrorCode errorCode, sc.Token token, List<Object> arguments) { |
_proxyConditionalAnalysisErrors.add(new ProxyConditionalAnalysisError(enclosingElement, new AnalysisError.con2(source, token.offset, token.length, errorCode, arguments))); |
} |
@@ -10772,14 +10763,14 @@ class ResolverVisitor extends ScopedVisitor { |
LocalVariableElement loopElement = loopVariable.element; |
if (loopElement != null) { |
Type2 iteratorElementType = getIteratorElementType(iterator); |
- override2(loopElement, iteratorElementType); |
+ overrideVariable(loopElement, iteratorElementType); |
recordPropagatedType(loopVariable.identifier, iteratorElementType); |
} |
} else if (identifier != null && iterator != null) { |
Element identifierElement = identifier.staticElement; |
if (identifierElement is VariableElement) { |
Type2 iteratorElementType = getIteratorElementType(iterator); |
- override2(identifierElement, iteratorElementType); |
+ overrideVariable(identifierElement, iteratorElementType); |
recordPropagatedType(identifier, iteratorElementType); |
} |
} |
@@ -10941,7 +10932,7 @@ class ResolverVisitor extends ScopedVisitor { |
* @param expression the expression being tested |
* @return `true` if the given expression terminates abruptly |
*/ |
- bool isAbruptTermination(Expression expression) { |
+ bool isAbruptTerminationExpression(Expression expression) { |
// TODO(brianwilkerson) This needs to be significantly improved. Ideally we would eventually |
// turn this into a method on Expression that returns a termination indication (normal, abrupt |
// with no exception, abrupt with an exception). |
@@ -10958,21 +10949,21 @@ class ResolverVisitor extends ScopedVisitor { |
* @param statement the statement being tested |
* @return `true` if the given statement terminates abruptly |
*/ |
- bool isAbruptTermination2(Statement statement) { |
+ bool isAbruptTerminationStatement(Statement statement) { |
// TODO(brianwilkerson) This needs to be significantly improved. Ideally we would eventually |
// turn this into a method on Statement that returns a termination indication (normal, abrupt |
// with no exception, abrupt with an exception). |
if (statement is ReturnStatement || statement is BreakStatement || statement is ContinueStatement) { |
return true; |
} else if (statement is ExpressionStatement) { |
- return isAbruptTermination(statement.expression); |
+ return isAbruptTerminationExpression(statement.expression); |
} else if (statement is Block) { |
NodeList<Statement> statements = statement.statements; |
int size = statements.length; |
if (size == 0) { |
return false; |
} |
- return isAbruptTermination2(statements[size - 1]); |
+ return isAbruptTerminationStatement(statements[size - 1]); |
} |
return false; |
} |
@@ -11083,7 +11074,7 @@ class ResolverVisitor extends ScopedVisitor { |
} else if (condition is IsExpression) { |
IsExpression is2 = condition; |
if (is2.notOperator != null) { |
- override(is2.expression, is2.type.type); |
+ overrideExpression(is2.expression, is2.type.type); |
} |
} else if (condition is PrefixExpression) { |
PrefixExpression prefix = condition; |
@@ -11120,7 +11111,7 @@ class ResolverVisitor extends ScopedVisitor { |
} else if (condition is IsExpression) { |
IsExpression is2 = condition; |
if (is2.notOperator == null) { |
- override(is2.expression, is2.type.type); |
+ overrideExpression(is2.expression, is2.type.type); |
} |
} else if (condition is PrefixExpression) { |
PrefixExpression prefix = condition; |
@@ -11987,7 +11978,7 @@ class StaticTypeAnalyzer extends SimpleAstVisitor<Object> { |
} |
overrideType = propagatedType; |
} |
- _resolver.override(node.leftHandSide, overrideType); |
+ _resolver.overrideExpression(node.leftHandSide, overrideType); |
} else { |
ExecutableElement staticMethodElement = node.staticElement; |
Type2 staticType = computeStaticReturnType(staticMethodElement); |
@@ -12963,7 +12954,7 @@ class StaticTypeAnalyzer extends SimpleAstVisitor<Object> { |
recordPropagatedType(name, rightType); |
VariableElement element = name.staticElement as VariableElement; |
if (element != null) { |
- _resolver.override2(element, rightType); |
+ _resolver.overrideVariable(element, rightType); |
} |
} |
return null; |
@@ -14172,7 +14163,7 @@ class TypeProviderImpl implements TypeProvider { |
* @param library the library containing the definitions of the core types |
*/ |
void initializeFrom(LibraryElement library) { |
- Namespace namespace = new NamespaceBuilder().createPublicNamespace(library); |
+ Namespace namespace = new NamespaceBuilder().createPublicNamespaceForLibrary(library); |
_boolType = getType(namespace, "bool"); |
_bottomType = BottomTypeImpl.instance; |
_deprecatedType = getType(namespace, "Deprecated"); |
@@ -14321,7 +14312,7 @@ class TypeResolverVisitor extends ScopedVisitor { |
} |
} |
classElement.supertype = superclassType; |
- classElement.hasReferenceToSuper2 = _hasReferenceToSuper; |
+ classElement.hasReferenceToSuper = _hasReferenceToSuper; |
} |
resolve(classElement, node.withClause, node.implementsClause); |
return null; |
@@ -15483,7 +15474,7 @@ class EnclosedScope extends Scope { |
} |
} |
- Element lookup3(Identifier identifier, String name, LibraryElement referencingLibrary) { |
+ Element internalLookup(Identifier identifier, String name, LibraryElement referencingLibrary) { |
Element element = localLookup(name, referencingLibrary); |
if (element != null) { |
return element; |
@@ -15497,7 +15488,7 @@ class EnclosedScope extends Scope { |
} |
} |
// Check enclosing scope. |
- return enclosingScope.lookup3(identifier, name, referencingLibrary); |
+ return enclosingScope.internalLookup(identifier, name, referencingLibrary); |
} |
} |
@@ -15651,20 +15642,11 @@ class LabelScope { |
* @param targetLabel the label being looked up |
* @return the label element corresponding to the given label |
*/ |
- LabelElement lookup(SimpleIdentifier targetLabel) => lookup2(targetLabel.name); |
- |
- /** |
- * Return the label element corresponding to the given label, or `null` if the given label |
- * is not defined in this scope. |
- * |
- * @param targetLabel the label being looked up |
- * @return the label element corresponding to the given label |
- */ |
- LabelElement lookup2(String targetLabel) { |
+ LabelElement lookup(String targetLabel) { |
if (_label == targetLabel) { |
return _element; |
} else if (_outerScope != null) { |
- return _outerScope.lookup2(targetLabel); |
+ return _outerScope.lookup(targetLabel); |
} else { |
return null; |
} |
@@ -15710,7 +15692,7 @@ class LibraryImportScope extends Scope { |
} |
} |
- Element lookup3(Identifier identifier, String name, LibraryElement referencingLibrary) { |
+ Element internalLookup(Identifier identifier, String name, LibraryElement referencingLibrary) { |
Element foundElement = localLookup(name, referencingLibrary); |
if (foundElement != null) { |
return foundElement; |
@@ -15739,7 +15721,7 @@ class LibraryImportScope extends Scope { |
return foundElement; |
} |
if (foundElement != null) { |
- defineWithoutChecking2(name, foundElement); |
+ defineNameWithoutChecking(name, foundElement); |
} |
return foundElement; |
} |
@@ -15757,7 +15739,7 @@ class LibraryImportScope extends Scope { |
int count = imports.length; |
_importedNamespaces = new List<Namespace>(count); |
for (int i = 0; i < count; i++) { |
- _importedNamespaces[i] = builder.createImportNamespace(imports[i]); |
+ _importedNamespaces[i] = builder.createImportNamespaceForDirective(imports[i]); |
} |
} |
@@ -15946,7 +15928,7 @@ class NamespaceBuilder { |
* @param element the export element whose export namespace is to be created |
* @return the export namespace that was created |
*/ |
- Namespace createExportNamespace(ExportElement element) { |
+ Namespace createExportNamespaceForDirective(ExportElement element) { |
LibraryElement exportedLibrary = element.exportedLibrary; |
if (exportedLibrary == null) { |
// |
@@ -15955,7 +15937,7 @@ class NamespaceBuilder { |
return Namespace.EMPTY; |
} |
Map<String, Element> definedNames = createExportMapping(exportedLibrary, new Set<LibraryElement>()); |
- definedNames = apply(definedNames, element.combinators); |
+ definedNames = applyCombinators(definedNames, element.combinators); |
return new Namespace(definedNames); |
} |
@@ -15965,7 +15947,7 @@ class NamespaceBuilder { |
* @param library the library whose export namespace is to be created |
* @return the export namespace that was created |
*/ |
- Namespace createExportNamespace2(LibraryElement library) => new Namespace(createExportMapping(library, new Set<LibraryElement>())); |
+ Namespace createExportNamespaceForLibrary(LibraryElement library) => new Namespace(createExportMapping(library, new Set<LibraryElement>())); |
/** |
* Create a namespace representing the import namespace of the given library. |
@@ -15973,7 +15955,7 @@ class NamespaceBuilder { |
* @param library the library whose import namespace is to be created |
* @return the import namespace that was created |
*/ |
- Namespace createImportNamespace(ImportElement element) { |
+ Namespace createImportNamespaceForDirective(ImportElement element) { |
LibraryElement importedLibrary = element.importedLibrary; |
if (importedLibrary == null) { |
// |
@@ -15982,8 +15964,8 @@ class NamespaceBuilder { |
return Namespace.EMPTY; |
} |
Map<String, Element> definedNames = createExportMapping(importedLibrary, new Set<LibraryElement>()); |
- definedNames = apply(definedNames, element.combinators); |
- definedNames = apply2(definedNames, element.prefix); |
+ definedNames = applyCombinators(definedNames, element.combinators); |
+ definedNames = applyPrefix(definedNames, element.prefix); |
return new Namespace(definedNames); |
} |
@@ -15993,7 +15975,7 @@ class NamespaceBuilder { |
* @param library the library whose public namespace is to be created |
* @return the public namespace that was created |
*/ |
- Namespace createPublicNamespace(LibraryElement library) { |
+ Namespace createPublicNamespaceForLibrary(LibraryElement library) { |
Map<String, Element> definedNames = new Map<String, Element>(); |
addPublicNames(definedNames, library.definingCompilationUnit); |
for (CompilationUnitElement compilationUnit in library.parts) { |
@@ -16008,7 +15990,7 @@ class NamespaceBuilder { |
* @param definedNames the mapping table to which the names in the given namespace are to be added |
* @param namespace the namespace containing the names to be added to this namespace |
*/ |
- void addAll(Map<String, Element> definedNames, Map<String, Element> newNames) { |
+ void addAllFromMap(Map<String, Element> definedNames, Map<String, Element> newNames) { |
for (MapEntry<String, Element> entry in getMapEntrySet(newNames)) { |
definedNames[entry.getKey()] = entry.getValue(); |
} |
@@ -16020,9 +16002,9 @@ class NamespaceBuilder { |
* @param definedNames the mapping table to which the names in the given namespace are to be added |
* @param namespace the namespace containing the names to be added to this namespace |
*/ |
- void addAll2(Map<String, Element> definedNames, Namespace namespace) { |
+ void addAllFromNamespace(Map<String, Element> definedNames, Namespace namespace) { |
if (namespace != null) { |
- addAll(definedNames, namespace.definedNames); |
+ addAllFromMap(definedNames, namespace.definedNames); |
} |
} |
@@ -16068,7 +16050,7 @@ class NamespaceBuilder { |
* @param definedNames the mapping table to which the namespace operations are to be applied |
* @param combinators the combinators to be applied |
*/ |
- Map<String, Element> apply(Map<String, Element> definedNames, List<NamespaceCombinator> combinators) { |
+ Map<String, Element> applyCombinators(Map<String, Element> definedNames, List<NamespaceCombinator> combinators) { |
for (NamespaceCombinator combinator in combinators) { |
if (combinator is HideElementCombinator) { |
hide(definedNames, combinator.hiddenNames); |
@@ -16088,7 +16070,7 @@ class NamespaceBuilder { |
* @param definedNames the names that were defined before this operation |
* @param prefixElement the element defining the prefix to be added to the names |
*/ |
- Map<String, Element> apply2(Map<String, Element> definedNames, PrefixElement prefixElement) { |
+ Map<String, Element> applyPrefix(Map<String, Element> definedNames, PrefixElement prefixElement) { |
if (prefixElement != null) { |
String prefix = prefixElement.name; |
Map<String, Element> newNames = new Map<String, Element>(); |
@@ -16121,11 +16103,11 @@ class NamespaceBuilder { |
// The exported library will be null if the URI does not reference a valid library. |
// |
Map<String, Element> exportedNames = createExportMapping(exportedLibrary, visitedElements); |
- exportedNames = apply(exportedNames, element.combinators); |
- addAll(definedNames, exportedNames); |
+ exportedNames = applyCombinators(exportedNames, element.combinators); |
+ addAllFromMap(definedNames, exportedNames); |
} |
} |
- addAll2(definedNames, (library.context as InternalAnalysisContext).getPublicNamespace(library)); |
+ addAllFromNamespace(definedNames, (library.context as InternalAnalysisContext).getPublicNamespace(library)); |
return definedNames; |
} finally { |
visitedElements.remove(library); |
@@ -16246,26 +16228,26 @@ abstract class Scope { |
* implement library-level privacy |
* @return the element with which the given identifier is associated |
*/ |
- Element lookup(Identifier identifier, LibraryElement referencingLibrary) => lookup3(identifier, identifier.name, referencingLibrary); |
+ Element lookup(Identifier identifier, LibraryElement referencingLibrary) => internalLookup(identifier, identifier.name, referencingLibrary); |
/** |
* Add the given element to this scope without checking for duplication or hiding. |
* |
+ * @param name the name of the element to be added |
* @param element the element to be added to this scope |
*/ |
- void defineWithoutChecking(Element element) { |
- _definedNames[getName(element)] = element; |
+ void defineNameWithoutChecking(String name, Element element) { |
+ _definedNames[name] = element; |
_hasName = true; |
} |
/** |
* Add the given element to this scope without checking for duplication or hiding. |
* |
- * @param name the name of the element to be added |
* @param element the element to be added to this scope |
*/ |
- void defineWithoutChecking2(String name, Element element) { |
- _definedNames[name] = element; |
+ void defineWithoutChecking(Element element) { |
+ _definedNames[getName(element)] = element; |
_hasName = true; |
} |
@@ -16312,33 +16294,33 @@ abstract class Scope { |
/** |
* Return the element with which the given name is associated, or `null` if the name is not |
- * defined within this scope. This method only returns elements that are directly defined within |
- * this scope, not elements that are defined in an enclosing scope. |
+ * defined within this scope. |
* |
+ * @param identifier the identifier node to lookup element for, used to report correct kind of a |
+ * problem and associate problem with |
* @param name the name associated with the element to be returned |
* @param referencingLibrary the library that contains the reference to the name, used to |
* implement library-level privacy |
* @return the element with which the given name is associated |
*/ |
- Element localLookup(String name, LibraryElement referencingLibrary) { |
- if (_hasName) { |
- return _definedNames[name]; |
- } |
- return null; |
- } |
+ Element internalLookup(Identifier identifier, String name, LibraryElement referencingLibrary); |
/** |
* Return the element with which the given name is associated, or `null` if the name is not |
- * defined within this scope. |
+ * defined within this scope. This method only returns elements that are directly defined within |
+ * this scope, not elements that are defined in an enclosing scope. |
* |
- * @param identifier the identifier node to lookup element for, used to report correct kind of a |
- * problem and associate problem with |
* @param name the name associated with the element to be returned |
* @param referencingLibrary the library that contains the reference to the name, used to |
* implement library-level privacy |
* @return the element with which the given name is associated |
*/ |
- Element lookup3(Identifier identifier, String name, LibraryElement referencingLibrary); |
+ Element localLookup(String name, LibraryElement referencingLibrary) { |
+ if (_hasName) { |
+ return _definedNames[name]; |
+ } |
+ return null; |
+ } |
/** |
* Return the name that will be used to look up the given element. |
@@ -16514,13 +16496,13 @@ class ConstantVerifier extends RecursiveAstVisitor<Object> { |
ConstructorElement constructorElement = element; |
// should 'const' constructor |
if (!constructorElement.isConst) { |
- _errorReporter.reportError2(CompileTimeErrorCode.NON_CONSTANT_ANNOTATION_CONSTRUCTOR, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.NON_CONSTANT_ANNOTATION_CONSTRUCTOR, node, []); |
return null; |
} |
// should have arguments |
ArgumentList argumentList = node.arguments; |
if (argumentList == null) { |
- _errorReporter.reportError2(CompileTimeErrorCode.NO_ANNOTATION_CONSTRUCTOR_ARGUMENTS, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.NO_ANNOTATION_CONSTRUCTOR_ARGUMENTS, node, []); |
return null; |
} |
// arguments should be constants |
@@ -16593,7 +16575,7 @@ class ConstantVerifier extends RecursiveAstVisitor<Object> { |
} |
if (reportEqualKeys) { |
for (Expression key in invalidKeys) { |
- _errorReporter.reportError2(StaticWarningCode.EQUAL_KEYS_IN_MAP, key, []); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.EQUAL_KEYS_IN_MAP, key, []); |
} |
} |
return null; |
@@ -16644,9 +16626,9 @@ class ConstantVerifier extends RecursiveAstVisitor<Object> { |
for (ErrorResult_ErrorData data in result.errorData) { |
ErrorCode dataErrorCode = data.errorCode; |
if (identical(dataErrorCode, CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION) || identical(dataErrorCode, CompileTimeErrorCode.CONST_EVAL_THROWS_IDBZE) || identical(dataErrorCode, CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL_NUM_STRING) || identical(dataErrorCode, CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL) || identical(dataErrorCode, CompileTimeErrorCode.CONST_EVAL_TYPE_INT) || identical(dataErrorCode, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM)) { |
- _errorReporter.reportError2(dataErrorCode, data.node, []); |
+ _errorReporter.reportErrorForNode(dataErrorCode, data.node, []); |
} else { |
- _errorReporter.reportError2(errorCode, data.node, []); |
+ _errorReporter.reportErrorForNode(errorCode, data.node, []); |
} |
} |
} |
@@ -16836,6 +16818,11 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
InterfaceType _boolType; |
/** |
+ * The type representing the type 'int'. |
+ */ |
+ InterfaceType _intType; |
+ |
+ /** |
* The object providing access to the types defined by the language. |
*/ |
TypeProvider _typeProvider; |
@@ -16997,7 +16984,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
this._errorReporter = errorReporter; |
this._currentLibrary = currentLibrary; |
this._isInSystemLibrary = currentLibrary.source.isInSystemLibrary; |
- this._hasExtUri = currentLibrary.hasExtUri(); |
+ this._hasExtUri = currentLibrary.hasExtUri; |
this._typeProvider = typeProvider; |
this._inheritanceManager = inheritanceManager; |
_isEnclosingConstructorConst = false; |
@@ -17008,21 +16995,17 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
_isInConstructorInitializer = false; |
_isInStaticMethod = false; |
_boolType = typeProvider.boolType; |
+ _intType = typeProvider.intType; |
_dynamicType = typeProvider.dynamicType; |
_DISALLOWED_TYPES_TO_EXTEND_OR_IMPLEMENT = <InterfaceType> [ |
typeProvider.nullType, |
typeProvider.numType, |
- typeProvider.intType, |
+ _intType, |
typeProvider.doubleType, |
_boolType, |
typeProvider.stringType]; |
} |
- Object visitArgumentDefinitionTest(ArgumentDefinitionTest node) { |
- checkForArgumentDefinitionTestNonParameter(node); |
- return super.visitArgumentDefinitionTest(node); |
- } |
- |
Object visitArgumentList(ArgumentList node) { |
checkForArgumentTypesNotAssignableInList(node); |
return super.visitArgumentList(node); |
@@ -17071,7 +17054,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (labelNode != null) { |
Element labelElement = labelNode.staticElement; |
if (labelElement is LabelElementImpl && labelElement.isOnSwitchMember) { |
- _errorReporter.reportError2(ResolverErrorCode.BREAK_LABEL_ON_SWITCH_MEMBER, labelNode, []); |
+ _errorReporter.reportErrorForNode(ResolverErrorCode.BREAK_LABEL_ON_SWITCH_MEMBER, labelNode, []); |
} |
} |
return null; |
@@ -17107,6 +17090,10 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
checkForNonAbstractClassInheritsAbstractMember(node); |
checkForInconsistentMethodInheritance(); |
checkForRecursiveInterfaceInheritance(_enclosingClass); |
+ checkForConflictingGetterAndMethod(); |
+ checkForConflictingInstanceGetterAndSuperclassMember(); |
+ checkImplementsSuperClass(node); |
+ checkImplementsFunctionWithoutCall(node); |
} |
} |
// initialize initialFieldElementsMap |
@@ -17122,10 +17109,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
checkForFinalNotInitializedInClass(node); |
checkForDuplicateDefinitionInheritance(); |
- checkForConflictingGetterAndMethod(); |
- checkForConflictingInstanceGetterAndSuperclassMember(); |
- checkImplementsSuperClass(node); |
- checkImplementsFunctionWithoutCall(node); |
+ checkForConflictingInstanceMethodSetter(node); |
return super.visitClassDeclaration(node); |
} finally { |
_isInNativeClass = false; |
@@ -17203,7 +17187,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (labelNode != null) { |
Element labelElement = labelNode.staticElement; |
if (labelElement is LabelElementImpl && labelElement.isOnSwitchStatement) { |
- _errorReporter.reportError2(ResolverErrorCode.CONTINUE_LABEL_ON_SWITCH, labelNode, []); |
+ _errorReporter.reportErrorForNode(ResolverErrorCode.CONTINUE_LABEL_ON_SWITCH, labelNode, []); |
} |
} |
return null; |
@@ -17221,9 +17205,12 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
Object visitExportDirective(ExportDirective node) { |
- checkForAmbiguousExport(node); |
- checkForExportDuplicateLibraryName(node); |
- checkForExportInternalLibrary(node); |
+ ExportElement exportElement = node.element; |
+ if (exportElement != null) { |
+ checkForAmbiguousExport(node, exportElement); |
+ checkForExportDuplicateLibraryName(node, exportElement); |
+ checkForExportInternalLibrary(node, exportElement); |
+ } |
return super.visitExportDirective(node); |
} |
@@ -17235,14 +17222,14 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
Object visitFieldDeclaration(FieldDeclaration node) { |
- if (!node.isStatic) { |
+ _isInStaticVariableDeclaration = node.isStatic; |
+ _isInInstanceVariableDeclaration = !_isInStaticVariableDeclaration; |
+ if (_isInInstanceVariableDeclaration) { |
VariableDeclarationList variables = node.fields; |
if (variables.isConst) { |
- _errorReporter.reportError5(CompileTimeErrorCode.CONST_INSTANCE_FIELD, variables.keyword, []); |
+ _errorReporter.reportErrorForToken(CompileTimeErrorCode.CONST_INSTANCE_FIELD, variables.keyword, []); |
} |
} |
- _isInStaticVariableDeclaration = node.isStatic; |
- _isInInstanceVariableDeclaration = !_isInStaticVariableDeclaration; |
try { |
checkForAllInvalidOverrideErrorCodesForField(node); |
return super.visitFieldDeclaration(node); |
@@ -17306,7 +17293,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
Expression functionExpression = node.function; |
Type2 expressionType = functionExpression.staticType; |
if (!isFunctionType(expressionType)) { |
- _errorReporter.reportError2(StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION_EXPRESSION, functionExpression, []); |
+ _errorReporter.reportErrorForNode(StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION_EXPRESSION, functionExpression, []); |
} |
return super.visitFunctionExpressionInvocation(node); |
} |
@@ -17334,8 +17321,11 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
Object visitImportDirective(ImportDirective node) { |
- checkForImportDuplicateLibraryName(node); |
- checkForImportInternalLibrary(node); |
+ ImportElement importElement = node.element; |
+ if (importElement != null) { |
+ checkForImportDuplicateLibraryName(node, importElement); |
+ checkForImportInternalLibrary(node, importElement); |
+ } |
return super.visitImportDirective(node); |
} |
@@ -17422,8 +17412,6 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
checkForOptionalParameterInOperator(node); |
checkForWrongNumberOfParametersForOperator(node); |
checkForNonVoidReturnTypeForOperator(node); |
- } else { |
- checkForConflictingInstanceMethodSetter(node); |
} |
checkForConcreteClassWithAbstractMember(node); |
checkForAllInvalidOverrideErrorCodesForMethod(node); |
@@ -17450,7 +17438,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
Object visitNativeClause(NativeClause node) { |
// TODO(brianwilkerson) Figure out the right rule for when 'native' is allowed. |
if (!_isInSystemLibrary) { |
- _errorReporter.reportError2(ParserErrorCode.NATIVE_CLAUSE_IN_NON_SDK_CODE, node, []); |
+ _errorReporter.reportErrorForNode(ParserErrorCode.NATIVE_CLAUSE_IN_NON_SDK_CODE, node, []); |
} |
return super.visitNativeClause(node); |
} |
@@ -17630,7 +17618,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
return false; |
} |
// report problem |
- _errorReporter.reportError2(StaticTypeWarningCode.EXPECTED_TWO_MAP_TYPE_ARGUMENTS, typeArguments, [num]); |
+ _errorReporter.reportErrorForNode(StaticTypeWarningCode.EXPECTED_TWO_MAP_TYPE_ARGUMENTS, typeArguments, [num]); |
return true; |
} |
@@ -17668,12 +17656,12 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
fieldElementsMap[fieldElement] = INIT_STATE.INIT_IN_FIELD_FORMAL; |
} else if (identical(state, INIT_STATE.INIT_IN_DECLARATION)) { |
if (fieldElement.isFinal || fieldElement.isConst) { |
- _errorReporter.reportError2(StaticWarningCode.FINAL_INITIALIZED_IN_DECLARATION_AND_CONSTRUCTOR, formalParameter.identifier, [fieldElement.displayName]); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.FINAL_INITIALIZED_IN_DECLARATION_AND_CONSTRUCTOR, formalParameter.identifier, [fieldElement.displayName]); |
foundError = true; |
} |
} else if (identical(state, INIT_STATE.INIT_IN_FIELD_FORMAL)) { |
if (fieldElement.isFinal || fieldElement.isConst) { |
- _errorReporter.reportError2(CompileTimeErrorCode.FINAL_INITIALIZED_MULTIPLE_TIMES, formalParameter.identifier, [fieldElement.displayName]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.FINAL_INITIALIZED_MULTIPLE_TIMES, formalParameter.identifier, [fieldElement.displayName]); |
foundError = true; |
} |
} |
@@ -17696,14 +17684,14 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
fieldElementsMap[fieldElement] = INIT_STATE.INIT_IN_INITIALIZERS; |
} else if (identical(state, INIT_STATE.INIT_IN_DECLARATION)) { |
if (fieldElement.isFinal || fieldElement.isConst) { |
- _errorReporter.reportError2(StaticWarningCode.FIELD_INITIALIZED_IN_INITIALIZER_AND_DECLARATION, fieldName, []); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.FIELD_INITIALIZED_IN_INITIALIZER_AND_DECLARATION, fieldName, []); |
foundError = true; |
} |
} else if (identical(state, INIT_STATE.INIT_IN_FIELD_FORMAL)) { |
- _errorReporter.reportError2(CompileTimeErrorCode.FIELD_INITIALIZED_IN_PARAMETER_AND_INITIALIZER, fieldName, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.FIELD_INITIALIZED_IN_PARAMETER_AND_INITIALIZER, fieldName, []); |
foundError = true; |
} else if (identical(state, INIT_STATE.INIT_IN_INITIALIZERS)) { |
- _errorReporter.reportError2(CompileTimeErrorCode.FIELD_INITIALIZED_BY_MULTIPLE_INITIALIZERS, fieldName, [fieldElement.displayName]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.FIELD_INITIALIZED_BY_MULTIPLE_INITIALIZERS, fieldName, [fieldElement.displayName]); |
foundError = true; |
} |
} |
@@ -17714,10 +17702,10 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (identical(entry.getValue(), INIT_STATE.NOT_INIT)) { |
FieldElement fieldElement = entry.getKey(); |
if (fieldElement.isConst) { |
- _errorReporter.reportError2(CompileTimeErrorCode.CONST_NOT_INITIALIZED, node.returnType, [fieldElement.name]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.CONST_NOT_INITIALIZED, node.returnType, [fieldElement.name]); |
foundError = true; |
} else if (fieldElement.isFinal) { |
- _errorReporter.reportError2(StaticWarningCode.FINAL_NOT_INITIALIZED, node.returnType, [fieldElement.name]); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.FINAL_NOT_INITIALIZED, node.returnType, [fieldElement.name]); |
foundError = true; |
} |
} |
@@ -17777,7 +17765,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
// instance vs. static |
if (fieldElt.isStatic) { |
- _errorReporter.reportError2(StaticWarningCode.INSTANCE_METHOD_NAME_COLLIDES_WITH_SUPERCLASS_STATIC, errorNameTarget, [ |
+ _errorReporter.reportErrorForNode(StaticWarningCode.INSTANCE_METHOD_NAME_COLLIDES_WITH_SUPERCLASS_STATIC, errorNameTarget, [ |
executableElementName, |
fieldElt.enclosingElement.displayName]); |
return true; |
@@ -17796,7 +17784,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
// instance vs. static |
if (methodElement.isStatic) { |
- _errorReporter.reportError2(StaticWarningCode.INSTANCE_METHOD_NAME_COLLIDES_WITH_SUPERCLASS_STATIC, errorNameTarget, [ |
+ _errorReporter.reportErrorForNode(StaticWarningCode.INSTANCE_METHOD_NAME_COLLIDES_WITH_SUPERCLASS_STATIC, errorNameTarget, [ |
executableElementName, |
methodElement.enclosingElement.displayName]); |
return true; |
@@ -17825,13 +17813,13 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
Map<String, Type2> overriddenNamedPT = overriddenFT.namedParameterTypes; |
// CTEC.INVALID_OVERRIDE_REQUIRED, CTEC.INVALID_OVERRIDE_POSITIONAL and CTEC.INVALID_OVERRIDE_NAMED |
if (overridingNormalPT.length > overriddenNormalPT.length) { |
- _errorReporter.reportError2(StaticWarningCode.INVALID_OVERRIDE_REQUIRED, errorNameTarget, [ |
+ _errorReporter.reportErrorForNode(StaticWarningCode.INVALID_OVERRIDE_REQUIRED, errorNameTarget, [ |
overriddenNormalPT.length, |
overriddenExecutable.enclosingElement.displayName]); |
return true; |
} |
if (overridingNormalPT.length + overridingPositionalPT.length < overriddenPositionalPT.length + overriddenNormalPT.length) { |
- _errorReporter.reportError2(StaticWarningCode.INVALID_OVERRIDE_POSITIONAL, errorNameTarget, [ |
+ _errorReporter.reportErrorForNode(StaticWarningCode.INVALID_OVERRIDE_POSITIONAL, errorNameTarget, [ |
overriddenPositionalPT.length + overriddenNormalPT.length, |
overriddenExecutable.enclosingElement.displayName]); |
return true; |
@@ -17845,7 +17833,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (!overridingParameterNameSet.contains(overriddenParamName)) { |
// The overridden method expected the overriding method to have overridingParamName, |
// but it does not. |
- _errorReporter.reportError2(StaticWarningCode.INVALID_OVERRIDE_NAMED, errorNameTarget, [ |
+ _errorReporter.reportErrorForNode(StaticWarningCode.INVALID_OVERRIDE_NAMED, errorNameTarget, [ |
overriddenParamName, |
overriddenExecutable.enclosingElement.displayName]); |
return true; |
@@ -17853,7 +17841,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
// SWC.INVALID_METHOD_OVERRIDE_RETURN_TYPE |
if (overriddenFTReturnType != VoidTypeImpl.instance && !overridingFTReturnType.isAssignableTo(overriddenFTReturnType)) { |
- _errorReporter.reportError2(!isGetter ? StaticWarningCode.INVALID_METHOD_OVERRIDE_RETURN_TYPE : StaticWarningCode.INVALID_GETTER_OVERRIDE_RETURN_TYPE, errorNameTarget, [ |
+ _errorReporter.reportErrorForNode(!isGetter ? StaticWarningCode.INVALID_METHOD_OVERRIDE_RETURN_TYPE : StaticWarningCode.INVALID_GETTER_OVERRIDE_RETURN_TYPE, errorNameTarget, [ |
overridingFTReturnType.displayName, |
overriddenFTReturnType.displayName, |
overriddenExecutable.enclosingElement.displayName]); |
@@ -17866,7 +17854,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
int parameterIndex = 0; |
for (int i = 0; i < overridingNormalPT.length; i++) { |
if (!overridingNormalPT[i].isAssignableTo(overriddenNormalPT[i])) { |
- _errorReporter.reportError2(!isSetter ? StaticWarningCode.INVALID_METHOD_OVERRIDE_NORMAL_PARAM_TYPE : StaticWarningCode.INVALID_SETTER_OVERRIDE_NORMAL_PARAM_TYPE, parameterLocations[parameterIndex], [ |
+ _errorReporter.reportErrorForNode(!isSetter ? StaticWarningCode.INVALID_METHOD_OVERRIDE_NORMAL_PARAM_TYPE : StaticWarningCode.INVALID_SETTER_OVERRIDE_NORMAL_PARAM_TYPE, parameterLocations[parameterIndex], [ |
overridingNormalPT[i].displayName, |
overriddenNormalPT[i].displayName, |
overriddenExecutable.enclosingElement.displayName]); |
@@ -17877,7 +17865,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
// SWC.INVALID_METHOD_OVERRIDE_OPTIONAL_PARAM_TYPE |
for (int i = 0; i < overriddenPositionalPT.length; i++) { |
if (!overridingPositionalPT[i].isAssignableTo(overriddenPositionalPT[i])) { |
- _errorReporter.reportError2(StaticWarningCode.INVALID_METHOD_OVERRIDE_OPTIONAL_PARAM_TYPE, parameterLocations[parameterIndex], [ |
+ _errorReporter.reportErrorForNode(StaticWarningCode.INVALID_METHOD_OVERRIDE_OPTIONAL_PARAM_TYPE, parameterLocations[parameterIndex], [ |
overridingPositionalPT[i].displayName, |
overriddenPositionalPT[i].displayName, |
overriddenExecutable.enclosingElement.displayName]); |
@@ -17908,7 +17896,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
} |
if (parameterToSelect != null) { |
- _errorReporter.reportError2(StaticWarningCode.INVALID_METHOD_OVERRIDE_NAMED_PARAM_TYPE, parameterLocationToSelect, [ |
+ _errorReporter.reportErrorForNode(StaticWarningCode.INVALID_METHOD_OVERRIDE_NAMED_PARAM_TYPE, parameterLocationToSelect, [ |
overridingType.displayName, |
overriddenNamedPTEntry.getValue().displayName, |
overriddenExecutable.enclosingElement.displayName]); |
@@ -17965,7 +17953,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
break; |
} |
if (!result.equalValues(_typeProvider, overriddenResult)) { |
- _errorReporter.reportError2(StaticWarningCode.INVALID_OVERRIDE_DIFFERENT_DEFAULT_VALUES_NAMED, formalParameters[i], [ |
+ _errorReporter.reportErrorForNode(StaticWarningCode.INVALID_OVERRIDE_DIFFERENT_DEFAULT_VALUES_NAMED, formalParameters[i], [ |
overriddenExecutable.enclosingElement.displayName, |
overriddenExecutable.displayName, |
parameterName]); |
@@ -17989,7 +17977,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
continue; |
} |
if (!result.equalValues(_typeProvider, overriddenResult)) { |
- _errorReporter.reportError2(StaticWarningCode.INVALID_OVERRIDE_DIFFERENT_DEFAULT_VALUES_POSITIONAL, formalParameters[i], [ |
+ _errorReporter.reportErrorForNode(StaticWarningCode.INVALID_OVERRIDE_DIFFERENT_DEFAULT_VALUES_POSITIONAL, formalParameters[i], [ |
overriddenExecutable.enclosingElement.displayName, |
overriddenExecutable.displayName]); |
foundError = true; |
@@ -18160,7 +18148,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
constructorStrName += ".${redirectedConstructor.name.name}"; |
} |
ErrorCode errorCode = (node.constKeyword != null ? CompileTimeErrorCode.REDIRECT_TO_MISSING_CONSTRUCTOR : StaticWarningCode.REDIRECT_TO_MISSING_CONSTRUCTOR) as ErrorCode; |
- _errorReporter.reportError2(errorCode, redirectedConstructor, [constructorStrName, redirectedType.displayName]); |
+ _errorReporter.reportErrorForNode(errorCode, redirectedConstructor, [constructorStrName, redirectedType.displayName]); |
return true; |
} |
return false; |
@@ -18173,14 +18161,14 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
FunctionType constructorType = node.element.type; |
Type2 constructorReturnType = constructorType.returnType; |
if (!redirectedReturnType.isAssignableTo(constructorReturnType)) { |
- _errorReporter.reportError2(StaticWarningCode.REDIRECT_TO_INVALID_RETURN_TYPE, redirectedConstructor, [redirectedReturnType, constructorReturnType]); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.REDIRECT_TO_INVALID_RETURN_TYPE, redirectedConstructor, [redirectedReturnType, constructorReturnType]); |
return true; |
} |
// |
// Check parameters |
// |
if (!redirectedType.isSubtypeOf(constructorType)) { |
- _errorReporter.reportError2(StaticWarningCode.REDIRECT_TO_INVALID_FUNCTION_TYPE, redirectedConstructor, [redirectedType, constructorType]); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.REDIRECT_TO_INVALID_FUNCTION_TYPE, redirectedConstructor, [redirectedType, constructorType]); |
return true; |
} |
return false; |
@@ -18213,7 +18201,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (returnExpression == null) { |
return false; |
} |
- _errorReporter.reportError2(CompileTimeErrorCode.RETURN_IN_GENERATIVE_CONSTRUCTOR, returnExpression, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.RETURN_IN_GENERATIVE_CONSTRUCTOR, returnExpression, []); |
return true; |
} |
// RETURN_WITHOUT_VALUE |
@@ -18221,7 +18209,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (VoidTypeImpl.instance.isAssignableTo(expectedReturnType)) { |
return false; |
} |
- _errorReporter.reportError2(StaticWarningCode.RETURN_WITHOUT_VALUE, node, []); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.RETURN_WITHOUT_VALUE, node, []); |
return true; |
} |
// RETURN_OF_INVALID_TYPE |
@@ -18233,29 +18221,26 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
* already exported by other export directive. |
* |
* @param node the export directive node to report problem on |
+ * @param exportElement the [ExportElement] retrieved from the node, if the element in the |
+ * node was `null`, then this method is not called |
* @return `true` if and only if an error code is generated on the passed node |
* @see CompileTimeErrorCode#AMBIGUOUS_EXPORT |
*/ |
- bool checkForAmbiguousExport(ExportDirective node) { |
- // prepare ExportElement |
- if (node.element is! ExportElement) { |
- return false; |
- } |
- ExportElement exportElement = node.element as ExportElement; |
+ bool checkForAmbiguousExport(ExportDirective node, ExportElement exportElement) { |
// prepare exported library |
LibraryElement exportedLibrary = exportElement.exportedLibrary; |
if (exportedLibrary == null) { |
return false; |
} |
// check exported names |
- Namespace namespace = new NamespaceBuilder().createExportNamespace(exportElement); |
+ Namespace namespace = new NamespaceBuilder().createExportNamespaceForDirective(exportElement); |
Map<String, Element> definedNames = namespace.definedNames; |
for (MapEntry<String, Element> definedEntry in getMapEntrySet(definedNames)) { |
String name = definedEntry.getKey(); |
Element element = definedEntry.getValue(); |
Element prevElement = _exportedElements[name]; |
if (element != null && prevElement != null && prevElement != element) { |
- _errorReporter.reportError2(CompileTimeErrorCode.AMBIGUOUS_EXPORT, node, [ |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.AMBIGUOUS_EXPORT, node, [ |
name, |
prevElement.library.definingCompilationUnit.displayName, |
element.library.definingCompilationUnit.displayName]); |
@@ -18268,23 +18253,6 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
/** |
- * This verifies that the passed argument definition test identifier is a parameter. |
- * |
- * @param node the [ArgumentDefinitionTest] to evaluate |
- * @return `true` if and only if an error code is generated on the passed node |
- * @see CompileTimeErrorCode#ARGUMENT_DEFINITION_TEST_NON_PARAMETER |
- */ |
- bool checkForArgumentDefinitionTestNonParameter(ArgumentDefinitionTest node) { |
- SimpleIdentifier identifier = node.identifier; |
- Element element = identifier.staticElement; |
- if (element != null && element is! ParameterElement) { |
- _errorReporter.reportError2(CompileTimeErrorCode.ARGUMENT_DEFINITION_TEST_NON_PARAMETER, identifier, [identifier.name]); |
- return true; |
- } |
- return false; |
- } |
- |
- /** |
* This verifies that the passed expression can be assigned to its corresponding parameters. |
* |
* @param expression the expression to evaluate |
@@ -18306,7 +18274,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (actualStaticType.isAssignableTo(expectedStaticType)) { |
return false; |
} |
- _errorReporter.reportError2(errorCode, expression, [ |
+ _errorReporter.reportErrorForNode(errorCode, expression, [ |
actualStaticType.displayName, |
expectedStaticType.displayName]); |
return true; |
@@ -18386,17 +18354,17 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (element is VariableElement) { |
VariableElement variable = element as VariableElement; |
if (variable.isConst) { |
- _errorReporter.reportError2(StaticWarningCode.ASSIGNMENT_TO_CONST, expression, []); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.ASSIGNMENT_TO_CONST, expression, []); |
return true; |
} |
if (variable.isFinal) { |
- _errorReporter.reportError2(StaticWarningCode.ASSIGNMENT_TO_FINAL, expression, [variable.name]); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.ASSIGNMENT_TO_FINAL, expression, [variable.name]); |
return true; |
} |
return false; |
} |
if (element is MethodElement) { |
- _errorReporter.reportError2(StaticWarningCode.ASSIGNMENT_TO_METHOD, expression, []); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.ASSIGNMENT_TO_METHOD, expression, []); |
return true; |
} |
return false; |
@@ -18420,7 +18388,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
bool checkForBuiltInIdentifierAsName(SimpleIdentifier identifier, ErrorCode errorCode) { |
sc.Token token = identifier.token; |
if (identical(token.type, sc.TokenType.KEYWORD)) { |
- _errorReporter.reportError2(errorCode, identifier, [identifier.name]); |
+ _errorReporter.reportErrorForNode(errorCode, identifier, [identifier.name]); |
return true; |
} |
return false; |
@@ -18462,7 +18430,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
} |
// report error |
- _errorReporter.reportError5(StaticWarningCode.CASE_BLOCK_NOT_TERMINATED, node.keyword, []); |
+ _errorReporter.reportErrorForToken(StaticWarningCode.CASE_BLOCK_NOT_TERMINATED, node.keyword, []); |
return true; |
} |
@@ -18501,7 +18469,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
return false; |
} |
// report error |
- _errorReporter.reportError5(CompileTimeErrorCode.CASE_EXPRESSION_TYPE_IMPLEMENTS_EQUALS, node.keyword, [type.displayName]); |
+ _errorReporter.reportErrorForToken(CompileTimeErrorCode.CASE_EXPRESSION_TYPE_IMPLEMENTS_EQUALS, node.keyword, [type.displayName]); |
return true; |
} |
@@ -18516,7 +18484,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
bool checkForConcreteClassWithAbstractMember(MethodDeclaration node) { |
if (node.isAbstract && _enclosingClass != null && !_enclosingClass.isAbstract) { |
SimpleIdentifier methodName = node.name; |
- _errorReporter.reportError2(StaticWarningCode.CONCRETE_CLASS_WITH_ABSTRACT_MEMBER, methodName, [methodName.name, _enclosingClass.displayName]); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.CONCRETE_CLASS_WITH_ABSTRACT_MEMBER, methodName, [methodName.name, _enclosingClass.displayName]); |
return true; |
} |
return false; |
@@ -18546,9 +18514,9 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
if (name == otherConstructor.name) { |
if (name == null || name.length == 0) { |
- _errorReporter.reportError2(CompileTimeErrorCode.DUPLICATE_CONSTRUCTOR_DEFAULT, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.DUPLICATE_CONSTRUCTOR_DEFAULT, node, []); |
} else { |
- _errorReporter.reportError2(CompileTimeErrorCode.DUPLICATE_CONSTRUCTOR_NAME, node, [name]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.DUPLICATE_CONSTRUCTOR_NAME, node, [name]); |
} |
return true; |
} |
@@ -18558,13 +18526,13 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
// fields |
FieldElement field = classElement.getField(name); |
if (field != null) { |
- _errorReporter.reportError2(CompileTimeErrorCode.CONFLICTING_CONSTRUCTOR_NAME_AND_FIELD, node, [name]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.CONFLICTING_CONSTRUCTOR_NAME_AND_FIELD, node, [name]); |
return true; |
} |
// methods |
MethodElement method = classElement.getMethod(name); |
if (method != null) { |
- _errorReporter.reportError2(CompileTimeErrorCode.CONFLICTING_CONSTRUCTOR_NAME_AND_METHOD, node, [name]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.CONFLICTING_CONSTRUCTOR_NAME_AND_METHOD, node, [name]); |
return true; |
} |
} |
@@ -18572,8 +18540,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
/** |
- * This verifies that the [enclosingClass] does not have method and getter with the same |
- * names. |
+ * This verifies that the [enclosingClass] does not have a method and getter pair with the |
+ * same name on, via inheritance. |
* |
* @return `true` if and only if an error code is generated on the passed node |
* @see CompileTimeErrorCode#CONFLICTING_GETTER_AND_METHOD |
@@ -18594,7 +18562,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
// report problem |
hasProblem = true; |
- _errorReporter.reportError4(CompileTimeErrorCode.CONFLICTING_GETTER_AND_METHOD, method.nameOffset, name.length, [ |
+ _errorReporter.reportErrorForOffset(CompileTimeErrorCode.CONFLICTING_GETTER_AND_METHOD, method.nameOffset, name.length, [ |
_enclosingClass.displayName, |
inherited.enclosingElement.displayName, |
name]); |
@@ -18612,7 +18580,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
// report problem |
hasProblem = true; |
- _errorReporter.reportError4(CompileTimeErrorCode.CONFLICTING_METHOD_AND_GETTER, accessor.nameOffset, name.length, [ |
+ _errorReporter.reportErrorForOffset(CompileTimeErrorCode.CONFLICTING_METHOD_AND_GETTER, accessor.nameOffset, name.length, [ |
_enclosingClass.displayName, |
inherited.enclosingElement.displayName, |
name]); |
@@ -18672,9 +18640,9 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
// report problem |
hasProblem = true; |
if (getter) { |
- _errorReporter.reportError3(StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER, accessor, [superElementType.displayName]); |
+ _errorReporter.reportErrorForElement(StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER, accessor, [superElementType.displayName]); |
} else { |
- _errorReporter.reportError3(StaticWarningCode.CONFLICTING_INSTANCE_SETTER_AND_SUPERCLASS_MEMBER, accessor, [superElementType.displayName]); |
+ _errorReporter.reportErrorForElement(StaticWarningCode.CONFLICTING_INSTANCE_SETTER_AND_SUPERCLASS_MEMBER, accessor, [superElementType.displayName]); |
} |
} |
// done |
@@ -18685,35 +18653,83 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
* This verifies that the enclosing class does not have a setter with the same name as the passed |
* instance method declaration. |
* |
+ * TODO(jwren) add other "conflicting" error codes into algorithm/ data structure |
+ * |
* @param node the method declaration to evaluate |
* @return `true` if and only if an error code is generated on the passed node |
* @see StaticWarningCode#CONFLICTING_INSTANCE_METHOD_SETTER |
*/ |
- bool checkForConflictingInstanceMethodSetter(MethodDeclaration node) { |
- if (node.isStatic) { |
- return false; |
- } |
- // prepare name |
- SimpleIdentifier nameNode = node.name; |
- if (nameNode == null) { |
- return false; |
- } |
- String name = nameNode.name; |
- // ensure that we have enclosing class |
- if (_enclosingClass == null) { |
+ bool checkForConflictingInstanceMethodSetter(ClassDeclaration node) { |
+ // Reference all of the class members in this class. |
+ NodeList<ClassMember> classMembers = node.members; |
+ if (classMembers.isEmpty) { |
return false; |
} |
- // try to find setter |
- ExecutableElement setter = _inheritanceManager.lookupMember(_enclosingClass, "${name}="); |
- if (setter == null) { |
- return false; |
+ // Create a HashMap to track conflicting members, and then loop through members in the class to |
+ // construct the HashMap, at the same time, look for violations. Don't add members if they are |
+ // part of a conflict, this prevents multiple warnings for one issue. |
+ bool foundError = false; |
+ Map<String, ClassMember> memberHashMap = new Map<String, ClassMember>(); |
+ for (ClassMember classMember in classMembers) { |
+ if (classMember is MethodDeclaration) { |
+ MethodDeclaration method = classMember; |
+ if (method.isStatic) { |
+ continue; |
+ } |
+ // prepare name |
+ SimpleIdentifier name = method.name; |
+ if (name == null) { |
+ continue; |
+ } |
+ bool addThisMemberToTheMap = true; |
+ bool isGetter = method.isGetter; |
+ bool isSetter = method.isSetter; |
+ bool isOperator = method.isOperator; |
+ bool isMethod = !isGetter && !isSetter && !isOperator; |
+ // Do lookups in the enclosing class (and the inherited member) if the member is a method or |
+ // a setter for StaticWarningCode.CONFLICTING_INSTANCE_METHOD_SETTER warning. |
+ if (isMethod) { |
+ String setterName = "${name.name}="; |
+ Element enclosingElementOfSetter = null; |
+ ClassMember conflictingSetter = memberHashMap[setterName]; |
+ if (conflictingSetter != null) { |
+ enclosingElementOfSetter = conflictingSetter.element.enclosingElement; |
+ } else { |
+ ExecutableElement elementFromInheritance = _inheritanceManager.lookupInheritance(_enclosingClass, setterName); |
+ if (elementFromInheritance != null) { |
+ enclosingElementOfSetter = elementFromInheritance.enclosingElement; |
+ } |
+ } |
+ if (enclosingElementOfSetter != null) { |
+ // report problem |
+ _errorReporter.reportErrorForNode(StaticWarningCode.CONFLICTING_INSTANCE_METHOD_SETTER, name, [ |
+ _enclosingClass.displayName, |
+ name.name, |
+ enclosingElementOfSetter.displayName]); |
+ foundError = javaBooleanOr(foundError, true); |
+ addThisMemberToTheMap = false; |
+ } |
+ } else if (isSetter) { |
+ String methodName = name.name; |
+ ClassMember conflictingMethod = memberHashMap[methodName]; |
+ if (conflictingMethod != null && conflictingMethod is MethodDeclaration && !conflictingMethod.isGetter) { |
+ // report problem |
+ _errorReporter.reportErrorForNode(StaticWarningCode.CONFLICTING_INSTANCE_METHOD_SETTER2, name, [_enclosingClass.displayName, name.name]); |
+ foundError = javaBooleanOr(foundError, true); |
+ addThisMemberToTheMap = false; |
+ } |
+ } |
+ // Finally, add this member into the HashMap. |
+ if (addThisMemberToTheMap) { |
+ if (method.isSetter) { |
+ memberHashMap["${name.name}="] = method; |
+ } else { |
+ memberHashMap[name.name] = method; |
+ } |
+ } |
+ } |
} |
- // report problem |
- _errorReporter.reportError2(StaticWarningCode.CONFLICTING_INSTANCE_METHOD_SETTER, nameNode, [ |
- _enclosingClass.displayName, |
- name, |
- setter.enclosingElement.displayName]); |
- return true; |
+ return foundError; |
} |
/** |
@@ -18752,7 +18768,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
ClassElement setterClass = setter.enclosingElement as ClassElement; |
InterfaceType setterType = setterClass.type; |
// report problem |
- _errorReporter.reportError2(StaticWarningCode.CONFLICTING_STATIC_GETTER_AND_INSTANCE_SETTER, nameNode, [setterType.displayName]); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.CONFLICTING_STATIC_GETTER_AND_INSTANCE_SETTER, nameNode, [setterType.displayName]); |
return true; |
} |
@@ -18799,7 +18815,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
ClassElement memberClass = member.enclosingElement as ClassElement; |
InterfaceType memberType = memberClass.type; |
// report problem |
- _errorReporter.reportError2(StaticWarningCode.CONFLICTING_STATIC_SETTER_AND_INSTANCE_MEMBER, nameNode, [memberType.displayName]); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.CONFLICTING_STATIC_SETTER_AND_INSTANCE_MEMBER, nameNode, [memberType.displayName]); |
return true; |
} |
@@ -18817,12 +18833,12 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
String name = typeParameter.name; |
// name is same as the name of the enclosing class |
if (_enclosingClass.name == name) { |
- _errorReporter.reportError4(CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_CLASS, typeParameter.nameOffset, name.length, [name]); |
+ _errorReporter.reportErrorForOffset(CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_CLASS, typeParameter.nameOffset, name.length, [name]); |
problemReported = true; |
} |
// check members |
if (_enclosingClass.getMethod(name) != null || _enclosingClass.getGetter(name) != null || _enclosingClass.getSetter(name) != null) { |
- _errorReporter.reportError4(CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_MEMBER, typeParameter.nameOffset, name.length, [name]); |
+ _errorReporter.reportErrorForOffset(CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_MEMBER, typeParameter.nameOffset, name.length, [name]); |
problemReported = true; |
} |
} |
@@ -18853,7 +18869,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (element == null || element.isConst) { |
return false; |
} |
- _errorReporter.reportError2(CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_CONST_SUPER, superInvocation, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_CONST_SUPER, superInvocation, []); |
return true; |
} |
} |
@@ -18873,7 +18889,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
return false; |
} |
// default constructor is not 'const', report problem |
- _errorReporter.reportError2(CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_CONST_SUPER, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_CONST_SUPER, node, []); |
return true; |
} |
@@ -18892,11 +18908,11 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
// check if there is non-final field |
ConstructorElement constructorElement = node.element; |
ClassElement classElement = constructorElement.enclosingElement; |
- if (!classElement.hasNonFinalField()) { |
+ if (!classElement.hasNonFinalField) { |
return false; |
} |
// report problem |
- _errorReporter.reportError2(CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_FINAL_FIELD, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_FINAL_FIELD, node, []); |
return true; |
} |
@@ -18910,7 +18926,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
*/ |
bool checkForConstEvalThrowsException(ThrowExpression node) { |
if (_isEnclosingConstructorConst) { |
- _errorReporter.reportError2(CompileTimeErrorCode.CONST_CONSTRUCTOR_THROWS_EXCEPTION, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.CONST_CONSTRUCTOR_THROWS_EXCEPTION, node, []); |
return true; |
} |
return false; |
@@ -18925,7 +18941,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
*/ |
bool checkForConstFormalParameter(NormalFormalParameter node) { |
if (node.isConst) { |
- _errorReporter.reportError2(CompileTimeErrorCode.CONST_FORMAL_PARAMETER, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.CONST_FORMAL_PARAMETER, node, []); |
return true; |
} |
return false; |
@@ -18950,7 +18966,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
Expression key = entry.key; |
Type2 type = key.staticType; |
if (implementsEqualsWhenNotAllowed(type)) { |
- _errorReporter.reportError2(CompileTimeErrorCode.CONST_MAP_KEY_EXPRESSION_TYPE_IMPLEMENTS_EQUALS, key, [type.displayName]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.CONST_MAP_KEY_EXPRESSION_TYPE_IMPLEMENTS_EQUALS, key, [type.displayName]); |
hasProblems = true; |
} |
} |
@@ -18974,9 +18990,9 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
ConstructorElement element = node.staticElement; |
if (element != null && !element.isFactory) { |
if (identical((node.keyword as sc.KeywordToken).keyword, sc.Keyword.CONST)) { |
- _errorReporter.reportError2(StaticWarningCode.CONST_WITH_ABSTRACT_CLASS, typeName, []); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.CONST_WITH_ABSTRACT_CLASS, typeName, []); |
} else { |
- _errorReporter.reportError2(StaticWarningCode.NEW_WITH_ABSTRACT_CLASS, typeName, []); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.NEW_WITH_ABSTRACT_CLASS, typeName, []); |
} |
return true; |
} |
@@ -18997,7 +19013,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
bool checkForConstWithNonConst(InstanceCreationExpression node) { |
ConstructorElement constructorElement = node.staticElement; |
if (constructorElement != null && !constructorElement.isConst) { |
- _errorReporter.reportError2(CompileTimeErrorCode.CONST_WITH_NON_CONST, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.CONST_WITH_NON_CONST, node, []); |
return true; |
} |
return false; |
@@ -19021,7 +19037,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
// should not be a type parameter |
if (name.staticElement is TypeParameterElement) { |
- _errorReporter.reportError2(CompileTimeErrorCode.CONST_WITH_TYPE_PARAMETERS, name, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.CONST_WITH_TYPE_PARAMETERS, name, []); |
} |
// check type arguments |
TypeArgumentList typeArguments = typeName.typeArguments; |
@@ -19085,9 +19101,9 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
// report as named or default constructor absence |
SimpleIdentifier name = constructorName.name; |
if (name != null) { |
- _errorReporter.reportError2(CompileTimeErrorCode.CONST_WITH_UNDEFINED_CONSTRUCTOR, name, [className, name]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.CONST_WITH_UNDEFINED_CONSTRUCTOR, name, [className, name]); |
} else { |
- _errorReporter.reportError2(CompileTimeErrorCode.CONST_WITH_UNDEFINED_CONSTRUCTOR_DEFAULT, constructorName, [className]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.CONST_WITH_UNDEFINED_CONSTRUCTOR_DEFAULT, constructorName, [className]); |
} |
return true; |
} |
@@ -19107,7 +19123,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (formalParameter is DefaultFormalParameter) { |
DefaultFormalParameter defaultFormalParameter = formalParameter; |
if (defaultFormalParameter.defaultValue != null) { |
- _errorReporter.reportError2(CompileTimeErrorCode.DEFAULT_VALUE_IN_FUNCTION_TYPE_ALIAS, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.DEFAULT_VALUE_IN_FUNCTION_TYPE_ALIAS, node, []); |
result = true; |
} |
} |
@@ -19133,7 +19149,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
return false; |
} |
// Report problem. |
- _errorReporter.reportError2(CompileTimeErrorCode.DEFAULT_VALUE_IN_FUNCTION_TYPED_PARAMETER, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.DEFAULT_VALUE_IN_FUNCTION_TYPED_PARAMETER, node, []); |
return true; |
} |
@@ -19188,7 +19204,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
return false; |
} |
// report problem |
- _errorReporter.reportError4(CompileTimeErrorCode.DUPLICATE_DEFINITION_INHERITANCE, staticMember.nameOffset, name.length, [name, inheritedMember.enclosingElement.displayName]); |
+ _errorReporter.reportErrorForOffset(CompileTimeErrorCode.DUPLICATE_DEFINITION_INHERITANCE, staticMember.nameOffset, name.length, [name, inheritedMember.enclosingElement.displayName]); |
return true; |
} |
@@ -19211,7 +19227,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
return false; |
} |
// report problem |
- _errorReporter.reportError2(StaticTypeWarningCode.EXPECTED_ONE_LIST_TYPE_ARGUMENTS, typeArguments, [num]); |
+ _errorReporter.reportErrorForNode(StaticTypeWarningCode.EXPECTED_ONE_LIST_TYPE_ARGUMENTS, typeArguments, [num]); |
return true; |
} |
@@ -19219,18 +19235,14 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
* This verifies the passed import has unique name among other exported libraries. |
* |
* @param node the export directive to evaluate |
+ * @param exportElement the [ExportElement] retrieved from the node, if the element in the |
+ * node was `null`, then this method is not called |
* @return `true` if and only if an error code is generated on the passed node |
* @see CompileTimeErrorCode#EXPORT_DUPLICATED_LIBRARY_NAME |
*/ |
- bool checkForExportDuplicateLibraryName(ExportDirective node) { |
- // prepare import element |
- Element nodeElement = node.element; |
- if (nodeElement is! ExportElement) { |
- return false; |
- } |
- ExportElement nodeExportElement = nodeElement as ExportElement; |
+ bool checkForExportDuplicateLibraryName(ExportDirective node, ExportElement exportElement) { |
// prepare exported library |
- LibraryElement nodeLibrary = nodeExportElement.exportedLibrary; |
+ LibraryElement nodeLibrary = exportElement.exportedLibrary; |
if (nodeLibrary == null) { |
return false; |
} |
@@ -19239,7 +19251,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
LibraryElement prevLibrary = _nameToExportElement[name]; |
if (prevLibrary != null) { |
if (prevLibrary != nodeLibrary) { |
- _errorReporter.reportError2(StaticWarningCode.EXPORT_DUPLICATED_LIBRARY_NAME, node, [ |
+ _errorReporter.reportErrorForNode(StaticWarningCode.EXPORT_DUPLICATED_LIBRARY_NAME, node, [ |
prevLibrary.definingCompilationUnit.displayName, |
nodeLibrary.definingCompilationUnit.displayName, |
name]); |
@@ -19257,19 +19269,15 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
* internal library. |
* |
* @param node the export directive to evaluate |
+ * @param exportElement the [ExportElement] retrieved from the node, if the element in the |
+ * node was `null`, then this method is not called |
* @return `true` if and only if an error code is generated on the passed node |
* @see CompileTimeErrorCode#EXPORT_INTERNAL_LIBRARY |
*/ |
- bool checkForExportInternalLibrary(ExportDirective node) { |
+ bool checkForExportInternalLibrary(ExportDirective node, ExportElement exportElement) { |
if (_isInSystemLibrary) { |
return false; |
} |
- // prepare export element |
- Element element = node.element; |
- if (element is! ExportElement) { |
- return false; |
- } |
- ExportElement exportElement = element as ExportElement; |
// should be private |
DartSdk sdk = _currentLibrary.context.sourceFactory.dartSdk; |
String uri = exportElement.uri; |
@@ -19281,7 +19289,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
return false; |
} |
// report problem |
- _errorReporter.reportError2(CompileTimeErrorCode.EXPORT_INTERNAL_LIBRARY, node, [node.uri]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.EXPORT_INTERNAL_LIBRARY, node, [node.uri]); |
return true; |
} |
@@ -19328,13 +19336,13 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (grandParent is ClassDeclaration) { |
ClassElement classElement = grandParent.element; |
Type2 classType = classElement.type; |
- if (classType != null && (classType == _typeProvider.intType || classType == _typeProvider.doubleType)) { |
+ if (classType != null && (classType == _intType || classType == _typeProvider.doubleType)) { |
return false; |
} |
} |
} |
// otherwise, report the error |
- _errorReporter.reportError2(errorCode, typeName, [disallowedType.displayName]); |
+ _errorReporter.reportErrorForNode(errorCode, typeName, [disallowedType.displayName]); |
return true; |
} |
} |
@@ -19374,9 +19382,9 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
// report problem |
if (_isEnclosingConstructorConst) { |
- _errorReporter.reportError2(CompileTimeErrorCode.CONST_FIELD_INITIALIZER_NOT_ASSIGNABLE, expression, [staticType.displayName, fieldType.displayName]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.CONST_FIELD_INITIALIZER_NOT_ASSIGNABLE, expression, [staticType.displayName, fieldType.displayName]); |
} else { |
- _errorReporter.reportError2(StaticWarningCode.FIELD_INITIALIZER_NOT_ASSIGNABLE, expression, [staticType.displayName, fieldType.displayName]); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.FIELD_INITIALIZER_NOT_ASSIGNABLE, expression, [staticType.displayName, fieldType.displayName]); |
} |
return true; |
} |
@@ -19391,18 +19399,18 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
bool checkForFieldInitializingFormalRedirectingConstructor(FieldFormalParameter node) { |
ConstructorDeclaration constructor = node.getAncestor((node) => node is ConstructorDeclaration); |
if (constructor == null) { |
- _errorReporter.reportError2(CompileTimeErrorCode.FIELD_INITIALIZER_OUTSIDE_CONSTRUCTOR, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.FIELD_INITIALIZER_OUTSIDE_CONSTRUCTOR, node, []); |
return true; |
} |
// constructor cannot be a factory |
if (constructor.factoryKeyword != null) { |
- _errorReporter.reportError2(CompileTimeErrorCode.FIELD_INITIALIZER_FACTORY_CONSTRUCTOR, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.FIELD_INITIALIZER_FACTORY_CONSTRUCTOR, node, []); |
return true; |
} |
// constructor cannot have a redirection |
for (ConstructorInitializer initializer in constructor.initializers) { |
if (initializer is RedirectingConstructorInvocation) { |
- _errorReporter.reportError2(CompileTimeErrorCode.FIELD_INITIALIZER_REDIRECTING_CONSTRUCTOR, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.FIELD_INITIALIZER_REDIRECTING_CONSTRUCTOR, node, []); |
return true; |
} |
} |
@@ -19432,9 +19440,9 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
for (VariableDeclaration variable in variables) { |
if (variable.initializer == null) { |
if (node.isConst) { |
- _errorReporter.reportError2(CompileTimeErrorCode.CONST_NOT_INITIALIZED, variable.name, [variable.name.name]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.CONST_NOT_INITIALIZED, variable.name, [variable.name.name]); |
} else if (node.isFinal) { |
- _errorReporter.reportError2(StaticWarningCode.FINAL_NOT_INITIALIZED, variable.name, [variable.name.name]); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.FINAL_NOT_INITIALIZED, variable.name, [variable.name.name]); |
} |
foundError = true; |
} |
@@ -19544,9 +19552,9 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
// report problem |
if (_isInStaticMethod) { |
- _errorReporter.reportError2(CompileTimeErrorCode.INSTANCE_MEMBER_ACCESS_FROM_STATIC, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.INSTANCE_MEMBER_ACCESS_FROM_STATIC, node, []); |
} else { |
- _errorReporter.reportError2(CompileTimeErrorCode.IMPLICIT_THIS_REFERENCE_IN_INITIALIZER, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.IMPLICIT_THIS_REFERENCE_IN_INITIALIZER, node, []); |
} |
return true; |
} |
@@ -19555,17 +19563,14 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
* This verifies the passed import has unique name among other imported libraries. |
* |
* @param node the import directive to evaluate |
+ * @param importElement the [ImportElement] retrieved from the node, if the element in the |
+ * node was `null`, then this method is not called |
* @return `true` if and only if an error code is generated on the passed node |
* @see CompileTimeErrorCode#IMPORT_DUPLICATED_LIBRARY_NAME |
*/ |
- bool checkForImportDuplicateLibraryName(ImportDirective node) { |
- // prepare import element |
- ImportElement nodeImportElement = node.element; |
- if (nodeImportElement == null) { |
- return false; |
- } |
+ bool checkForImportDuplicateLibraryName(ImportDirective node, ImportElement importElement) { |
// prepare imported library |
- LibraryElement nodeLibrary = nodeImportElement.importedLibrary; |
+ LibraryElement nodeLibrary = importElement.importedLibrary; |
if (nodeLibrary == null) { |
return false; |
} |
@@ -19574,7 +19579,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
LibraryElement prevLibrary = _nameToImportElement[name]; |
if (prevLibrary != null) { |
if (prevLibrary != nodeLibrary) { |
- _errorReporter.reportError2(StaticWarningCode.IMPORT_DUPLICATED_LIBRARY_NAME, node, [ |
+ _errorReporter.reportErrorForNode(StaticWarningCode.IMPORT_DUPLICATED_LIBRARY_NAME, node, [ |
prevLibrary.definingCompilationUnit.displayName, |
nodeLibrary.definingCompilationUnit.displayName, |
name]); |
@@ -19592,18 +19597,15 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
* internal library. |
* |
* @param node the import directive to evaluate |
+ * @param importElement the [ImportElement] retrieved from the node, if the element in the |
+ * node was `null`, then this method is not called |
* @return `true` if and only if an error code is generated on the passed node |
* @see CompileTimeErrorCode#IMPORT_INTERNAL_LIBRARY |
*/ |
- bool checkForImportInternalLibrary(ImportDirective node) { |
+ bool checkForImportInternalLibrary(ImportDirective node, ImportElement importElement) { |
if (_isInSystemLibrary) { |
return false; |
} |
- // prepare import element |
- ImportElement importElement = node.element; |
- if (importElement == null) { |
- return false; |
- } |
// should be private |
DartSdk sdk = _currentLibrary.context.sourceFactory.dartSdk; |
String uri = importElement.uri; |
@@ -19615,7 +19617,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
return false; |
} |
// report problem |
- _errorReporter.reportError2(CompileTimeErrorCode.IMPORT_INTERNAL_LIBRARY, node, [node.uri]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.IMPORT_INTERNAL_LIBRARY, node, [node.uri]); |
return true; |
} |
@@ -19643,7 +19645,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} else { |
Type2 nType = expression.bestType; |
if (firstType != nType) { |
- _errorReporter.reportError2(CompileTimeErrorCode.INCONSISTENT_CASE_EXPRESSION_TYPES, expression, [expression.toSource(), firstType.displayName]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.INCONSISTENT_CASE_EXPRESSION_TYPES, expression, [expression.toSource(), firstType.displayName]); |
foundError = true; |
} |
} |
@@ -19711,7 +19713,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
return false; |
} |
// report problem |
- _errorReporter.reportError2(StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER, name, [name.name]); |
+ _errorReporter.reportErrorForNode(StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER, name, [name.name]); |
return true; |
} |
@@ -19732,7 +19734,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
Type2 staticParameterType = staticParameterElement == null ? null : staticParameterElement.type; |
ParameterElement propagatedParameterElement = argument.propagatedParameterElement; |
Type2 propagatedParameterType = propagatedParameterElement == null ? null : propagatedParameterElement.type; |
- return checkForArgumentTypeNotAssignable(argument, staticParameterType, _typeProvider.intType, propagatedParameterType, _typeProvider.intType, StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE); |
+ return checkForArgumentTypeNotAssignable(argument, staticParameterType, _intType, propagatedParameterType, _intType, StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE); |
} |
/** |
@@ -19758,7 +19760,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
leftName = getExtendedDisplayName(leftType); |
rightName = getExtendedDisplayName(staticRightType); |
} |
- _errorReporter.reportError2(StaticTypeWarningCode.INVALID_ASSIGNMENT, rhs, [rightName, leftName]); |
+ _errorReporter.reportErrorForNode(StaticTypeWarningCode.INVALID_ASSIGNMENT, rhs, [rightName, leftName]); |
return true; |
} |
// TODO(brianwilkerson) Define a hint corresponding to the warning and report it if appropriate. |
@@ -19805,7 +19807,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
leftName = getExtendedDisplayName(leftType); |
rightName = getExtendedDisplayName(rightType); |
} |
- _errorReporter.reportError2(StaticTypeWarningCode.INVALID_ASSIGNMENT, node.rightHandSide, [rightName, leftName]); |
+ _errorReporter.reportErrorForNode(StaticTypeWarningCode.INVALID_ASSIGNMENT, node.rightHandSide, [rightName, leftName]); |
return true; |
} |
return false; |
@@ -19822,12 +19824,12 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (staticElement is FieldElement) { |
FieldElement fieldElement = staticElement; |
if (fieldElement.isSynthetic) { |
- _errorReporter.reportError2(CompileTimeErrorCode.INITIALIZER_FOR_NON_EXISTANT_FIELD, node, [fieldName]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.INITIALIZER_FOR_NON_EXISTANT_FIELD, node, [fieldName]); |
} else if (fieldElement.isStatic) { |
- _errorReporter.reportError2(CompileTimeErrorCode.INITIALIZER_FOR_STATIC_FIELD, node, [fieldName]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.INITIALIZER_FOR_STATIC_FIELD, node, [fieldName]); |
} |
} else { |
- _errorReporter.reportError2(CompileTimeErrorCode.INITIALIZER_FOR_NON_EXISTANT_FIELD, node, [fieldName]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.INITIALIZER_FOR_NON_EXISTANT_FIELD, node, [fieldName]); |
return; |
} |
} |
@@ -19841,7 +19843,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
*/ |
bool checkForInvalidReferenceToThis(ThisExpression node) { |
if (!isThisInValidContext(node)) { |
- _errorReporter.reportError2(CompileTimeErrorCode.INVALID_REFERENCE_TO_THIS, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.INVALID_REFERENCE_TO_THIS, node, []); |
return true; |
} |
return false; |
@@ -19861,7 +19863,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
bool foundError = false; |
for (TypeName typeName in arguments) { |
if (typeName.type is TypeParameterType) { |
- _errorReporter.reportError2(errorCode, typeName, [typeName.name]); |
+ _errorReporter.reportErrorForNode(errorCode, typeName, [typeName.name]); |
foundError = true; |
} |
} |
@@ -19967,7 +19969,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
// check accessors |
for (PropertyAccessorElement accessor in _enclosingClass.accessors) { |
if (className == accessor.name) { |
- _errorReporter.reportError4(CompileTimeErrorCode.MEMBER_WITH_CLASS_NAME, accessor.nameOffset, className.length, []); |
+ _errorReporter.reportErrorForOffset(CompileTimeErrorCode.MEMBER_WITH_CLASS_NAME, accessor.nameOffset, className.length, []); |
problemReported = true; |
} |
} |
@@ -20041,13 +20043,13 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
// it is dynamic which is assignable to everything). |
if (setterType != null && getterType != null && !getterType.isAssignableTo(setterType)) { |
if (enclosingClassForCounterpart == null) { |
- _errorReporter.reportError2(StaticWarningCode.MISMATCHED_GETTER_AND_SETTER_TYPES, accessorDeclaration, [ |
+ _errorReporter.reportErrorForNode(StaticWarningCode.MISMATCHED_GETTER_AND_SETTER_TYPES, accessorDeclaration, [ |
accessorTextName, |
setterType.displayName, |
getterType.displayName]); |
return true; |
} else { |
- _errorReporter.reportError2(StaticWarningCode.MISMATCHED_GETTER_AND_SETTER_TYPES_FROM_SUPERTYPE, accessorDeclaration, [ |
+ _errorReporter.reportErrorForNode(StaticWarningCode.MISMATCHED_GETTER_AND_SETTER_TYPES_FROM_SUPERTYPE, accessorDeclaration, [ |
accessorTextName, |
setterType.displayName, |
getterType.displayName, |
@@ -20070,10 +20072,10 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
int withoutCount = _returnsWithout.length; |
if (withCount > 0 && withoutCount > 0) { |
for (int i = 0; i < withCount; i++) { |
- _errorReporter.reportError5(StaticWarningCode.MIXED_RETURN_TYPES, _returnsWith[i].keyword, []); |
+ _errorReporter.reportErrorForToken(StaticWarningCode.MIXED_RETURN_TYPES, _returnsWith[i].keyword, []); |
} |
for (int i = 0; i < withoutCount; i++) { |
- _errorReporter.reportError5(StaticWarningCode.MIXED_RETURN_TYPES, _returnsWithout[i].keyword, []); |
+ _errorReporter.reportErrorForToken(StaticWarningCode.MIXED_RETURN_TYPES, _returnsWithout[i].keyword, []); |
} |
return true; |
} |
@@ -20091,7 +20093,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
bool checkForMixinDeclaresConstructor(TypeName mixinName, ClassElement mixinElement) { |
for (ConstructorElement constructor in mixinElement.constructors) { |
if (!constructor.isSynthetic && !constructor.isFactory) { |
- _errorReporter.reportError2(CompileTimeErrorCode.MIXIN_DECLARES_CONSTRUCTOR, mixinName, [mixinElement.name]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.MIXIN_DECLARES_CONSTRUCTOR, mixinName, [mixinElement.name]); |
return true; |
} |
} |
@@ -20110,7 +20112,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
InterfaceType mixinSupertype = mixinElement.supertype; |
if (mixinSupertype != null) { |
if (!mixinSupertype.isObject || !mixinElement.isTypedef && mixinElement.mixins.length != 0) { |
- _errorReporter.reportError2(CompileTimeErrorCode.MIXIN_INHERITS_FROM_NOT_OBJECT, mixinName, [mixinElement.name]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.MIXIN_INHERITS_FROM_NOT_OBJECT, mixinName, [mixinElement.name]); |
return true; |
} |
} |
@@ -20126,8 +20128,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
* @see CompileTimeErrorCode#MIXIN_REFERENCES_SUPER |
*/ |
bool checkForMixinReferencesSuper(TypeName mixinName, ClassElement mixinElement) { |
- if (mixinElement.hasReferenceToSuper()) { |
- _errorReporter.reportError2(CompileTimeErrorCode.MIXIN_REFERENCES_SUPER, mixinName, [mixinElement.name]); |
+ if (mixinElement.hasReferenceToSuper) { |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.MIXIN_REFERENCES_SUPER, mixinName, [mixinElement.name]); |
} |
return false; |
} |
@@ -20145,7 +20147,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (initializer is SuperConstructorInvocation) { |
numSuperInitializers++; |
if (numSuperInitializers > 1) { |
- _errorReporter.reportError2(CompileTimeErrorCode.MULTIPLE_SUPER_INITIALIZERS, initializer, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.MULTIPLE_SUPER_INITIALIZERS, initializer, []); |
} |
} |
} |
@@ -20161,7 +20163,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
*/ |
bool checkForNativeFunctionBodyInNonSDKCode(NativeFunctionBody node) { |
if (!_isInSystemLibrary && !_hasExtUri) { |
- _errorReporter.reportError2(ParserErrorCode.NATIVE_FUNCTION_BODY_IN_NON_SDK_CODE, node, []); |
+ _errorReporter.reportErrorForNode(ParserErrorCode.NATIVE_FUNCTION_BODY_IN_NON_SDK_CODE, node, []); |
return true; |
} |
return false; |
@@ -20195,9 +20197,9 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
// report as named or default constructor absence |
SimpleIdentifier name = constructorName.name; |
if (name != null) { |
- _errorReporter.reportError2(StaticWarningCode.NEW_WITH_UNDEFINED_CONSTRUCTOR, name, [className, name]); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.NEW_WITH_UNDEFINED_CONSTRUCTOR, name, [className, name]); |
} else { |
- _errorReporter.reportError2(StaticWarningCode.NEW_WITH_UNDEFINED_CONSTRUCTOR_DEFAULT, constructorName, [className]); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.NEW_WITH_UNDEFINED_CONSTRUCTOR_DEFAULT, constructorName, [className]); |
} |
return true; |
} |
@@ -20226,7 +20228,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
ConstructorElement superUnnamedConstructor = superElement.unnamedConstructor; |
if (superUnnamedConstructor != null) { |
if (superUnnamedConstructor.isFactory) { |
- _errorReporter.reportError2(CompileTimeErrorCode.NON_GENERATIVE_CONSTRUCTOR, node.name, [superUnnamedConstructor]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.NON_GENERATIVE_CONSTRUCTOR, node.name, [superUnnamedConstructor]); |
return true; |
} |
if (superUnnamedConstructor.isDefaultConstructor) { |
@@ -20234,7 +20236,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
} |
// report problem |
- _errorReporter.reportError2(CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_IMPLICIT, node.name, [superType.displayName]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_IMPLICIT, node.name, [superType.displayName]); |
return true; |
} |
@@ -20383,7 +20385,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
bool checkForNonBoolCondition(Expression condition) { |
Type2 conditionType = getStaticType(condition); |
if (conditionType != null && !conditionType.isAssignableTo(_boolType)) { |
- _errorReporter.reportError2(StaticTypeWarningCode.NON_BOOL_CONDITION, condition, []); |
+ _errorReporter.reportErrorForNode(StaticTypeWarningCode.NON_BOOL_CONDITION, condition, []); |
return true; |
} |
return false; |
@@ -20401,13 +20403,13 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
Type2 type = getStaticType(expression); |
if (type is InterfaceType) { |
if (!type.isAssignableTo(_boolType)) { |
- _errorReporter.reportError2(StaticTypeWarningCode.NON_BOOL_EXPRESSION, expression, []); |
+ _errorReporter.reportErrorForNode(StaticTypeWarningCode.NON_BOOL_EXPRESSION, expression, []); |
return true; |
} |
} else if (type is FunctionType) { |
FunctionType functionType = type; |
if (functionType.typeArguments.length == 0 && !functionType.returnType.isAssignableTo(_boolType)) { |
- _errorReporter.reportError2(StaticTypeWarningCode.NON_BOOL_EXPRESSION, expression, []); |
+ _errorReporter.reportErrorForNode(StaticTypeWarningCode.NON_BOOL_EXPRESSION, expression, []); |
return true; |
} |
} |
@@ -20424,7 +20426,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
bool checkForNonBoolNegationExpression(Expression expression) { |
Type2 conditionType = getStaticType(expression); |
if (conditionType != null && !conditionType.isAssignableTo(_boolType)) { |
- _errorReporter.reportError2(StaticTypeWarningCode.NON_BOOL_NEGATION_EXPRESSION, expression, []); |
+ _errorReporter.reportErrorForNode(StaticTypeWarningCode.NON_BOOL_NEGATION_EXPRESSION, expression, []); |
return true; |
} |
return false; |
@@ -20459,7 +20461,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
return false; |
} |
// report problem |
- _errorReporter.reportError2(CompileTimeErrorCode.NON_CONST_MAP_AS_EXPRESSION_STATEMENT, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.NON_CONST_MAP_AS_EXPRESSION_STATEMENT, node, []); |
return true; |
} |
@@ -20482,7 +20484,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (typeName != null) { |
Type2 type = typeName.type; |
if (type != null && !type.isVoid) { |
- _errorReporter.reportError2(StaticWarningCode.NON_VOID_RETURN_FOR_OPERATOR, typeName, []); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.NON_VOID_RETURN_FOR_OPERATOR, typeName, []); |
} |
} |
// no warning |
@@ -20500,7 +20502,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (typeName != null) { |
Type2 type = typeName.type; |
if (type != null && !type.isVoid) { |
- _errorReporter.reportError2(StaticWarningCode.NON_VOID_RETURN_FOR_SETTER, typeName, []); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.NON_VOID_RETURN_FOR_SETTER, typeName, []); |
} |
} |
return false; |
@@ -20525,7 +20527,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
NodeList<FormalParameter> formalParameters = parameterList.parameters; |
for (FormalParameter formalParameter in formalParameters) { |
if (formalParameter.kind.isOptional) { |
- _errorReporter.reportError2(CompileTimeErrorCode.OPTIONAL_PARAMETER_IN_OPERATOR, formalParameter, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.OPTIONAL_PARAMETER_IN_OPERATOR, formalParameter, []); |
foundError = true; |
} |
} |
@@ -20550,7 +20552,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
return false; |
} |
// report problem |
- _errorReporter.reportError2(CompileTimeErrorCode.PRIVATE_OPTIONAL_PARAMETER, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.PRIVATE_OPTIONAL_PARAMETER, node, []); |
return true; |
} |
@@ -20576,7 +20578,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
return false; |
} |
// report error |
- _errorReporter.reportError2(CompileTimeErrorCode.RECURSIVE_CONSTRUCTOR_REDIRECT, initializer, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.RECURSIVE_CONSTRUCTOR_REDIRECT, initializer, []); |
return true; |
} |
} |
@@ -20604,7 +20606,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
return false; |
} |
// report error |
- _errorReporter.reportError2(CompileTimeErrorCode.RECURSIVE_FACTORY_REDIRECT, redirectedConstructorNode, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.RECURSIVE_FACTORY_REDIRECT, redirectedConstructorNode, []); |
return true; |
} |
@@ -20644,7 +20646,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (redirectedConstructor != null) { |
for (FormalParameter parameter in node.parameters.parameters) { |
if (parameter is DefaultFormalParameter && parameter.defaultValue != null) { |
- _errorReporter.reportError2(CompileTimeErrorCode.DEFAULT_VALUE_IN_REDIRECTING_FACTORY_CONSTRUCTOR, parameter.identifier, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.DEFAULT_VALUE_IN_REDIRECTING_FACTORY_CONSTRUCTOR, parameter.identifier, []); |
errorReported = true; |
} |
} |
@@ -20654,7 +20656,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
for (ConstructorInitializer initializer in node.initializers) { |
if (initializer is RedirectingConstructorInvocation) { |
if (numRedirections > 0) { |
- _errorReporter.reportError2(CompileTimeErrorCode.MULTIPLE_REDIRECTING_CONSTRUCTOR_INVOCATIONS, initializer, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.MULTIPLE_REDIRECTING_CONSTRUCTOR_INVOCATIONS, initializer, []); |
errorReported = true; |
} |
numRedirections++; |
@@ -20664,11 +20666,11 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (numRedirections > 0) { |
for (ConstructorInitializer initializer in node.initializers) { |
if (initializer is SuperConstructorInvocation) { |
- _errorReporter.reportError2(CompileTimeErrorCode.SUPER_IN_REDIRECTING_CONSTRUCTOR, initializer, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.SUPER_IN_REDIRECTING_CONSTRUCTOR, initializer, []); |
errorReported = true; |
} |
if (initializer is ConstructorFieldInitializer) { |
- _errorReporter.reportError2(CompileTimeErrorCode.FIELD_INITIALIZER_REDIRECTING_CONSTRUCTOR, initializer, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.FIELD_INITIALIZER_REDIRECTING_CONSTRUCTOR, initializer, []); |
errorReported = true; |
} |
} |
@@ -20710,7 +20712,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
return false; |
} |
// report error |
- _errorReporter.reportError2(CompileTimeErrorCode.REDIRECT_TO_NON_CONST_CONSTRUCTOR, redirectedConstructorNode, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.REDIRECT_TO_NON_CONST_CONSTRUCTOR, redirectedConstructorNode, []); |
return true; |
} |
@@ -20723,7 +20725,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
*/ |
bool checkForRethrowOutsideCatch(RethrowExpression node) { |
if (!_isInCatchClause) { |
- _errorReporter.reportError2(CompileTimeErrorCode.RETHROW_OUTSIDE_CATCH, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.RETHROW_OUTSIDE_CATCH, node, []); |
return true; |
} |
return false; |
@@ -20748,7 +20750,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
return false; |
} |
// report error |
- _errorReporter.reportError2(CompileTimeErrorCode.RETURN_IN_GENERATIVE_CONSTRUCTOR, body, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.RETURN_IN_GENERATIVE_CONSTRUCTOR, body, []); |
return true; |
} |
@@ -20770,7 +20772,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (staticReturnType.isVoid || staticReturnType.isDynamic || staticReturnType.isBottom) { |
return false; |
} |
- _errorReporter.reportError2(StaticTypeWarningCode.RETURN_OF_INVALID_TYPE, returnExpression, [ |
+ _errorReporter.reportErrorForNode(StaticTypeWarningCode.RETURN_OF_INVALID_TYPE, returnExpression, [ |
staticReturnType.displayName, |
expectedReturnType.displayName, |
_enclosingFunction.displayName]); |
@@ -20780,7 +20782,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (isStaticAssignable) { |
return false; |
} |
- _errorReporter.reportError2(StaticTypeWarningCode.RETURN_OF_INVALID_TYPE, returnExpression, [ |
+ _errorReporter.reportErrorForNode(StaticTypeWarningCode.RETURN_OF_INVALID_TYPE, returnExpression, [ |
staticReturnType.displayName, |
expectedReturnType.displayName, |
_enclosingFunction.displayName]); |
@@ -20814,7 +20816,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
return false; |
} |
// report problem |
- _errorReporter.reportError2(StaticWarningCode.STATIC_ACCESS_TO_INSTANCE_MEMBER, name, [name.name]); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.STATIC_ACCESS_TO_INSTANCE_MEMBER, name, [name.name]); |
return true; |
} |
@@ -20848,7 +20850,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
return false; |
} |
// report problem |
- _errorReporter.reportError2(StaticWarningCode.SWITCH_EXPRESSION_NOT_ASSIGNABLE, expression, [expressionType, caseType]); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.SWITCH_EXPRESSION_NOT_ASSIGNABLE, expression, [expressionType, caseType]); |
return true; |
} |
return false; |
@@ -20866,7 +20868,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (!hasTypedefSelfReference(element)) { |
return false; |
} |
- _errorReporter.reportError2(CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF, node, []); |
return true; |
} |
@@ -20881,7 +20883,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (!hasTypedefSelfReference(element)) { |
return false; |
} |
- _errorReporter.reportError2(CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF, node, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF, node, []); |
return true; |
} |
@@ -20923,12 +20925,12 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
boundType = boundType.substitute2(typeArguments, typeParameters); |
if (!argType.isSubtypeOf(boundType)) { |
ErrorCode errorCode; |
- if (isInConstConstructorInvocation(node)) { |
+ if (_isInConstInstanceCreation) { |
errorCode = CompileTimeErrorCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS; |
} else { |
errorCode = StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS; |
} |
- _errorReporter.reportError2(errorCode, argTypeName, [argType.displayName, boundType.displayName]); |
+ _errorReporter.reportErrorForNode(errorCode, argTypeName, [argType.displayName, boundType.displayName]); |
foundError = true; |
} |
} |
@@ -20948,7 +20950,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (_isInStaticMethod || _isInStaticVariableDeclaration) { |
Type2 type = node.type; |
if (type is TypeParameterType) { |
- _errorReporter.reportError2(StaticWarningCode.TYPE_PARAMETER_REFERENCED_BY_STATIC, node, []); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.TYPE_PARAMETER_REFERENCED_BY_STATIC, node, []); |
return true; |
} |
} |
@@ -20974,7 +20976,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
return false; |
} |
// report problem |
- _errorReporter.reportError2(StaticTypeWarningCode.TYPE_PARAMETER_SUPERTYPE_OF_ITS_BOUND, node, [element.displayName]); |
+ _errorReporter.reportErrorForNode(StaticTypeWarningCode.TYPE_PARAMETER_SUPERTYPE_OF_ITS_BOUND, node, [element.displayName]); |
return true; |
} |
@@ -21019,7 +21021,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
ConstructorElement superUnnamedConstructor = superElement.unnamedConstructor; |
if (superUnnamedConstructor != null) { |
if (superUnnamedConstructor.isFactory) { |
- _errorReporter.reportError2(CompileTimeErrorCode.NON_GENERATIVE_CONSTRUCTOR, node.returnType, [superUnnamedConstructor]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.NON_GENERATIVE_CONSTRUCTOR, node.returnType, [superUnnamedConstructor]); |
return true; |
} |
if (!superUnnamedConstructor.isDefaultConstructor) { |
@@ -21031,11 +21033,11 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
offset = returnType.offset; |
length = (name != null ? name.end : returnType.end) - offset; |
} |
- _errorReporter.reportError4(CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_EXPLICIT, offset, length, [superType.displayName]); |
+ _errorReporter.reportErrorForOffset(CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_EXPLICIT, offset, length, [superType.displayName]); |
} |
return false; |
} |
- _errorReporter.reportError2(CompileTimeErrorCode.UNDEFINED_CONSTRUCTOR_IN_INITIALIZER_DEFAULT, node.returnType, [superElement.name]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.UNDEFINED_CONSTRUCTOR_IN_INITIALIZER_DEFAULT, node.returnType, [superElement.name]); |
return true; |
} |
@@ -21062,7 +21064,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (identical(enclosingElement, _enclosingClass)) { |
return false; |
} |
- _errorReporter.reportError2(StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER, name, [name.name]); |
+ _errorReporter.reportErrorForNode(StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER, name, [name.name]); |
return true; |
} |
@@ -21071,7 +21073,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
if (element is FieldFormalParameterElement) { |
FieldElement fieldElement = element.field; |
if (fieldElement == null || fieldElement.isSynthetic) { |
- _errorReporter.reportError2(CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_NON_EXISTANT_FIELD, node, [node.identifier.name]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_NON_EXISTANT_FIELD, node, [node.identifier.name]); |
} else { |
ParameterElement parameterElement = node.element; |
if (parameterElement is FieldFormalParameterElementImpl) { |
@@ -21079,17 +21081,17 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
Type2 declaredType = fieldFormal.type; |
Type2 fieldType = fieldElement.type; |
if (fieldElement.isSynthetic) { |
- _errorReporter.reportError2(CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_NON_EXISTANT_FIELD, node, [node.identifier.name]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_NON_EXISTANT_FIELD, node, [node.identifier.name]); |
} else if (fieldElement.isStatic) { |
- _errorReporter.reportError2(CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_STATIC_FIELD, node, [node.identifier.name]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_STATIC_FIELD, node, [node.identifier.name]); |
} else if (declaredType != null && fieldType != null && !declaredType.isAssignableTo(fieldType)) { |
- _errorReporter.reportError2(StaticWarningCode.FIELD_INITIALIZING_FORMAL_NOT_ASSIGNABLE, node, [declaredType.displayName, fieldType.displayName]); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.FIELD_INITIALIZING_FORMAL_NOT_ASSIGNABLE, node, [declaredType.displayName, fieldType.displayName]); |
} |
} else { |
if (fieldElement.isSynthetic) { |
- _errorReporter.reportError2(CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_NON_EXISTANT_FIELD, node, [node.identifier.name]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_NON_EXISTANT_FIELD, node, [node.identifier.name]); |
} else if (fieldElement.isStatic) { |
- _errorReporter.reportError2(CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_STATIC_FIELD, node, [node.identifier.name]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_STATIC_FIELD, node, [node.identifier.name]); |
} |
} |
} |
@@ -21129,12 +21131,12 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
expected = 0; |
} |
if (expected != -1 && numParameters != expected) { |
- _errorReporter.reportError2(CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_OPERATOR, nameNode, [name, expected, numParameters]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_OPERATOR, nameNode, [name, expected, numParameters]); |
return true; |
} |
// check for operator "-" |
if ("-" == name && numParameters > 1) { |
- _errorReporter.reportError2(CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_OPERATOR_MINUS, nameNode, [numParameters]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_OPERATOR_MINUS, nameNode, [numParameters]); |
return true; |
} |
// OK |
@@ -21160,7 +21162,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
NodeList<FormalParameter> parameters = parameterList.parameters; |
if (parameters.length != 1 || parameters[0].kind != ParameterKind.REQUIRED) { |
- _errorReporter.reportError2(CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_SETTER, setterName, []); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_SETTER, setterName, []); |
return true; |
} |
return false; |
@@ -21186,7 +21188,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
ExecutableElement callMethod = _inheritanceManager.lookupMember(classElement, "call"); |
if (callMethod == null || callMethod is! MethodElement || (callMethod as MethodElement).isAbstract) { |
- _errorReporter.reportError2(StaticWarningCode.FUNCTION_WITHOUT_CALL, node.name, []); |
+ _errorReporter.reportErrorForNode(StaticWarningCode.FUNCTION_WITHOUT_CALL, node.name, []); |
return true; |
} |
return false; |
@@ -21215,7 +21217,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
for (TypeName interfaceNode in implementsClause.interfaces) { |
if (interfaceNode.type == superType) { |
hasProblem = true; |
- _errorReporter.reportError2(CompileTimeErrorCode.IMPLEMENTS_SUPER_CLASS, interfaceNode, [superType.displayName]); |
+ _errorReporter.reportErrorForNode(CompileTimeErrorCode.IMPLEMENTS_SUPER_CLASS, interfaceNode, [superType.displayName]); |
} |
} |
// done |
@@ -21365,7 +21367,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
*/ |
bool implementsEqualsWhenNotAllowed(Type2 type) { |
// ignore int or String |
- if (type == null || type == _typeProvider.intType || type == _typeProvider.stringType) { |
+ if (type == null || type == _intType || type == _typeProvider.stringType) { |
return false; |
} |
// prepare ClassElement |
@@ -21396,18 +21398,6 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
} |
/** |
- * @return `true` if the given [AstNode] is the part of constant constructor |
- * invocation. |
- */ |
- bool isInConstConstructorInvocation(AstNode node) { |
- InstanceCreationExpression creation = node.getAncestor((node) => node is InstanceCreationExpression); |
- if (creation == null) { |
- return false; |
- } |
- return creation.isConst; |
- } |
- |
- /** |
* Return `true` iff the passed [ClassElement] has a method, getter or setter that |
* matches the name of the passed [ExecutableElement] in either the class itself, or one of |
* its' mixins. |
@@ -21540,13 +21530,13 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> { |
builder.append(separator); |
} |
builder.append(classElt.displayName); |
- _errorReporter.reportError4(CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE, _enclosingClass.nameOffset, enclosingClassName.length, [enclosingClassName, builder.toString()]); |
+ _errorReporter.reportErrorForOffset(CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE, _enclosingClass.nameOffset, enclosingClassName.length, [enclosingClassName, builder.toString()]); |
return true; |
} else { |
// RECURSIVE_INTERFACE_INHERITANCE_BASE_CASE_IMPLEMENTS or RECURSIVE_INTERFACE_INHERITANCE_BASE_CASE_EXTENDS |
InterfaceType supertype = classElt.supertype; |
ErrorCode errorCode = (supertype != null && _enclosingClass == supertype.element ? CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE_BASE_CASE_EXTENDS : CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE_BASE_CASE_IMPLEMENTS); |
- _errorReporter.reportError4(errorCode, _enclosingClass.nameOffset, enclosingClassName.length, [enclosingClassName]); |
+ _errorReporter.reportErrorForOffset(errorCode, _enclosingClass.nameOffset, enclosingClassName.length, [enclosingClassName]); |
return true; |
} |
} |