@@ -2766,20 +2766,23 @@ class ConstantAnalysisErrorListener extends AnalysisErrorListener {
27662766
27672767 @override
27682768 void onError (AnalysisError error) {
2769- switch (error.errorCode) {
2770- case CompileTimeErrorCode .CONST_EVAL_TYPE_BOOL :
2771- case CompileTimeErrorCode .CONST_EVAL_TYPE_BOOL_NUM_STRING :
2772- case CompileTimeErrorCode .CONST_EVAL_TYPE_INT :
2773- case CompileTimeErrorCode .CONST_EVAL_TYPE_NUM :
2774- case CompileTimeErrorCode .CONST_EVAL_THROWS_EXCEPTION :
2775- case CompileTimeErrorCode .CONST_EVAL_THROWS_IDBZE :
2776- case CompileTimeErrorCode .CONST_WITH_NON_CONSTANT_ARGUMENT :
2777- case CompileTimeErrorCode .NON_CONSTANT_VALUE_IN_INITIALIZER :
2778- case CompileTimeErrorCode
2779- .CONST_CONSTRUCTOR_WITH_FIELD_INITIALIZED_BY_NON_CONST :
2780- case CompileTimeErrorCode .INVALID_CONSTANT :
2781- case CompileTimeErrorCode .MISSING_CONST_IN_LIST_LITERAL :
2782- hasConstError = true ;
2769+ ErrorCode errorCode = error.errorCode;
2770+ if (errorCode is CompileTimeErrorCode ) {
2771+ switch (errorCode) {
2772+ case CompileTimeErrorCode .CONST_EVAL_TYPE_BOOL :
2773+ case CompileTimeErrorCode .CONST_EVAL_TYPE_BOOL_NUM_STRING :
2774+ case CompileTimeErrorCode .CONST_EVAL_TYPE_INT :
2775+ case CompileTimeErrorCode .CONST_EVAL_TYPE_NUM :
2776+ case CompileTimeErrorCode .CONST_EVAL_THROWS_EXCEPTION :
2777+ case CompileTimeErrorCode .CONST_EVAL_THROWS_IDBZE :
2778+ case CompileTimeErrorCode .CONST_WITH_NON_CONSTANT_ARGUMENT :
2779+ case CompileTimeErrorCode .NON_CONSTANT_VALUE_IN_INITIALIZER :
2780+ case CompileTimeErrorCode
2781+ .CONST_CONSTRUCTOR_WITH_FIELD_INITIALIZED_BY_NON_CONST :
2782+ case CompileTimeErrorCode .INVALID_CONSTANT :
2783+ case CompileTimeErrorCode .MISSING_CONST_IN_LIST_LITERAL :
2784+ hasConstError = true ;
2785+ }
27832786 }
27842787 }
27852788}
@@ -6622,6 +6625,13 @@ class InstanceCreationExpressionImpl extends ExpressionImpl
66226625 }
66236626 }
66246627 }
6628+ } else if (argument is Identifier ) {
6629+ Element element = argument.bestElement;
6630+ if (element is PropertyAccessorElement && ! element.variable.isConst) {
6631+ return false ;
6632+ } else if (element is VariableElement && ! element.isConst) {
6633+ return false ;
6634+ }
66256635 } else {
66266636 return false ;
66276637 }
0 commit comments