Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Unified Diff: packages/analyzer/lib/src/generated/error_verifier.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « packages/analyzer/lib/src/generated/error.dart ('k') | packages/analyzer/lib/src/generated/html.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: packages/analyzer/lib/src/generated/error_verifier.dart
diff --git a/analyzer/lib/src/generated/error_verifier.dart b/packages/analyzer/lib/src/generated/error_verifier.dart
similarity index 94%
rename from analyzer/lib/src/generated/error_verifier.dart
rename to packages/analyzer/lib/src/generated/error_verifier.dart
index e80e02abdd0c8528ad1717884a64134c084879e3..7c8516e7343bf4a9f0e7f08177a8ee1baaa3c655 100644
--- a/analyzer/lib/src/generated/error_verifier.dart
+++ b/packages/analyzer/lib/src/generated/error_verifier.dart
@@ -70,6 +70,11 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
final TypeProvider _typeProvider;
/**
+ * The type system primitives
+ */
+ TypeSystem _typeSystem;
+
+ /**
* The manager for the inheritance mappings.
*/
final InheritanceManager _inheritanceManager;
@@ -255,10 +260,16 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
List<InterfaceType> _DISALLOWED_TYPES_TO_EXTEND_OR_IMPLEMENT;
/**
+ * If `true`, mixins are allowed to inherit from types other than Object, and
+ * are allowed to reference `super`.
+ */
+ final bool enableSuperMixins;
+
+ /**
* Initialize a newly created error verifier.
*/
ErrorVerifier(this._errorReporter, this._currentLibrary, this._typeProvider,
- this._inheritanceManager) {
+ this._inheritanceManager, this.enableSuperMixins) {
this._isInSystemLibrary = _currentLibrary.source.isInSystemLibrary;
this._hasExtUri = _currentLibrary.hasExtUri;
_isEnclosingConstructorConst = false;
@@ -271,6 +282,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
_boolType = _typeProvider.boolType;
_intType = _typeProvider.intType;
_DISALLOWED_TYPES_TO_EXTEND_OR_IMPLEMENT = _typeProvider.nonSubtypableTypes;
+ _typeSystem = _currentLibrary.context.typeSystem;
}
@override
@@ -578,6 +590,18 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
}
@override
+ Object visitEnumDeclaration(EnumDeclaration node) {
+ ClassElement outerClass = _enclosingClass;
+ try {
+ _isInNativeClass = false;
+ _enclosingClass = node.element;
+ return super.visitEnumDeclaration(node);
+ } finally {
+ _enclosingClass = outerClass;
+ }
+ }
+
+ @override
Object visitExportDirective(ExportDirective node) {
ExportElement exportElement = node.element;
if (exportElement != null) {
@@ -859,9 +883,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
Expression target = node.realTarget;
SimpleIdentifier methodName = node.methodName;
if (target != null) {
- bool isConditional = node.operator.type == sc.TokenType.QUESTION_PERIOD;
- ClassElement typeReference =
- ElementResolver.getTypeReference(target, isConditional);
+ ClassElement typeReference = ElementResolver.getTypeReference(target);
_checkForStaticAccessToInstanceMember(typeReference, methodName);
_checkForInstanceAccessToStaticMember(typeReference, methodName);
} else {
@@ -898,7 +920,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
Object visitPrefixedIdentifier(PrefixedIdentifier node) {
if (node.parent is! Annotation) {
ClassElement typeReference =
- ElementResolver.getTypeReference(node.prefix, false);
+ ElementResolver.getTypeReference(node.prefix);
SimpleIdentifier name = node.identifier;
_checkForStaticAccessToInstanceMember(typeReference, name);
_checkForInstanceAccessToStaticMember(typeReference, name);
@@ -921,9 +943,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
@override
Object visitPropertyAccess(PropertyAccess node) {
- bool isConditional = node.operator.type == sc.TokenType.QUESTION_PERIOD;
ClassElement typeReference =
- ElementResolver.getTypeReference(node.realTarget, isConditional);
+ ElementResolver.getTypeReference(node.realTarget);
SimpleIdentifier propertyName = node.propertyName;
_checkForStaticAccessToInstanceMember(typeReference, propertyName);
_checkForInstanceAccessToStaticMember(typeReference, propertyName);
@@ -1109,7 +1130,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
}
// report problem
_errorReporter.reportErrorForNode(
- StaticTypeWarningCode.EXPECTED_TWO_MAP_TYPE_ARGUMENTS, typeArguments,
+ StaticTypeWarningCode.EXPECTED_TWO_MAP_TYPE_ARGUMENTS,
+ typeArguments,
[num]);
return true;
}
@@ -1155,14 +1177,16 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (fieldElement.isFinal || fieldElement.isConst) {
_errorReporter.reportErrorForNode(
StaticWarningCode.FINAL_INITIALIZED_IN_DECLARATION_AND_CONSTRUCTOR,
- formalParameter.identifier, [fieldElement.displayName]);
+ formalParameter.identifier,
+ [fieldElement.displayName]);
foundError = true;
}
} else if (state == INIT_STATE.INIT_IN_FIELD_FORMAL) {
if (fieldElement.isFinal || fieldElement.isConst) {
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.FINAL_INITIALIZED_MULTIPLE_TIMES,
- formalParameter.identifier, [fieldElement.displayName]);
+ formalParameter.identifier,
+ [fieldElement.displayName]);
foundError = true;
}
}
@@ -1199,7 +1223,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
} else if (state == INIT_STATE.INIT_IN_INITIALIZERS) {
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.FIELD_INITIALIZED_BY_MULTIPLE_INITIALIZERS,
- fieldName, [fieldElement.displayName]);
+ fieldName,
+ [fieldElement.displayName]);
foundError = true;
}
}
@@ -1221,7 +1246,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (fieldElement.isConst) {
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.CONST_NOT_INITIALIZED,
- constructor.returnType, [fieldElement.name]);
+ constructor.returnType,
+ [fieldElement.name]);
foundError = true;
}
}
@@ -1232,14 +1258,13 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (notInitFinalFields.length == 1) {
analysisError = _errorReporter.newErrorWithProperties(
StaticWarningCode.FINAL_NOT_INITIALIZED_CONSTRUCTOR_1,
- constructor.returnType, [notInitFinalFields[0].name]);
+ constructor.returnType,
+ [notInitFinalFields[0].name]);
} else if (notInitFinalFields.length == 2) {
analysisError = _errorReporter.newErrorWithProperties(
StaticWarningCode.FINAL_NOT_INITIALIZED_CONSTRUCTOR_2,
- constructor.returnType, [
- notInitFinalFields[0].name,
- notInitFinalFields[1].name
- ]);
+ constructor.returnType,
+ [notInitFinalFields[0].name, notInitFinalFields[1].name]);
} else {
analysisError = _errorReporter.newErrorWithProperties(
StaticWarningCode.FINAL_NOT_INITIALIZED_CONSTRUCTOR_3_PLUS,
@@ -1276,8 +1301,10 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
*/
bool _checkForAllInvalidOverrideErrorCodes(
ExecutableElement executableElement,
- ExecutableElement overriddenExecutable, List<ParameterElement> parameters,
- List<AstNode> parameterLocations, SimpleIdentifier errorNameTarget) {
+ ExecutableElement overriddenExecutable,
+ List<ParameterElement> parameters,
+ List<AstNode> parameterLocations,
+ SimpleIdentifier errorNameTarget) {
bool isGetter = false;
bool isSetter = false;
if (executableElement is PropertyAccessorElement) {
@@ -1338,11 +1365,14 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
}
// SWC.INVALID_METHOD_OVERRIDE_RETURN_TYPE
if (overriddenFTReturnType != VoidTypeImpl.instance &&
- !overridingFTReturnType.isAssignableTo(overriddenFTReturnType)) {
- _errorReporter.reportTypeErrorForNode(!isGetter
+ !_typeSystem.isAssignableTo(
+ overridingFTReturnType, overriddenFTReturnType)) {
+ _errorReporter.reportTypeErrorForNode(
+ !isGetter
? StaticWarningCode.INVALID_METHOD_OVERRIDE_RETURN_TYPE
: StaticWarningCode.INVALID_GETTER_OVERRIDE_RETURN_TYPE,
- errorNameTarget, [
+ errorNameTarget,
+ [
overridingFTReturnType,
overriddenFTReturnType,
overriddenExecutable.enclosingElement.displayName
@@ -1355,11 +1385,14 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
}
int parameterIndex = 0;
for (int i = 0; i < overridingNormalPT.length; i++) {
- if (!overridingNormalPT[i].isAssignableTo(overriddenNormalPT[i])) {
- _errorReporter.reportTypeErrorForNode(!isSetter
+ if (!_typeSystem.isAssignableTo(
+ overridingNormalPT[i], overriddenNormalPT[i])) {
+ _errorReporter.reportTypeErrorForNode(
+ !isSetter
? StaticWarningCode.INVALID_METHOD_OVERRIDE_NORMAL_PARAM_TYPE
: StaticWarningCode.INVALID_SETTER_OVERRIDE_NORMAL_PARAM_TYPE,
- parameterLocations[parameterIndex], [
+ parameterLocations[parameterIndex],
+ [
overridingNormalPT[i],
overriddenNormalPT[i],
overriddenExecutable.enclosingElement.displayName
@@ -1370,8 +1403,8 @@ 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])) {
+ if (!_typeSystem.isAssignableTo(
+ overridingPositionalPT[i], overriddenPositionalPT[i])) {
_errorReporter.reportTypeErrorForNode(
StaticWarningCode.INVALID_METHOD_OVERRIDE_OPTIONAL_PARAM_TYPE,
parameterLocations[parameterIndex], [
@@ -1393,7 +1426,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
continue;
}
DartType overriddenType = overriddenNamedPT[overriddenName];
- if (!overriddenType.isAssignableTo(overridingType)) {
+ if (!_typeSystem.isAssignableTo(overriddenType, overridingType)) {
// lookup the parameter for the error to select
ParameterElement parameterToSelect = null;
AstNode parameterLocationToSelect = null;
@@ -1539,8 +1572,10 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
* to report problems on.
*/
bool _checkForAllInvalidOverrideErrorCodesForExecutable(
- ExecutableElement executableElement, List<ParameterElement> parameters,
- List<AstNode> parameterLocations, SimpleIdentifier errorNameTarget) {
+ ExecutableElement executableElement,
+ List<ParameterElement> parameters,
+ List<AstNode> parameterLocations,
+ SimpleIdentifier errorNameTarget) {
//
// Compute the overridden executable from the InheritanceManager
//
@@ -1653,7 +1688,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (_checkForMixinDeclaresConstructor(mixinName, mixinElement)) {
problemReported = true;
}
- if (_checkForMixinInheritsNotFromObject(mixinName, mixinElement)) {
+ if (!enableSuperMixins &&
+ _checkForMixinInheritsNotFromObject(mixinName, mixinElement)) {
problemReported = true;
}
if (_checkForMixinReferencesSuper(mixinName, mixinElement)) {
@@ -1704,10 +1740,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
ErrorCode errorCode = (declaration.constKeyword != null
? CompileTimeErrorCode.REDIRECT_TO_MISSING_CONSTRUCTOR
: StaticWarningCode.REDIRECT_TO_MISSING_CONSTRUCTOR);
- _errorReporter.reportErrorForNode(errorCode, redirectedConstructor, [
- constructorStrName,
- redirectedType.displayName
- ]);
+ _errorReporter.reportErrorForNode(errorCode, redirectedConstructor,
+ [constructorStrName, redirectedType.displayName]);
return true;
}
return false;
@@ -1719,19 +1753,22 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
//
FunctionType constructorType = declaration.element.type;
DartType constructorReturnType = constructorType.returnType;
- if (!redirectedReturnType.isAssignableTo(constructorReturnType)) {
+ if (!_typeSystem.isAssignableTo(
+ redirectedReturnType, constructorReturnType)) {
_errorReporter.reportErrorForNode(
StaticWarningCode.REDIRECT_TO_INVALID_RETURN_TYPE,
- redirectedConstructor, [redirectedReturnType, constructorReturnType]);
+ redirectedConstructor,
+ [redirectedReturnType, constructorReturnType]);
return true;
}
//
// Check parameters
//
- if (!redirectedType.isSubtypeOf(constructorType)) {
+ if (!_typeSystem.isSubtypeOf(redirectedType, constructorType)) {
_errorReporter.reportErrorForNode(
StaticWarningCode.REDIRECT_TO_INVALID_FUNCTION_TYPE,
- redirectedConstructor, [redirectedType, constructorType]);
+ redirectedConstructor,
+ [redirectedType, constructorType]);
return true;
}
return false;
@@ -1774,8 +1811,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
// RETURN_WITHOUT_VALUE
if (returnExpression == null) {
if (_inGenerator ||
- _computeReturnTypeForMethod(null)
- .isAssignableTo(expectedReturnType)) {
+ _typeSystem.isAssignableTo(
+ _computeReturnTypeForMethod(null), expectedReturnType)) {
return false;
}
_hasReturnWithoutValue = true;
@@ -1813,8 +1850,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
Element element = definedNames[name];
Element prevElement = _exportedElements[name];
if (element != null && prevElement != null && prevElement != element) {
- _errorReporter.reportErrorForNode(CompileTimeErrorCode.AMBIGUOUS_EXPORT,
- directive, [
+ _errorReporter.reportErrorForNode(
+ CompileTimeErrorCode.AMBIGUOUS_EXPORT, directive, [
name,
prevElement.library.definingCompilationUnit.displayName,
element.library.definingCompilationUnit.displayName
@@ -1844,14 +1881,16 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
* [StaticWarningCode.MAP_KEY_TYPE_NOT_ASSIGNABLE], and
* [StaticWarningCode.MAP_VALUE_TYPE_NOT_ASSIGNABLE].
*/
- bool _checkForArgumentTypeNotAssignable(Expression expression,
- DartType expectedStaticType, DartType actualStaticType,
+ bool _checkForArgumentTypeNotAssignable(
+ Expression expression,
+ DartType expectedStaticType,
+ DartType actualStaticType,
ErrorCode errorCode) {
//
// Warning case: test static type information
//
if (actualStaticType != null && expectedStaticType != null) {
- if (!actualStaticType.isAssignableTo(expectedStaticType)) {
+ if (!_typeSystem.isAssignableTo(actualStaticType, expectedStaticType)) {
_errorReporter.reportTypeErrorForNode(
errorCode, expression, [actualStaticType, expectedStaticType]);
return true;
@@ -1896,8 +1935,10 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
* [StaticWarningCode.MAP_VALUE_TYPE_NOT_ASSIGNABLE].
*/
bool _checkForArgumentTypeNotAssignableWithExpectedTypes(
- Expression expression, DartType expectedStaticType,
- ErrorCode errorCode) => _checkForArgumentTypeNotAssignable(
+ Expression expression,
+ DartType expectedStaticType,
+ ErrorCode errorCode) =>
+ _checkForArgumentTypeNotAssignable(
expression, expectedStaticType, getStaticType(expression), errorCode);
/**
@@ -1938,7 +1979,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (expressionType == null) {
return false;
}
- if (expressionType.isAssignableTo(type)) {
+ if (_typeSystem.isAssignableTo(expressionType, type)) {
return false;
}
_errorReporter.reportErrorForNode(errorCode, expression, arguments);
@@ -1982,7 +2023,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
element.setter == null &&
element.isSynthetic) {
_errorReporter.reportErrorForNode(
- StaticWarningCode.ASSIGNMENT_TO_FINAL_NO_SETTER, highlightedNode,
+ StaticWarningCode.ASSIGNMENT_TO_FINAL_NO_SETTER,
+ highlightedNode,
[element.name, element.enclosingElement.displayName]);
return true;
}
@@ -2117,10 +2159,9 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
}
if (overriddenMember == null) {
_errorReporter.reportErrorForNode(
- StaticWarningCode.CONCRETE_CLASS_WITH_ABSTRACT_MEMBER, nameNode, [
- memberName,
- _enclosingClass.displayName
- ]);
+ StaticWarningCode.CONCRETE_CLASS_WITH_ABSTRACT_MEMBER,
+ nameNode,
+ [memberName, _enclosingClass.displayName]);
return true;
}
}
@@ -2155,7 +2196,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
CompileTimeErrorCode.DUPLICATE_CONSTRUCTOR_DEFAULT, constructor);
} else {
_errorReporter.reportErrorForNode(
- CompileTimeErrorCode.DUPLICATE_CONSTRUCTOR_NAME, constructor,
+ CompileTimeErrorCode.DUPLICATE_CONSTRUCTOR_NAME,
+ constructor,
[name]);
}
return true;
@@ -2170,7 +2212,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (field != null) {
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.CONFLICTING_CONSTRUCTOR_NAME_AND_FIELD,
- constructor, [name]);
+ constructor,
+ [name]);
return true;
}
// methods
@@ -2178,7 +2221,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (method != null) {
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.CONFLICTING_CONSTRUCTOR_NAME_AND_METHOD,
- constructor, [name]);
+ constructor,
+ [name]);
return true;
}
}
@@ -2208,9 +2252,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
}
// report problem
hasProblem = true;
- _errorReporter.reportErrorForOffset(
- CompileTimeErrorCode.CONFLICTING_GETTER_AND_METHOD, method.nameOffset,
- name.length, [
+ _errorReporter.reportErrorForElement(
+ CompileTimeErrorCode.CONFLICTING_GETTER_AND_METHOD, method, [
_enclosingClass.displayName,
inherited.enclosingElement.displayName,
name
@@ -2230,9 +2273,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
}
// report problem
hasProblem = true;
- _errorReporter.reportErrorForOffset(
- CompileTimeErrorCode.CONFLICTING_METHOD_AND_GETTER,
- accessor.nameOffset, name.length, [
+ _errorReporter.reportErrorForElement(
+ CompileTimeErrorCode.CONFLICTING_METHOD_AND_GETTER, accessor, [
_enclosingClass.displayName,
inherited.enclosingElement.displayName,
name
@@ -2298,11 +2340,13 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (getter) {
_errorReporter.reportErrorForElement(
StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER,
- accessor, [superElementType.displayName]);
+ accessor,
+ [superElementType.displayName]);
} else {
_errorReporter.reportErrorForElement(
StaticWarningCode.CONFLICTING_INSTANCE_SETTER_AND_SUPERCLASS_MEMBER,
- accessor, [superElementType.displayName]);
+ accessor,
+ [superElementType.displayName]);
}
}
// done
@@ -2384,10 +2428,9 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
!conflictingMethod.isGetter) {
// report problem
_errorReporter.reportErrorForNode(
- StaticWarningCode.CONFLICTING_INSTANCE_METHOD_SETTER2, name, [
- _enclosingClass.displayName,
- name.name
- ]);
+ StaticWarningCode.CONFLICTING_INSTANCE_METHOD_SETTER2,
+ name,
+ [_enclosingClass.displayName, name.name]);
foundError = true;
addThisMemberToTheMap = false;
}
@@ -2443,7 +2486,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
// report problem
_errorReporter.reportErrorForNode(
StaticWarningCode.CONFLICTING_STATIC_GETTER_AND_INSTANCE_SETTER,
- nameNode, [setterType.displayName]);
+ nameNode,
+ [setterType.displayName]);
return true;
}
@@ -2491,7 +2535,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
// report problem
_errorReporter.reportErrorForNode(
StaticWarningCode.CONFLICTING_STATIC_SETTER_AND_INSTANCE_MEMBER,
- nameNode, [memberType.displayName]);
+ nameNode,
+ [memberType.displayName]);
return true;
}
@@ -2509,18 +2554,20 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
String name = typeParameter.name;
// name is same as the name of the enclosing class
if (_enclosingClass.name == name) {
- _errorReporter.reportErrorForOffset(
+ _errorReporter.reportErrorForElement(
CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_CLASS,
- typeParameter.nameOffset, name.length, [name]);
+ typeParameter,
+ [name]);
problemReported = true;
}
// check members
if (_enclosingClass.getMethod(name) != null ||
_enclosingClass.getGetter(name) != null ||
_enclosingClass.getSetter(name) != null) {
- _errorReporter.reportErrorForOffset(
+ _errorReporter.reportErrorForElement(
CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_MEMBER,
- typeParameter.nameOffset, name.length, [name]);
+ typeParameter,
+ [name]);
problemReported = true;
}
}
@@ -2559,7 +2606,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
}
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_CONST_SUPER,
- superInvocation, [element.enclosingElement.displayName]);
+ superInvocation,
+ [element.enclosingElement.displayName]);
return true;
}
}
@@ -2582,7 +2630,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
// default constructor is not 'const', report problem
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_CONST_SUPER,
- constructor.returnType, [supertype.displayName]);
+ constructor.returnType,
+ [supertype.displayName]);
return true;
}
@@ -2623,7 +2672,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
ConstructorName constructorName, TypeName typeName) {
if (typeName.isDeferred) {
_errorReporter.reportErrorForNode(
- CompileTimeErrorCode.CONST_DEFERRED_CLASS, constructorName,
+ CompileTimeErrorCode.CONST_DEFERRED_CLASS,
+ constructorName,
[typeName.name.name]);
return true;
}
@@ -2670,7 +2720,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
* [StaticWarningCode.NEW_WITH_ABSTRACT_CLASS].
*/
bool _checkForConstOrNewWithAbstractClass(
- InstanceCreationExpression expression, TypeName typeName,
+ InstanceCreationExpression expression,
+ TypeName typeName,
InterfaceType type) {
if (type.element.isAbstract) {
ConstructorElement element = expression.staticElement;
@@ -2774,7 +2825,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
* [CompileTimeErrorCode.CONST_WITH_UNDEFINED_CONSTRUCTOR_DEFAULT].
*/
bool _checkForConstWithUndefinedConstructor(
- InstanceCreationExpression expression, ConstructorName constructorName,
+ InstanceCreationExpression expression,
+ ConstructorName constructorName,
TypeName typeName) {
// OK if resolved
if (expression.staticElement != null) {
@@ -2793,14 +2845,14 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
SimpleIdentifier name = constructorName.name;
if (name != null) {
_errorReporter.reportErrorForNode(
- CompileTimeErrorCode.CONST_WITH_UNDEFINED_CONSTRUCTOR, name, [
- className,
- name
- ]);
+ CompileTimeErrorCode.CONST_WITH_UNDEFINED_CONSTRUCTOR,
+ name,
+ [className, name]);
} else {
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.CONST_WITH_UNDEFINED_CONSTRUCTOR_DEFAULT,
- constructorName, [className]);
+ constructorName,
+ [className]);
}
return true;
}
@@ -2949,9 +3001,10 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
displayName = enclosingElement.getExtendedDisplayName(null);
}
// report problem
- _errorReporter.reportErrorForOffset(
+ _errorReporter.reportErrorForElement(
CompileTimeErrorCode.DUPLICATE_DEFINITION_INHERITANCE,
- staticMember.nameOffset, name.length, [name, displayName]);
+ staticMember,
+ [name, displayName]);
return true;
}
@@ -2970,7 +3023,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
}
// report problem
_errorReporter.reportErrorForNode(
- StaticTypeWarningCode.EXPECTED_ONE_LIST_TYPE_ARGUMENTS, typeArguments,
+ StaticTypeWarningCode.EXPECTED_ONE_LIST_TYPE_ARGUMENTS,
+ typeArguments,
[num]);
return true;
}
@@ -2994,13 +3048,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
LibraryElement prevLibrary = _nameToExportElement[name];
if (prevLibrary != null) {
if (prevLibrary != exportedLibrary) {
- if (name.isEmpty) {
- _errorReporter.reportErrorForNode(
- StaticWarningCode.EXPORT_DUPLICATED_LIBRARY_UNNAMED, directive, [
- prevLibrary.definingCompilationUnit.displayName,
- exportedLibrary.definingCompilationUnit.displayName
- ]);
- } else {
+ if (!name.isEmpty) {
_errorReporter.reportErrorForNode(
StaticWarningCode.EXPORT_DUPLICATED_LIBRARY_NAMED, directive, [
prevLibrary.definingCompilationUnit.displayName,
@@ -3042,7 +3090,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
}
// report problem
_errorReporter.reportErrorForNode(
- CompileTimeErrorCode.EXPORT_INTERNAL_LIBRARY, directive,
+ CompileTimeErrorCode.EXPORT_INTERNAL_LIBRARY,
+ directive,
[directive.uri]);
return true;
}
@@ -3143,6 +3192,11 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (typeName.isSynthetic) {
return false;
}
+ // The SDK implementation may implement disallowed types. For example,
+ // JSNumber in dart2js and _Smi in Dart VM both implement int.
+ if (_currentLibrary.source.isInSystemLibrary) {
+ return false;
+ }
DartType superType = typeName.type;
for (InterfaceType disallowedType
in _DISALLOWED_TYPES_TO_EXTEND_OR_IMPLEMENT) {
@@ -3202,7 +3256,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (staticType == null) {
return false;
}
- if (staticType.isAssignableTo(fieldType)) {
+ if (_typeSystem.isAssignableTo(staticType, fieldType)) {
return false;
}
// report problem
@@ -3211,13 +3265,13 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
// constant, not the static type. See dartbug.com/21119.
_errorReporter.reportTypeErrorForNode(
CheckedModeCompileTimeErrorCode.CONST_FIELD_INITIALIZER_NOT_ASSIGNABLE,
- expression, [staticType, fieldType]);
+ expression,
+ [staticType, fieldType]);
}
_errorReporter.reportTypeErrorForNode(
- StaticWarningCode.FIELD_INITIALIZER_NOT_ASSIGNABLE, expression, [
- staticType,
- fieldType
- ]);
+ StaticWarningCode.FIELD_INITIALIZER_NOT_ASSIGNABLE,
+ expression,
+ [staticType, fieldType]);
return true;
// TODO(brianwilkerson) Define a hint corresponding to these errors and
// report it if appropriate.
@@ -3297,11 +3351,13 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (variable.initializer == null) {
if (list.isConst) {
_errorReporter.reportErrorForNode(
- CompileTimeErrorCode.CONST_NOT_INITIALIZED, variable.name,
+ CompileTimeErrorCode.CONST_NOT_INITIALIZED,
+ variable.name,
[variable.name.name]);
} else if (list.isFinal) {
_errorReporter.reportErrorForNode(
- StaticWarningCode.FINAL_NOT_INITIALIZED, variable.name,
+ StaticWarningCode.FINAL_NOT_INITIALIZED,
+ variable.name,
[variable.name.name]);
}
foundError = true;
@@ -3350,22 +3406,22 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
}
if (_enclosingFunction.isAsynchronous) {
if (_enclosingFunction.isGenerator) {
- if (!_enclosingFunction.returnType
- .isAssignableTo(_typeProvider.streamDynamicType)) {
+ if (!_typeSystem.isAssignableTo(
+ _enclosingFunction.returnType, _typeProvider.streamDynamicType)) {
_errorReporter.reportErrorForNode(
StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE,
returnType);
}
} else {
- if (!_enclosingFunction.returnType
- .isAssignableTo(_typeProvider.futureDynamicType)) {
+ if (!_typeSystem.isAssignableTo(
+ _enclosingFunction.returnType, _typeProvider.futureDynamicType)) {
_errorReporter.reportErrorForNode(
StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE, returnType);
}
}
} else if (_enclosingFunction.isGenerator) {
- if (!_enclosingFunction.returnType
- .isAssignableTo(_typeProvider.iterableDynamicType)) {
+ if (!_typeSystem.isAssignableTo(
+ _enclosingFunction.returnType, _typeProvider.iterableDynamicType)) {
_errorReporter.reportErrorForNode(
StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE,
returnType);
@@ -3507,13 +3563,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
LibraryElement prevLibrary = _nameToImportElement[name];
if (prevLibrary != null) {
if (prevLibrary != nodeLibrary) {
- if (name.isEmpty) {
- _errorReporter.reportErrorForNode(
- StaticWarningCode.IMPORT_DUPLICATED_LIBRARY_UNNAMED, directive, [
- prevLibrary.definingCompilationUnit.displayName,
- nodeLibrary.definingCompilationUnit.displayName
- ]);
- } else {
+ if (!name.isEmpty) {
_errorReporter.reportErrorForNode(
StaticWarningCode.IMPORT_DUPLICATED_LIBRARY_NAMED, directive, [
prevLibrary.definingCompilationUnit.displayName,
@@ -3555,7 +3605,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
}
// report problem
_errorReporter.reportErrorForNode(
- CompileTimeErrorCode.IMPORT_INTERNAL_LIBRARY, directive,
+ CompileTimeErrorCode.IMPORT_INTERNAL_LIBRARY,
+ directive,
[directive.uri]);
return true;
}
@@ -3614,7 +3665,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
}
// report problem
_errorReporter.reportErrorForNode(
- StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER, name,
+ StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER,
+ name,
[name.name]);
return true;
}
@@ -3655,10 +3707,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (fieldElt.isStatic) {
_errorReporter.reportErrorForNode(
StaticWarningCode.INSTANCE_METHOD_NAME_COLLIDES_WITH_SUPERCLASS_STATIC,
- errorNameTarget, [
- executableElementName,
- fieldElt.enclosingElement.displayName
- ]);
+ errorNameTarget,
+ [executableElementName, fieldElt.enclosingElement.displayName]);
return true;
}
}
@@ -3744,12 +3794,11 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
? getStaticType(lhs)
: leftVariableElement.type;
DartType staticRightType = getStaticType(rhs);
- if (!staticRightType.isAssignableTo(leftType)) {
+ if (!_typeSystem.isAssignableTo(staticRightType, leftType)) {
_errorReporter.reportTypeErrorForNode(
- StaticTypeWarningCode.INVALID_ASSIGNMENT, rhs, [
- staticRightType,
- leftType
- ]);
+ StaticTypeWarningCode.INVALID_ASSIGNMENT,
+ rhs,
+ [staticRightType, leftType]);
return true;
}
return false;
@@ -3779,7 +3828,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (leftType == null || rightType == null) {
return false;
}
- if (!rightType.isAssignableTo(leftType)) {
+ if (!_typeSystem.isAssignableTo(rightType, leftType)) {
_errorReporter.reportTypeErrorForNode(
StaticTypeWarningCode.INVALID_ASSIGNMENT, rhs, [rightType, leftType]);
return true;
@@ -3800,15 +3849,18 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (fieldElement.isSynthetic) {
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.INITIALIZER_FOR_NON_EXISTENT_FIELD,
- initializer, [fieldName]);
+ initializer,
+ [fieldName]);
} else if (fieldElement.isStatic) {
_errorReporter.reportErrorForNode(
- CompileTimeErrorCode.INITIALIZER_FOR_STATIC_FIELD, initializer,
+ CompileTimeErrorCode.INITIALIZER_FOR_STATIC_FIELD,
+ initializer,
[fieldName]);
}
} else {
_errorReporter.reportErrorForNode(
- CompileTimeErrorCode.INITIALIZER_FOR_NON_EXISTENT_FIELD, initializer,
+ CompileTimeErrorCode.INITIALIZER_FOR_NON_EXISTENT_FIELD,
+ initializer,
[fieldName]);
return;
}
@@ -3880,13 +3932,15 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (literal.constKeyword != null) {
// TODO(paulberry): this error should be based on the actual type of the
// list element, not the static type. See dartbug.com/21119.
- if (_checkForArgumentTypeNotAssignableWithExpectedTypes(element,
+ if (_checkForArgumentTypeNotAssignableWithExpectedTypes(
+ element,
listElementType,
CheckedModeCompileTimeErrorCode.LIST_ELEMENT_TYPE_NOT_ASSIGNABLE)) {
hasProblems = true;
}
}
- if (_checkForArgumentTypeNotAssignableWithExpectedTypes(element,
+ if (_checkForArgumentTypeNotAssignableWithExpectedTypes(
+ element,
listElementType,
StaticWarningCode.LIST_ELEMENT_TYPE_NOT_ASSIGNABLE)) {
hasProblems = true;
@@ -3927,7 +3981,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
CheckedModeCompileTimeErrorCode.MAP_KEY_TYPE_NOT_ASSIGNABLE)) {
hasProblems = true;
}
- if (_checkForArgumentTypeNotAssignableWithExpectedTypes(value,
+ if (_checkForArgumentTypeNotAssignableWithExpectedTypes(
+ value,
valueType,
CheckedModeCompileTimeErrorCode.MAP_VALUE_TYPE_NOT_ASSIGNABLE)) {
hasProblems = true;
@@ -3963,9 +4018,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
// check accessors
for (PropertyAccessorElement accessor in _enclosingClass.accessors) {
if (className == accessor.name) {
- _errorReporter.reportErrorForOffset(
- CompileTimeErrorCode.MEMBER_WITH_CLASS_NAME, accessor.nameOffset,
- className.length);
+ _errorReporter.reportErrorForElement(
+ CompileTimeErrorCode.MEMBER_WITH_CLASS_NAME, accessor);
problemReported = true;
}
}
@@ -4046,11 +4100,12 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
// (if the getter is null, it is dynamic which is assignable to everything).
if (setterType != null &&
getterType != null &&
- !getterType.isAssignableTo(setterType)) {
+ !_typeSystem.isAssignableTo(getterType, setterType)) {
if (enclosingClassForCounterpart == null) {
_errorReporter.reportTypeErrorForNode(
StaticWarningCode.MISMATCHED_GETTER_AND_SETTER_TYPES,
- accessorDeclaration, [accessorTextName, setterType, getterType]);
+ accessorDeclaration,
+ [accessorTextName, setterType, getterType]);
return true;
} else {
_errorReporter.reportTypeErrorForNode(
@@ -4113,8 +4168,12 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
return false;
}
for (int i = 0; i < nameCount; i++) {
- _errorReporter.reportErrorForNode(
- CompileTimeErrorCode.MISSING_ENUM_CONSTANT_IN_SWITCH, statement,
+ int offset = statement.offset;
+ int end = statement.rightParenthesis.end;
+ _errorReporter.reportErrorForOffset(
+ CompileTimeErrorCode.MISSING_ENUM_CONSTANT_IN_SWITCH,
+ offset,
+ end - offset,
[constantNames[i]]);
}
return true;
@@ -4158,7 +4217,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
for (ConstructorElement constructor in mixinElement.constructors) {
if (!constructor.isSynthetic && !constructor.isFactory) {
_errorReporter.reportErrorForNode(
- CompileTimeErrorCode.MIXIN_DECLARES_CONSTRUCTOR, mixinName,
+ CompileTimeErrorCode.MIXIN_DECLARES_CONSTRUCTOR,
+ mixinName,
[mixinElement.name]);
return true;
}
@@ -4192,7 +4252,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (!mixinSupertype.isObject ||
!mixinElement.isMixinApplication && mixinElement.mixins.length != 0) {
_errorReporter.reportErrorForNode(
- CompileTimeErrorCode.MIXIN_INHERITS_FROM_NOT_OBJECT, mixinName,
+ CompileTimeErrorCode.MIXIN_INHERITS_FROM_NOT_OBJECT,
+ mixinName,
[mixinElement.name]);
return true;
}
@@ -4209,9 +4270,10 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
*/
bool _checkForMixinReferencesSuper(
TypeName mixinName, ClassElement mixinElement) {
- if (mixinElement.hasReferenceToSuper) {
+ if (!enableSuperMixins && mixinElement.hasReferenceToSuper) {
_errorReporter.reportErrorForNode(
- CompileTimeErrorCode.MIXIN_REFERENCES_SUPER, mixinName,
+ CompileTimeErrorCode.MIXIN_REFERENCES_SUPER,
+ mixinName,
[mixinElement.name]);
}
return false;
@@ -4261,7 +4323,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
* See [StaticWarningCode.NEW_WITH_UNDEFINED_CONSTRUCTOR].
*/
bool _checkForNewWithUndefinedConstructor(
- InstanceCreationExpression expression, ConstructorName constructorName,
+ InstanceCreationExpression expression,
+ ConstructorName constructorName,
TypeName typeName) {
// OK if resolved
if (expression.staticElement != null) {
@@ -4281,14 +4344,14 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
SimpleIdentifier name = constructorName.name;
if (name != null) {
_errorReporter.reportErrorForNode(
- StaticWarningCode.NEW_WITH_UNDEFINED_CONSTRUCTOR, name, [
- className,
- name
- ]);
+ StaticWarningCode.NEW_WITH_UNDEFINED_CONSTRUCTOR,
+ name,
+ [className, name]);
} else {
_errorReporter.reportErrorForNode(
StaticWarningCode.NEW_WITH_UNDEFINED_CONSTRUCTOR_DEFAULT,
- constructorName, [className]);
+ constructorName,
+ [className]);
}
return true;
}
@@ -4324,7 +4387,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (superUnnamedConstructor != null) {
if (superUnnamedConstructor.isFactory) {
_errorReporter.reportErrorForNode(
- CompileTimeErrorCode.NON_GENERATIVE_CONSTRUCTOR, declaration.name,
+ CompileTimeErrorCode.NON_GENERATIVE_CONSTRUCTOR,
+ declaration.name,
[superUnnamedConstructor]);
return true;
}
@@ -4337,7 +4401,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
// report problem
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_IMPLICIT,
- declaration.name, [superType.displayName]);
+ declaration.name,
+ [superType.displayName]);
return true;
}
@@ -4433,7 +4498,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
FunctionType requiredMemberFT = _inheritanceManager
.substituteTypeArgumentsInMemberFromInheritance(
requiredMemberType, memberName, enclosingType);
- if (foundConcreteFT.isSubtypeOf(requiredMemberFT)) {
+ if (_typeSystem.isSubtypeOf(foundConcreteFT, requiredMemberFT)) {
continue;
}
}
@@ -4479,11 +4544,13 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (stringMembersArray.length == 1) {
analysisError = _errorReporter.newErrorWithProperties(
StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE,
- classNameNode, [stringMembersArray[0]]);
+ classNameNode,
+ [stringMembersArray[0]]);
} else if (stringMembersArray.length == 2) {
analysisError = _errorReporter.newErrorWithProperties(
StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_TWO,
- classNameNode, [stringMembersArray[0], stringMembersArray[1]]);
+ classNameNode,
+ [stringMembersArray[0], stringMembersArray[1]]);
} else if (stringMembersArray.length == 3) {
analysisError = _errorReporter.newErrorWithProperties(
StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_THREE,
@@ -4526,7 +4593,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
*/
bool _checkForNonBoolCondition(Expression condition) {
DartType conditionType = getStaticType(condition);
- if (conditionType != null && !conditionType.isAssignableTo(_boolType)) {
+ if (conditionType != null &&
+ !_typeSystem.isAssignableTo(conditionType, _boolType)) {
_errorReporter.reportErrorForNode(
StaticTypeWarningCode.NON_BOOL_CONDITION, condition);
return true;
@@ -4544,7 +4612,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
Expression expression = statement.condition;
DartType type = getStaticType(expression);
if (type is InterfaceType) {
- if (!type.isAssignableTo(_boolType)) {
+ if (!_typeSystem.isAssignableTo(type, _boolType)) {
_errorReporter.reportErrorForNode(
StaticTypeWarningCode.NON_BOOL_EXPRESSION, expression);
return true;
@@ -4552,7 +4620,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
} else if (type is FunctionType) {
FunctionType functionType = type;
if (functionType.typeArguments.length == 0 &&
- !functionType.returnType.isAssignableTo(_boolType)) {
+ !_typeSystem.isAssignableTo(functionType.returnType, _boolType)) {
_errorReporter.reportErrorForNode(
StaticTypeWarningCode.NON_BOOL_EXPRESSION, expression);
return true;
@@ -4568,7 +4636,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
*/
bool _checkForNonBoolNegationExpression(Expression expression) {
DartType conditionType = getStaticType(expression);
- if (conditionType != null && !conditionType.isAssignableTo(_boolType)) {
+ if (conditionType != null &&
+ !_typeSystem.isAssignableTo(conditionType, _boolType)) {
_errorReporter.reportErrorForNode(
StaticTypeWarningCode.NON_BOOL_NEGATION_EXPRESSION, expression);
return true;
@@ -4819,7 +4888,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
}
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.REDIRECT_GENERATIVE_TO_MISSING_CONSTRUCTOR,
- invocation, [constructorStrName, enclosingTypeName]);
+ invocation,
+ [constructorStrName, enclosingTypeName]);
} else {
if (redirectingElement.isFactory) {
_errorReporter.reportErrorForNode(
@@ -4963,15 +5033,13 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
]);
return true;
}
- if (staticReturnType.isAssignableTo(expectedReturnType)) {
+ if (_typeSystem.isAssignableTo(staticReturnType, expectedReturnType)) {
return false;
}
_errorReporter.reportTypeErrorForNode(
- StaticTypeWarningCode.RETURN_OF_INVALID_TYPE, returnExpression, [
- staticReturnType,
- expectedReturnType,
- _enclosingFunction.displayName
- ]);
+ StaticTypeWarningCode.RETURN_OF_INVALID_TYPE,
+ returnExpression,
+ [staticReturnType, expectedReturnType, _enclosingFunction.displayName]);
return true;
// TODO(brianwilkerson) Define a hint corresponding to the warning and
// report it if appropriate.
@@ -5041,15 +5109,14 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
Expression caseExpression = switchCase.expression;
DartType caseType = getStaticType(caseExpression);
// check types
- if (expressionType.isAssignableTo(caseType)) {
+ if (_typeSystem.isAssignableTo(expressionType, caseType)) {
return false;
}
// report problem
_errorReporter.reportErrorForNode(
- StaticWarningCode.SWITCH_EXPRESSION_NOT_ASSIGNABLE, expression, [
- expressionType,
- caseType
- ]);
+ StaticWarningCode.SWITCH_EXPRESSION_NOT_ASSIGNABLE,
+ expression,
+ [expressionType, caseType]);
return true;
}
return false;
@@ -5124,7 +5191,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
typeArguments.length == typeParameters.length) {
boundType = boundType.substitute2(typeArguments, typeParameters);
}
- if (!argType.isSubtypeOf(boundType)) {
+ if (!_typeSystem.isSubtypeOf(argType, boundType)) {
ErrorCode errorCode;
if (_isInConstInstanceCreation) {
errorCode = CompileTimeErrorCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS;
@@ -5176,7 +5243,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
}
// report problem
_errorReporter.reportErrorForNode(
- StaticTypeWarningCode.TYPE_PARAMETER_SUPERTYPE_OF_ITS_BOUND, parameter,
+ StaticTypeWarningCode.TYPE_PARAMETER_SUPERTYPE_OF_ITS_BOUND,
+ parameter,
[element.displayName]);
return true;
}
@@ -5232,7 +5300,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (superUnnamedConstructor.isFactory) {
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.NON_GENERATIVE_CONSTRUCTOR,
- constructor.returnType, [superUnnamedConstructor]);
+ constructor.returnType,
+ [superUnnamedConstructor]);
return true;
}
if (!superUnnamedConstructor.isDefaultConstructor ||
@@ -5247,14 +5316,17 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
length = (name != null ? name.end : returnType.end) - offset;
}
_errorReporter.reportErrorForOffset(
- CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_EXPLICIT, offset,
- length, [superType.displayName]);
+ CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_EXPLICIT,
+ offset,
+ length,
+ [superType.displayName]);
}
return false;
}
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.UNDEFINED_CONSTRUCTOR_IN_INITIALIZER_DEFAULT,
- constructor.returnType, [superElement.name]);
+ constructor.returnType,
+ [superElement.name]);
return true;
}
@@ -5283,7 +5355,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
}
_errorReporter.reportErrorForNode(
StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER,
- name, [name.name]);
+ name,
+ [name.name]);
return true;
}
@@ -5294,7 +5367,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (fieldElement == null || fieldElement.isSynthetic) {
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_NON_EXISTENT_FIELD,
- parameter, [parameter.identifier.name]);
+ parameter,
+ [parameter.identifier.name]);
} else {
ParameterElement parameterElement = parameter.element;
if (parameterElement is FieldFormalParameterElementImpl) {
@@ -5304,27 +5378,32 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (fieldElement.isSynthetic) {
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_NON_EXISTENT_FIELD,
- parameter, [parameter.identifier.name]);
+ parameter,
+ [parameter.identifier.name]);
} else if (fieldElement.isStatic) {
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_STATIC_FIELD,
- parameter, [parameter.identifier.name]);
+ parameter,
+ [parameter.identifier.name]);
} else if (declaredType != null &&
fieldType != null &&
- !declaredType.isAssignableTo(fieldType)) {
+ !_typeSystem.isAssignableTo(declaredType, fieldType)) {
_errorReporter.reportTypeErrorForNode(
StaticWarningCode.FIELD_INITIALIZING_FORMAL_NOT_ASSIGNABLE,
- parameter, [declaredType, fieldType]);
+ parameter,
+ [declaredType, fieldType]);
}
} else {
if (fieldElement.isSynthetic) {
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_NON_EXISTENT_FIELD,
- parameter, [parameter.identifier.name]);
+ parameter,
+ [parameter.identifier.name]);
} else if (fieldElement.isStatic) {
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_STATIC_FIELD,
- parameter, [parameter.identifier.name]);
+ parameter,
+ [parameter.identifier.name]);
}
}
}
@@ -5400,14 +5479,16 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (expected != -1 && numParameters != expected) {
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_OPERATOR,
- nameNode, [name, expected, numParameters]);
+ nameNode,
+ [name, expected, numParameters]);
return true;
}
// check for operator "-"
if ("-" == name && numParameters > 1) {
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_OPERATOR_MINUS,
- nameNode, [numParameters]);
+ nameNode,
+ [numParameters]);
return true;
}
// OK
@@ -5467,12 +5548,11 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
impliedReturnType =
_typeProvider.iterableType.substitute4(<DartType>[staticYieldedType]);
}
- if (!impliedReturnType.isAssignableTo(declaredReturnType)) {
+ if (!_typeSystem.isAssignableTo(impliedReturnType, declaredReturnType)) {
_errorReporter.reportTypeErrorForNode(
- StaticTypeWarningCode.YIELD_OF_INVALID_TYPE, yieldExpression, [
- impliedReturnType,
- declaredReturnType
- ]);
+ StaticTypeWarningCode.YIELD_OF_INVALID_TYPE,
+ yieldExpression,
+ [impliedReturnType, declaredReturnType]);
return true;
}
if (isYieldEach) {
@@ -5485,12 +5565,11 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
} else {
requiredReturnType = _typeProvider.iterableDynamicType;
}
- if (!impliedReturnType.isAssignableTo(requiredReturnType)) {
+ if (!_typeSystem.isAssignableTo(impliedReturnType, requiredReturnType)) {
_errorReporter.reportTypeErrorForNode(
- StaticTypeWarningCode.YIELD_OF_INVALID_TYPE, yieldExpression, [
- impliedReturnType,
- requiredReturnType
- ]);
+ StaticTypeWarningCode.YIELD_OF_INVALID_TYPE,
+ yieldExpression,
+ [impliedReturnType, requiredReturnType]);
return true;
}
}
@@ -5511,7 +5590,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (classElement == null) {
return false;
}
- if (!classElement.type.isSubtypeOf(_typeProvider.functionType)) {
+ if (!_typeSystem.isSubtypeOf(
+ classElement.type, _typeProvider.functionType)) {
return false;
}
// If there is a noSuchMethod method, then don't report the warning,
@@ -5555,7 +5635,8 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
if (interfaceNode.type == superType) {
hasProblem = true;
_errorReporter.reportErrorForNode(
- CompileTimeErrorCode.IMPLEMENTS_SUPER_CLASS, interfaceNode,
+ CompileTimeErrorCode.IMPLEMENTS_SUPER_CLASS,
+ interfaceNode,
[superType.displayName]);
}
}
@@ -5874,20 +5955,17 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
buffer.write(separator);
}
buffer.write(element.displayName);
- _errorReporter.reportErrorForOffset(
+ _errorReporter.reportErrorForElement(
CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE,
- _enclosingClass.nameOffset, enclosingClassName.length, [
- enclosingClassName,
- buffer.toString()
- ]);
+ _enclosingClass,
+ [enclosingClassName, buffer.toString()]);
return true;
} else {
// RECURSIVE_INTERFACE_INHERITANCE_BASE_CASE_EXTENDS or
// RECURSIVE_INTERFACE_INHERITANCE_BASE_CASE_IMPLEMENTS or
// RECURSIVE_INTERFACE_INHERITANCE_BASE_CASE_WITH
- _errorReporter.reportErrorForOffset(_getBaseCaseErrorCode(element),
- _enclosingClass.nameOffset, enclosingClassName.length,
- [enclosingClassName]);
+ _errorReporter.reportErrorForElement(_getBaseCaseErrorCode(element),
+ _enclosingClass, [enclosingClassName]);
return true;
}
}
« no previous file with comments | « packages/analyzer/lib/src/generated/error.dart ('k') | packages/analyzer/lib/src/generated/html.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698