From 8692936f48e7495c7df76312c8609c755b8bd0ec Mon Sep 17 00:00:00 2001 From: Konstantin Shcheglov Date: Fri, 3 Aug 2018 17:39:54 +0000 Subject: [PATCH] Verify constants using Analyzer. This fixes 44 failing language_2 tests. Change-Id: I9248a940c56764d030e5cb1c8d558a3d41b88899 Reviewed-on: https://dart-review.googlesource.com/68340 Reviewed-by: Brian Wilkerson Commit-Queue: Konstantin Shcheglov --- .../src/dart/analysis/library_analyzer.dart | 70 +++--- .../lib/src/fasta/resolution_applier.dart | 8 +- pkg/analyzer/lib/src/kernel/resynthesize.dart | 2 +- ...e_compile_time_error_code_kernel_test.dart | 143 ------------ ...ked_mode_compile_time_error_code_test.dart | 27 ++- .../compile_time_error_code_kernel_test.dart | 217 +++--------------- .../compile_time_error_code_test.dart | 193 +++++++++++++--- .../generated/error_suppression_test.dart | 44 ++-- .../non_error_resolver_kernel_test.dart | 18 +- .../static_warning_code_kernel_test.dart | 28 +-- .../src/dart/analysis/driver_kernel_test.dart | 6 - tests/language_2/language_2.status | 8 +- tests/language_2/language_2_analyzer.status | 6 +- tests/language_2/language_2_kernel.status | 82 +++---- 14 files changed, 332 insertions(+), 520 deletions(-) diff --git a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart index 3f01e0633117..eef265759f34 100644 --- a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart +++ b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart @@ -132,6 +132,7 @@ class LibraryAnalyzer { _computePendingMissingRequiredParameters(file, unit); }); + units.values.forEach(_findConstants); _computeConstants(); PerformanceStatistics.errors.makeCurrentWhile(() { @@ -229,8 +230,14 @@ class LibraryAnalyzer { }); }); + units.values.forEach(_findConstants); _computeConstants(); + units.forEach((file, unit) { + ErrorReporter errorReporter = _getErrorReporter(file); + _computeConstantErrors(errorReporter, unit); + }); + if (_analysisOptions.hint) { PerformanceStatistics.hints.makeCurrentWhile(() { units.forEach((file, unit) { @@ -275,6 +282,13 @@ class LibraryAnalyzer { }); } + void _computeConstantErrors( + ErrorReporter errorReporter, CompilationUnit unit) { + ConstantVerifier constantVerifier = new ConstantVerifier( + errorReporter, _libraryElement, _typeProvider, _declaredVariables); + unit.accept(constantVerifier); + } + /** * Compute [_constants] in all units. */ @@ -428,9 +442,7 @@ class LibraryAnalyzer { // // Use the ConstantVerifier to compute errors. // - ConstantVerifier constantVerifier = new ConstantVerifier( - errorReporter, _libraryElement, _typeProvider, _declaredVariables); - unit.accept(constantVerifier); + _computeConstantErrors(errorReporter, unit); // // Use the ErrorVerifier to compute errors. @@ -470,6 +482,17 @@ class LibraryAnalyzer { return errors.where((AnalysisError e) => !isIgnored(e)).toList(); } + /// Find constants to compute. + void _findConstants(CompilationUnit unit) { + ConstantFinder constantFinder = new ConstantFinder(); + unit.accept(constantFinder); + _constants.addAll(constantFinder.constantsToCompute); + + var dependenciesFinder = new ConstantExpressionsDependenciesFinder(); + unit.accept(dependenciesFinder); + _constants.addAll(dependenciesFinder.dependencies); + } + RecordingErrorListener _getErrorListener(FileState file) => _errorListeners.putIfAbsent(file, () => new RecordingErrorListener()); @@ -709,24 +732,6 @@ class LibraryAnalyzer { unit.accept(new ResolverVisitor( _libraryElement, source, _typeProvider, errorListener)); - - // - // Find constants to compute. - // - { - ConstantFinder constantFinder = new ConstantFinder(); - unit.accept(constantFinder); - _constants.addAll(constantFinder.constantsToCompute); - } - - // - // Find constant dependencies to compute. - // - { - var finder = new ConstantExpressionsDependenciesFinder(); - unit.accept(finder); - _constants.addAll(finder.dependencies); - } } void _resolveFile2(FileState file, CompilationUnitImpl unit, @@ -847,30 +852,17 @@ class LibraryAnalyzer { variableList.type?.accept(applier); for (var variable in variables.reversed) { variable.initializer?.accept(applier); + var element = variable.declaredElement; + if (element is ConstVariableElement) { + (element as ConstVariableElement).constantInitializer = + variable.initializer; + } } applier.applyToAnnotations(declaration); } else { throw new StateError('(${declaration.runtimeType}) $declaration'); } } - - // - // Find constants to compute. - // - { - ConstantFinder constantFinder = new ConstantFinder(); - unit.accept(constantFinder); - _constants.addAll(constantFinder.constantsToCompute); - } - - // - // Find constant dependencies to compute. - // - { - var finder = new ConstantExpressionsDependenciesFinder(); - unit.accept(finder); - _constants.addAll(finder.dependencies); - } } /** diff --git a/pkg/analyzer/lib/src/fasta/resolution_applier.dart b/pkg/analyzer/lib/src/fasta/resolution_applier.dart index 67109ec66e51..7784637280e6 100644 --- a/pkg/analyzer/lib/src/fasta/resolution_applier.dart +++ b/pkg/analyzer/lib/src/fasta/resolution_applier.dart @@ -695,8 +695,14 @@ class ResolutionApplier extends GeneralizingAstVisitor { node.name.staticElement = element; element.type = type; } + + node.initializer?.accept(this); + + if (element is ConstVariableElement) { + (element as ConstVariableElement).constantInitializer = + node.initializer; + } } - node.initializer?.accept(this); } @override diff --git a/pkg/analyzer/lib/src/kernel/resynthesize.dart b/pkg/analyzer/lib/src/kernel/resynthesize.dart index 141d0399686b..88fceccef17d 100644 --- a/pkg/analyzer/lib/src/kernel/resynthesize.dart +++ b/pkg/analyzer/lib/src/kernel/resynthesize.dart @@ -688,7 +688,7 @@ class _ExprBuilder { var arguments = _toArguments(expr.arguments); var creation = AstTestFactory.instanceCreationExpression( keyword, constructorName, arguments); - creation.staticElement = element; + creation.staticElement = ConstructorMember.from(element, type); creation.staticType = type; return creation; } diff --git a/pkg/analyzer/test/generated/checked_mode_compile_time_error_code_kernel_test.dart b/pkg/analyzer/test/generated/checked_mode_compile_time_error_code_kernel_test.dart index 5552701ea9c5..705b52a5dd11 100644 --- a/pkg/analyzer/test/generated/checked_mode_compile_time_error_code_kernel_test.dart +++ b/pkg/analyzer/test/generated/checked_mode_compile_time_error_code_kernel_test.dart @@ -24,13 +24,6 @@ class CheckedModeCompileTimeErrorCodeTest_Kernel @override bool get usingFastaParser => true; - @failingTest - @override - test_assertion_throws() async { - // Not yet generating errors in kernel mode. - await super.test_assertion_throws(); - } - @failingTest @override test_fieldFormalParameterAssignableToField_fieldType_unresolved_null() async { @@ -39,29 +32,6 @@ class CheckedModeCompileTimeErrorCodeTest_Kernel .test_fieldFormalParameterAssignableToField_fieldType_unresolved_null(); } - @failingTest - @override - test_fieldFormalParameterNotAssignableToField() async { - // Expected 1 errors of type CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH, found 0; - // 1 errors of type StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE, found 0 - await super.test_fieldFormalParameterNotAssignableToField(); - } - - @failingTest - @override - test_fieldFormalParameterNotAssignableToField_extends() async { - // Expected 1 errors of type CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH, found 0 - await super.test_fieldFormalParameterNotAssignableToField_extends(); - } - - @failingTest - @override - test_fieldFormalParameterNotAssignableToField_fieldType() async { - // Expected 1 errors of type CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH, found 0; - // 1 errors of type StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE, found 0 - await super.test_fieldFormalParameterNotAssignableToField_fieldType(); - } - @failingTest @override test_fieldFormalParameterNotAssignableToField_fieldType_unresolved() async { @@ -71,50 +41,6 @@ class CheckedModeCompileTimeErrorCodeTest_Kernel .test_fieldFormalParameterNotAssignableToField_fieldType_unresolved(); } - @failingTest - @override - test_fieldFormalParameterNotAssignableToField_implements() async { - // Expected 1 errors of type CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH, found 0 - await super.test_fieldFormalParameterNotAssignableToField_implements(); - } - - @failingTest - @override - test_fieldFormalParameterNotAssignableToField_list() async { - // Expected 1 errors of type CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH, found 0 - await super.test_fieldFormalParameterNotAssignableToField_list(); - } - - @failingTest - @override - test_fieldFormalParameterNotAssignableToField_map_keyMismatch() async { - // Expected 1 errors of type CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH, found 0 - await super.test_fieldFormalParameterNotAssignableToField_map_keyMismatch(); - } - - @failingTest - @override - test_fieldFormalParameterNotAssignableToField_map_valueMismatch() async { - // Expected 1 errors of type CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH, found 0 - await super - .test_fieldFormalParameterNotAssignableToField_map_valueMismatch(); - } - - @failingTest - @override - test_fieldFormalParameterNotAssignableToField_optional() async { - // UnimplementedError: kernel: (Let) let final dynamic #t1 = "foo" in let ... - await super.test_fieldFormalParameterNotAssignableToField_optional(); - } - - @failingTest - @override - test_fieldFormalParameterNotAssignableToField_typedef() async { - // Expected 1 errors of type CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH, found 0; - // 1 errors of type StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE, found 0 - await super.test_fieldFormalParameterNotAssignableToField_typedef(); - } - @failingTest @override test_fieldInitializerNotAssignable() async { @@ -122,20 +48,6 @@ class CheckedModeCompileTimeErrorCodeTest_Kernel await super.test_fieldInitializerNotAssignable(); } - @failingTest - @override - test_fieldTypeMismatch() async { - // UnimplementedError: kernel: (AsExpression) x as{TypeError} dart.core::int - await super.test_fieldTypeMismatch(); - } - - @failingTest - @override - test_fieldTypeMismatch_generic() async { - // UnimplementedError: kernel: (Let) let final dynamic #t3 = #lib1::y in let ... - await super.test_fieldTypeMismatch_generic(); - } - @failingTest @override test_fieldTypeMismatch_unresolved() async { @@ -158,12 +70,6 @@ class CheckedModeCompileTimeErrorCodeTest_Kernel await super.test_listElementTypeNotAssignable(); } - @failingTest - @FastaProblem('https://github.com/dart-lang/sdk/issues/31936') - @override - test_listLiteral_inferredElementType() async => - super.test_listLiteral_inferredElementType(); - @failingTest @override test_mapKeyTypeNotAssignable() async { @@ -172,18 +78,6 @@ class CheckedModeCompileTimeErrorCodeTest_Kernel await super.test_mapKeyTypeNotAssignable(); } - @failingTest - @FastaProblem('https://github.com/dart-lang/sdk/issues/31936') - @override - test_mapLiteral_inferredKeyType() async => - super.test_mapLiteral_inferredKeyType(); - - @failingTest - @FastaProblem('https://github.com/dart-lang/sdk/issues/31936') - @override - test_mapLiteral_inferredValueType() async => - super.test_mapLiteral_inferredValueType(); - @failingTest @override test_mapValueTypeNotAssignable() async { @@ -199,22 +93,6 @@ class CheckedModeCompileTimeErrorCodeTest_Kernel await super.test_parameterAssignable_undefined_null(); } - @failingTest - @override - test_parameterNotAssignable() async { - // Expected 1 errors of type CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH, found 0; - // 1 errors of type StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE, found 0 - await super.test_parameterNotAssignable(); - } - - @failingTest - @override - test_parameterNotAssignable_typeSubstitution() async { - // Expected 1 errors of type CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH, found 0; - // 1 errors of type StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE, found 0 - await super.test_parameterNotAssignable_typeSubstitution(); - } - @failingTest @override test_parameterNotAssignable_undefined() async { @@ -223,20 +101,6 @@ class CheckedModeCompileTimeErrorCodeTest_Kernel await super.test_parameterNotAssignable_undefined(); } - @failingTest - @override - test_redirectingConstructor_paramTypeMismatch() async { - // Bad state: Expected element reference for analyzer offset 33; got one for kernel offset 36 - await super.test_redirectingConstructor_paramTypeMismatch(); - } - - @failingTest - @override - test_superConstructor_paramTypeMismatch() async { - // UnimplementedError: kernel: (AsExpression) d as{TypeError} dart.core::double - await super.test_superConstructor_paramTypeMismatch(); - } - @failingTest @override test_topLevelVarAssignable_undefined_null() async { @@ -244,13 +108,6 @@ class CheckedModeCompileTimeErrorCodeTest_Kernel await super.test_topLevelVarAssignable_undefined_null(); } - @failingTest - @override - test_topLevelVarNotAssignable() async { - // UnimplementedError: kernel: (Let) let final dynamic #t5 = "foo" in let ... - await super.test_topLevelVarNotAssignable(); - } - @failingTest @override test_topLevelVarNotAssignable_undefined() async { diff --git a/pkg/analyzer/test/generated/checked_mode_compile_time_error_code_test.dart b/pkg/analyzer/test/generated/checked_mode_compile_time_error_code_test.dart index d79d0f5d387d..d74dcfad5bc4 100644 --- a/pkg/analyzer/test/generated/checked_mode_compile_time_error_code_test.dart +++ b/pkg/analyzer/test/generated/checked_mode_compile_time_error_code_test.dart @@ -419,10 +419,19 @@ const int y = 1; var v = const C(); '''); await computeAnalysisResult(source); - assertErrors(source, [ - CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_FIELD_TYPE_MISMATCH, - StaticTypeWarningCode.INVALID_ASSIGNMENT - ]); + assertErrors( + source, + useCFE + ? [ + CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE, + StaticTypeWarningCode.INVALID_ASSIGNMENT + ] + : [ + CheckedModeCompileTimeErrorCode + .CONST_CONSTRUCTOR_FIELD_TYPE_MISMATCH, + StaticTypeWarningCode.INVALID_ASSIGNMENT + ], + ); verify([source]); } @@ -451,7 +460,15 @@ const int y = 1; var v = const C(); '''); await computeAnalysisResult(source); - assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]); + assertErrors( + source, + useCFE + ? [ + CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE, + StaticTypeWarningCode.INVALID_ASSIGNMENT + ] + : [StaticTypeWarningCode.INVALID_ASSIGNMENT], + ); verify([source]); } diff --git a/pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart b/pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart index 051989652a48..f87713a22e9f 100644 --- a/pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart +++ b/pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart @@ -54,12 +54,6 @@ class CompileTimeErrorCodeTest_Kernel extends CompileTimeErrorCodeTest_Driver { await super.test_async_used_as_identifier_in_break_statement(); } - @override - @failingTest - test_caseExpressionTypeImplementsEquals() async { - await super.test_caseExpressionTypeImplementsEquals(); - } - @override // Test passes with CFE but fails with the original analyzer. test_conflictingConstructorNameAndMember_field() async { await super.test_conflictingConstructorNameAndMember_field(); @@ -88,30 +82,12 @@ class CompileTimeErrorCodeTest_Kernel extends CompileTimeErrorCodeTest_Driver { await super.test_conflictingTypeVariableAndMember_setter(); } - @override - @failingTest - test_const_invalid_constructorFieldInitializer_fromLibrary() { - return super.test_const_invalid_constructorFieldInitializer_fromLibrary(); - } - - @override - @failingTest - test_constConstructorWithFieldInitializedByNonConst() async { - await super.test_constConstructorWithFieldInitializedByNonConst(); - } - @override @failingTest test_constConstructorWithNonFinalField_super() async { await super.test_constConstructorWithNonFinalField_super(); } - @override - @failingTest - test_constEval_nonStaticField_inGenericClass() async { - await super.test_constEval_nonStaticField_inGenericClass(); - } - @override @failingTest test_constEvalThrowsException_binaryMinus_null() async { @@ -124,12 +100,6 @@ class CompileTimeErrorCodeTest_Kernel extends CompileTimeErrorCodeTest_Driver { await super.test_constEvalThrowsException_binaryPlus_null(); } - @override - @failingTest - test_constEvalThrowsException_divisionByZero() async { - await super.test_constEvalThrowsException_divisionByZero(); - } - @override @failingTest test_constEvalThrowsException_finalAlreadySet_initializer() async { @@ -143,42 +113,12 @@ class CompileTimeErrorCodeTest_Kernel extends CompileTimeErrorCodeTest_Driver { .test_constEvalThrowsException_finalAlreadySet_initializing_formal(); } - @override - @failingTest - test_constEvalThrowsException_unaryNot_null() async { - await super.test_constEvalThrowsException_unaryNot_null(); - } - @override @failingTest test_constEvalTypeBool_binary() async { await super.test_constEvalTypeBool_binary(); } - @override - @failingTest - test_constEvalTypeBoolNumString_equal() async { - await super.test_constEvalTypeBoolNumString_equal(); - } - - @override - @failingTest - test_constEvalTypeBoolNumString_notEqual() async { - await super.test_constEvalTypeBoolNumString_notEqual(); - } - - @override - @failingTest - test_constEvalTypeInt_binary() async { - await super.test_constEvalTypeInt_binary(); - } - - @override - @failingTest - test_constEvalTypeNum_binary() async { - await super.test_constEvalTypeNum_binary(); - } - @override @failingTest test_constFormalParameter_fieldFormalParameter() async { @@ -191,12 +131,6 @@ class CompileTimeErrorCodeTest_Kernel extends CompileTimeErrorCodeTest_Driver { await super.test_constFormalParameter_simpleFormalParameter(); } - @override - @failingTest - test_constInitializedWithNonConstValue_finalField() async { - await super.test_constInitializedWithNonConstValue_finalField(); - } - @override @failingTest test_constInitializedWithNonConstValueFromDeferredClass() async { @@ -216,30 +150,6 @@ class CompileTimeErrorCodeTest_Kernel extends CompileTimeErrorCodeTest_Driver { await super.test_constInstanceField(); } - @override - @failingTest - test_constMapKeyTypeImplementsEquals_direct() async { - await super.test_constMapKeyTypeImplementsEquals_direct(); - } - - @override - @failingTest - test_constMapKeyTypeImplementsEquals_dynamic() async { - await super.test_constMapKeyTypeImplementsEquals_dynamic(); - } - - @override - @failingTest - test_constMapKeyTypeImplementsEquals_factory() async { - await super.test_constMapKeyTypeImplementsEquals_factory(); - } - - @override - @failingTest - test_constMapKeyTypeImplementsEquals_super() async { - await super.test_constMapKeyTypeImplementsEquals_super(); - } - @override @failingTest test_constWithInvalidTypeParameters() async { @@ -415,18 +325,6 @@ class CompileTimeErrorCodeTest_Kernel extends CompileTimeErrorCodeTest_Driver { return super.test_fieldInitializingFormalRedirectingConstructor(); } - @override - @failingTest - test_fromEnvironment_bool_badArgs() async { - await super.test_fromEnvironment_bool_badArgs(); - } - - @override - @failingTest - test_fromEnvironment_bool_badDefault_whenDefined() async { - await super.test_fromEnvironment_bool_badDefault_whenDefined(); - } - @override @failingTest test_genericFunctionTypeArgument_class() async { @@ -632,24 +530,6 @@ class CompileTimeErrorCodeTest_Kernel extends CompileTimeErrorCodeTest_Driver { return super.test_importOfNonLibrary(); } - @override - @failingTest - test_inconsistentCaseExpressionTypes() async { - await super.test_inconsistentCaseExpressionTypes(); - } - - @override - @failingTest - test_inconsistentCaseExpressionTypes_dynamic() async { - await super.test_inconsistentCaseExpressionTypes_dynamic(); - } - - @override - @failingTest - test_inconsistentCaseExpressionTypes_repeated() async { - await super.test_inconsistentCaseExpressionTypes_repeated(); - } - @override @failingTest test_initializerForNonExistent_const() async { @@ -1074,42 +954,6 @@ class CompileTimeErrorCodeTest_Kernel extends CompileTimeErrorCodeTest_Driver { await super.test_noDefaultSuperConstructorImplicit_mixinWithOptionalParam(); } - @override - @failingTest - test_nonConstantDefaultValue_function_named() async { - await super.test_nonConstantDefaultValue_function_named(); - } - - @override - @failingTest - test_nonConstantDefaultValue_function_positional() async { - await super.test_nonConstantDefaultValue_function_positional(); - } - - @override - @failingTest - test_nonConstantDefaultValue_inConstructor_named() async { - await super.test_nonConstantDefaultValue_inConstructor_named(); - } - - @override - @failingTest - test_nonConstantDefaultValue_inConstructor_positional() async { - await super.test_nonConstantDefaultValue_inConstructor_positional(); - } - - @override - @failingTest - test_nonConstantDefaultValue_method_named() async { - await super.test_nonConstantDefaultValue_method_named(); - } - - @override - @failingTest - test_nonConstantDefaultValue_method_positional() async { - await super.test_nonConstantDefaultValue_method_positional(); - } - @override @failingTest test_nonConstantDefaultValueFromDeferredLibrary() async { @@ -1122,18 +966,6 @@ class CompileTimeErrorCodeTest_Kernel extends CompileTimeErrorCodeTest_Driver { await super.test_nonConstantDefaultValueFromDeferredLibrary_nested(); } - @override - @failingTest - test_nonConstValueInInitializer_binary_notInt() async { - await super.test_nonConstValueInInitializer_binary_notInt(); - } - - @override - @failingTest - test_nonConstValueInInitializer_binary_notNum() async { - await super.test_nonConstValueInInitializer_binary_notNum(); - } - @override @failingTest test_nonConstValueInInitializerFromDeferredLibrary_field() async { @@ -1288,21 +1120,6 @@ class CompileTimeErrorCodeTest_Kernel extends CompileTimeErrorCodeTest_Driver { .test_privateCollisionInMixinApplication_superclassAndMixin_same(); } - @override - @failingTest - @override - @failingTest - test_recursiveCompileTimeConstant() async { - await super.test_recursiveCompileTimeConstant(); - } - - @override - @failingTest - test_recursiveCompileTimeConstant_initializer_after_toplevel_var() async { - await super - .test_recursiveCompileTimeConstant_initializer_after_toplevel_var(); - } - @override @failingTest test_recursiveFactoryRedirect() async { @@ -1546,12 +1363,6 @@ class CompileTimeErrorCodeTest_Kernel extends CompileTimeErrorCodeTest_Driver { return super.test_superInRedirectingConstructor_superRedirection(); } - @override - @failingTest - test_symbol_constructor_badArgs() async { - await super.test_symbol_constructor_badArgs(); - } - @override @failingTest test_typeArgumentNotMatchingBounds_const() async { @@ -1624,6 +1435,20 @@ class CompileTimeErrorCodeTest_Kernel extends CompileTimeErrorCodeTest_Driver { await super.test_wrongNumberOfParametersForOperator_tilde(); } + @override + @failingTest + @FastaProblem('https://github.com/dart-lang/sdk/issues/31096') + test_wrongNumberOfParametersForSetter_function_named() async { + return super.test_wrongNumberOfParametersForSetter_function_named(); + } + + @override + @failingTest + @FastaProblem('https://github.com/dart-lang/sdk/issues/31096') + test_wrongNumberOfParametersForSetter_function_optional() async { + return super.test_wrongNumberOfParametersForSetter_function_optional(); + } + @override @failingTest @FastaProblem('https://github.com/dart-lang/sdk/issues/31096') @@ -1638,6 +1463,20 @@ class CompileTimeErrorCodeTest_Kernel extends CompileTimeErrorCodeTest_Driver { return super.test_wrongNumberOfParametersForSetter_function_tooMany(); } + @override + @failingTest + @FastaProblem('https://github.com/dart-lang/sdk/issues/31096') + test_wrongNumberOfParametersForSetter_method_named() async { + return super.test_wrongNumberOfParametersForSetter_method_named(); + } + + @override + @failingTest + @FastaProblem('https://github.com/dart-lang/sdk/issues/31096') + test_wrongNumberOfParametersForSetter_method_optional() async { + return super.test_wrongNumberOfParametersForSetter_method_optional(); + } + @override @failingTest @FastaProblem('https://github.com/dart-lang/sdk/issues/31096') diff --git a/pkg/analyzer/test/generated/compile_time_error_code_test.dart b/pkg/analyzer/test/generated/compile_time_error_code_test.dart index 0fea903c95b9..79ecd2dc2808 100644 --- a/pkg/analyzer/test/generated/compile_time_error_code_test.dart +++ b/pkg/analyzer/test/generated/compile_time_error_code_test.dart @@ -1218,7 +1218,10 @@ class A { const a = new A();'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE, + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION + ]); } else { assertErrors(source, [CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE]); @@ -1263,7 +1266,10 @@ final a = const A(); const C = a.m;'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE, + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION + ]); } else { assertErrors(source, [CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE]); @@ -1348,7 +1354,10 @@ var x = const C(2); Source source = addSource("const C = ~null;"); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]); + assertErrors(source, [ + CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION, + StaticTypeWarningCode.UNDEFINED_METHOD + ]); } else { assertErrors(source, [CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION]); } @@ -1359,7 +1368,10 @@ var x = const C(2); Source source = addSource("const C = -null;"); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]); + assertErrors(source, [ + CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION, + StaticTypeWarningCode.UNDEFINED_METHOD + ]); } else { assertErrors(source, [CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION]); } @@ -1495,7 +1507,10 @@ f(p) { }'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE, + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION + ]); } else { assertErrors(source, [CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE]); @@ -1706,7 +1721,10 @@ class T { f() { return const T(0, 1, c: 2, d: 3); }'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.CONST_WITH_NON_CONST, + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION + ]); } else { assertErrors(source, [CompileTimeErrorCode.CONST_WITH_NON_CONST]); } @@ -1726,7 +1744,11 @@ main() { '''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION, + CompileTimeErrorCode.CONST_WITH_NON_CONST, + CompileTimeErrorCode.CONST_WITH_NON_CONSTANT_ARGUMENT, + ]); } else { // TODO(a14n): the error CONST_WITH_NON_CONSTANT_ARGUMENT is redundant and // ought to be suppressed. @@ -1752,7 +1774,11 @@ main() { '''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION, + CompileTimeErrorCode.CONST_WITH_NON_CONST, + CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE + ]); } else { // TODO(a14n): the error CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE is // redundant and ought to be suppressed. @@ -1775,7 +1801,10 @@ main() { }'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.CONST_WITH_NON_CONSTANT_ARGUMENT, + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION + ]); } else { assertErrors( source, [CompileTimeErrorCode.CONST_WITH_NON_CONSTANT_ARGUMENT]); @@ -1791,7 +1820,11 @@ class A { f(p) { return const A(p); }'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION, + CompileTimeErrorCode.CONST_WITH_NON_CONSTANT_ARGUMENT, + CompileTimeErrorCode.INVALID_CONSTANT + ]); } else { // TODO(paulberry): the error INVALID_CONSTANT is redundant and ought to be // suppressed. @@ -4462,7 +4495,11 @@ f() { Source source = addSource("const int i = (1 ? 'alpha' : 'beta').length;"); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]); + assertErrors(source, [ + CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE, + CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL, + StaticTypeWarningCode.INVALID_ASSIGNMENT + ]); } else { assertErrors(source, [ CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE, @@ -5498,7 +5535,10 @@ main() { }'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.NON_CONSTANT_ANNOTATION_CONSTRUCTOR, + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION + ]); } else { assertErrors( source, [CompileTimeErrorCode.NON_CONSTANT_ANNOTATION_CONSTRUCTOR]); @@ -5516,7 +5556,10 @@ main() { }'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.NON_CONSTANT_ANNOTATION_CONSTRUCTOR, + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION + ]); } else { assertErrors( source, [CompileTimeErrorCode.NON_CONSTANT_ANNOTATION_CONSTRUCTOR]); @@ -5624,7 +5667,10 @@ f(int p, int q) { }'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.NON_CONSTANT_CASE_EXPRESSION, + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION + ]); } else { assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_CASE_EXPRESSION]); } @@ -5648,7 +5694,11 @@ main (int p) { }''' ], useCFE - ? [CompileTimeErrorCode.CONST_DEFERRED_CLASS] + ? [ + CompileTimeErrorCode + .NON_CONSTANT_CASE_EXPRESSION_FROM_DEFERRED_LIBRARY, + CompileTimeErrorCode.CONST_DEFERRED_CLASS + ] : [ CompileTimeErrorCode .NON_CONSTANT_CASE_EXPRESSION_FROM_DEFERRED_LIBRARY @@ -5672,7 +5722,11 @@ main (int p) { }''' ], useCFE - ? [CompileTimeErrorCode.CONST_DEFERRED_CLASS] + ? [ + CompileTimeErrorCode + .NON_CONSTANT_CASE_EXPRESSION_FROM_DEFERRED_LIBRARY, + CompileTimeErrorCode.CONST_DEFERRED_CLASS + ] : [ CompileTimeErrorCode .NON_CONSTANT_CASE_EXPRESSION_FROM_DEFERRED_LIBRARY @@ -5686,7 +5740,10 @@ f(a) { }'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION, + CompileTimeErrorCode.NON_CONSTANT_LIST_ELEMENT + ]); } else { assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_LIST_ELEMENT]); } @@ -5707,7 +5764,11 @@ f() { }''' ], useCFE - ? [CompileTimeErrorCode.CONST_DEFERRED_CLASS] + ? [ + CompileTimeErrorCode.CONST_DEFERRED_CLASS, + CompileTimeErrorCode + .NON_CONSTANT_LIST_ELEMENT_FROM_DEFERRED_LIBRARY + ] : [ CompileTimeErrorCode .NON_CONSTANT_LIST_ELEMENT_FROM_DEFERRED_LIBRARY @@ -5728,7 +5789,11 @@ f() { }''' ], useCFE - ? [CompileTimeErrorCode.CONST_DEFERRED_CLASS] + ? [ + CompileTimeErrorCode.CONST_DEFERRED_CLASS, + CompileTimeErrorCode + .NON_CONSTANT_LIST_ELEMENT_FROM_DEFERRED_LIBRARY + ] : [ CompileTimeErrorCode .NON_CONSTANT_LIST_ELEMENT_FROM_DEFERRED_LIBRARY @@ -5838,7 +5903,10 @@ f(a) { }'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION, + CompileTimeErrorCode.NON_CONSTANT_MAP_KEY + ]); } else { assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_MAP_KEY]); } @@ -5859,7 +5927,10 @@ f() { }''' ], useCFE - ? [CompileTimeErrorCode.CONST_DEFERRED_CLASS] + ? [ + CompileTimeErrorCode.CONST_DEFERRED_CLASS, + CompileTimeErrorCode.NON_CONSTANT_MAP_KEY_FROM_DEFERRED_LIBRARY + ] : [ CompileTimeErrorCode.NON_CONSTANT_MAP_KEY_FROM_DEFERRED_LIBRARY ]); @@ -5879,7 +5950,10 @@ f() { }''' ], useCFE - ? [CompileTimeErrorCode.CONST_DEFERRED_CLASS] + ? [ + CompileTimeErrorCode.CONST_DEFERRED_CLASS, + CompileTimeErrorCode.NON_CONSTANT_MAP_KEY_FROM_DEFERRED_LIBRARY + ] : [ CompileTimeErrorCode.NON_CONSTANT_MAP_KEY_FROM_DEFERRED_LIBRARY ]); @@ -5892,7 +5966,10 @@ f(a) { }'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION, + CompileTimeErrorCode.NON_CONSTANT_MAP_VALUE + ]); } else { assertErrors(source, [CompileTimeErrorCode.NON_CONSTANT_MAP_VALUE]); } @@ -5913,7 +5990,11 @@ f() { }''' ], useCFE - ? [CompileTimeErrorCode.CONST_DEFERRED_CLASS] + ? [ + CompileTimeErrorCode.CONST_DEFERRED_CLASS, + CompileTimeErrorCode + .NON_CONSTANT_MAP_VALUE_FROM_DEFERRED_LIBRARY + ] : [ CompileTimeErrorCode .NON_CONSTANT_MAP_VALUE_FROM_DEFERRED_LIBRARY @@ -5934,7 +6015,11 @@ f() { }''' ], useCFE - ? [CompileTimeErrorCode.CONST_DEFERRED_CLASS] + ? [ + CompileTimeErrorCode.CONST_DEFERRED_CLASS, + CompileTimeErrorCode + .NON_CONSTANT_MAP_VALUE_FROM_DEFERRED_LIBRARY + ] : [ CompileTimeErrorCode .NON_CONSTANT_MAP_VALUE_FROM_DEFERRED_LIBRARY @@ -5948,7 +6033,10 @@ class A { }'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION, + CompileTimeErrorCode.NON_CONSTANT_VALUE_IN_INITIALIZER + ]); } else { assertErrors( source, [CompileTimeErrorCode.NON_CONSTANT_VALUE_IN_INITIALIZER]); @@ -5963,7 +6051,10 @@ class A { }'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION, + CompileTimeErrorCode.NON_CONSTANT_VALUE_IN_INITIALIZER + ]); } else { assertErrors( source, [CompileTimeErrorCode.NON_CONSTANT_VALUE_IN_INITIALIZER]); @@ -5979,7 +6070,10 @@ class A { }'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]); + assertErrors(source, [ + CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL, + StaticTypeWarningCode.INVALID_ASSIGNMENT + ]); } else { assertErrors(source, [ CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL, @@ -5997,7 +6091,10 @@ class A { }'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]); + assertErrors(source, [ + CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL, + StaticTypeWarningCode.INVALID_ASSIGNMENT + ]); } else { assertErrors(source, [ CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL, @@ -6044,7 +6141,10 @@ class A { }'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION, + CompileTimeErrorCode.NON_CONSTANT_VALUE_IN_INITIALIZER + ]); } else { assertErrors( source, [CompileTimeErrorCode.NON_CONSTANT_VALUE_IN_INITIALIZER]); @@ -6066,7 +6166,11 @@ var b = const B();'''); // ought to be suppressed. Or not? await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION, + CompileTimeErrorCode.NON_CONSTANT_VALUE_IN_INITIALIZER, + CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION + ]); } else { assertErrors(source, [ CompileTimeErrorCode.NON_CONSTANT_VALUE_IN_INITIALIZER, @@ -6091,6 +6195,7 @@ class MyClass { await computeAnalysisResult(sourceB); if (useCFE) { assertErrors(sourceB, [ + CompileTimeErrorCode.NON_CONSTANT_DEFAULT_VALUE, StaticTypeWarningCode.UNDEFINED_GETTER, StaticTypeWarningCode.UNDEFINED_GETTER ]); @@ -6111,7 +6216,10 @@ class A { }'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION, + CompileTimeErrorCode.NON_CONSTANT_VALUE_IN_INITIALIZER + ]); } else { assertErrors( source, [CompileTimeErrorCode.NON_CONSTANT_VALUE_IN_INITIALIZER]); @@ -6130,7 +6238,10 @@ class B extends A { }'''); await computeAnalysisResult(source); if (useCFE) { - assertErrors(source, [CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION]); + assertErrors(source, [ + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION, + CompileTimeErrorCode.NON_CONSTANT_VALUE_IN_INITIALIZER + ]); } else { assertErrors( source, [CompileTimeErrorCode.NON_CONSTANT_VALUE_IN_INITIALIZER]); @@ -6729,11 +6840,18 @@ class A { const x = y + 1; const y = x + 1;'''); await computeAnalysisResult(source); - if (!enableNewAnalysisDriver || enableKernelDriver) { + if (enableKernelDriver) { assertErrors(source, [ + CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT, + CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT, CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT, CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT ]); + } else if (!enableNewAnalysisDriver) { + assertErrors(source, [ + CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT, + CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT, + ]); } else { assertErrors(source, [ CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT, @@ -6764,7 +6882,12 @@ class C { const x = x; '''); await computeAnalysisResult(source); - if (!enableNewAnalysisDriver || enableKernelDriver) { + if (enableKernelDriver) { + assertErrors(source, [ + CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT, + CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT, + ]); + } else if (!enableNewAnalysisDriver) { assertErrors(source, [ CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT, ]); diff --git a/pkg/analyzer/test/generated/error_suppression_test.dart b/pkg/analyzer/test/generated/error_suppression_test.dart index d868a2300a1c..0b7f92c7a8e1 100644 --- a/pkg/analyzer/test/generated/error_suppression_test.dart +++ b/pkg/analyzer/test/generated/error_suppression_test.dart @@ -19,12 +19,28 @@ main() { @reflectiveTest class ErrorSuppressionTest extends ResolverTestCase { String get ignoredCode => useCFE - ? 'not_constant_expression' + ? 'not_constant_expression, const_initialized_with_non_constant_value' : 'const_initialized_with_non_constant_value'; - ErrorCode get reportedCode => useCFE - ? CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION - : CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE; + List get reportedCodes => useCFE + ? [ + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION, + CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE, + ] + : [ + CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE, + ]; + + List get reportedCodesWithAssignment => useCFE + ? [ + StaticTypeWarningCode.INVALID_ASSIGNMENT, + CompileTimeErrorCode.NOT_CONSTANT_EXPRESSION, + CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE, + ] + : [ + StaticTypeWarningCode.INVALID_ASSIGNMENT, + CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE, + ]; test_error_code_mismatch() async { Source source = addSource(''' @@ -33,8 +49,7 @@ int x = ''; const y = x; //CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE '''); await computeAnalysisResult(source); - assertErrors( - source, [StaticTypeWarningCode.INVALID_ASSIGNMENT, reportedCode]); + assertErrors(source, reportedCodesWithAssignment); } test_ignore_first() async { @@ -45,7 +60,7 @@ int x = ''; const y = x; //CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE '''); await computeAnalysisResult(source); - assertErrors(source, [reportedCode]); + assertErrors(source, reportedCodes); } test_ignore_first_trailing() async { @@ -55,7 +70,7 @@ int x = ''; // ignore: invalid_assignment const y = x; //CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE '''); await computeAnalysisResult(source); - assertErrors(source, [reportedCode]); + assertErrors(source, reportedCodes); } test_ignore_for_file() async { @@ -65,7 +80,7 @@ const y = x; //CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE // ignore_for_file: invalid_assignment '''); await computeAnalysisResult(source); - assertErrors(source, [reportedCode]); + assertErrors(source, reportedCodes); } test_ignore_for_file_whitespace_variant() async { @@ -122,8 +137,7 @@ int x = ''; const y = x; //CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE '''); await computeAnalysisResult(source); - assertErrors( - source, [StaticTypeWarningCode.INVALID_ASSIGNMENT, reportedCode]); + assertErrors(source, reportedCodesWithAssignment); } test_missing_error_codes() async { @@ -133,8 +147,7 @@ const y = x; //CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE const String y = x; //INVALID_ASSIGNMENT, CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE '''); await computeAnalysisResult(source); - assertErrors( - source, [StaticTypeWarningCode.INVALID_ASSIGNMENT, reportedCode]); + assertErrors(source, reportedCodesWithAssignment); } test_missing_metadata_suffix() async { @@ -176,7 +189,7 @@ const String y = x; //INVALID_ASSIGNMENT, CONST_INITIALIZED_WITH_NON_CONSTANT_VA assertErrors(source, []); } - test_multiple_ignores_traling() async { + test_multiple_ignores_trailing() async { Source source = addSource(''' int x = 3; const String y = x; // ignore: invalid_assignment, $ignoredCode @@ -221,8 +234,7 @@ int x = ''; //INVALID_ASSIGNMENT const y = x; //CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE '''); await computeAnalysisResult(source); - assertErrors( - source, [StaticTypeWarningCode.INVALID_ASSIGNMENT, reportedCode]); + assertErrors(source, reportedCodesWithAssignment); } test_trailing_not_above() async { diff --git a/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart b/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart index 114054427e59..82c52fb09463 100644 --- a/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart +++ b/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart @@ -179,20 +179,6 @@ class NonErrorResolverTest_Kernel extends NonErrorResolverTest_Driver { return super.test_nativeConstConstructor(); } - @override - @failingTest - @FastaProblem('https://github.com/dart-lang/sdk/issues/31628') - test_nonConstCaseExpression_constField() async { - return super.test_nonConstCaseExpression_constField(); - } - - @override - @failingTest - @FastaProblem('https://github.com/dart-lang/sdk/issues/31627') - test_nonConstMapKey_constField() async { - return super.test_nonConstMapKey_constField(); - } - @override test_null_callMethod() async { return super.test_null_callMethod(); @@ -205,8 +191,8 @@ class NonErrorResolverTest_Kernel extends NonErrorResolverTest_Driver { @override @failingTest - test_optionalNew_rewrite_instantiatesToBounds() { - return super.test_optionalNew_rewrite_instantiatesToBounds(); + test_optionalNew_rewrite() { + return super.test_optionalNew_rewrite(); } @override diff --git a/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart b/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart index d99f2dfb0e92..349fda980884 100644 --- a/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart +++ b/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart @@ -106,12 +106,6 @@ class StaticWarningCodeTest_Kernel extends StaticWarningCodeTest_Driver { return super.test_ambiguousImport_withPrefix(); } - @override - @failingTest - test_argumentTypeNotAssignable_const() async { - return super.test_argumentTypeNotAssignable_const(); - } - @override @failingTest test_argumentTypeNotAssignable_const_super() async { @@ -257,18 +251,6 @@ class StaticWarningCodeTest_Kernel extends StaticWarningCodeTest_Driver { return super.test_conflictingInstanceSetterAndSuperclassMember(); } - @override - @failingTest - test_equalKeysInMap() async { - return super.test_equalKeysInMap(); - } - - @override - @failingTest - test_equalKeysInMap_withEqualTypeParams() async { - return super.test_equalKeysInMap_withEqualTypeParams(); - } - @override @failingTest test_exportDuplicatedLibraryNamed() async { @@ -607,6 +589,11 @@ class StaticWarningCodeTest_Kernel extends StaticWarningCodeTest_Driver { return super.test_undefinedIdentifier_function(); } + @override + test_useOfVoidResult_await() async { + return super.test_useOfVoidResult_await(); + } + @override test_useOfVoidResult_inForLoop_ok() async { return super.test_useOfVoidResult_inForLoop_ok(); @@ -616,9 +603,4 @@ class StaticWarningCodeTest_Kernel extends StaticWarningCodeTest_Driver { test_useOfVoidResult_variableDeclaration_method_ok() async { return super.test_useOfVoidResult_variableDeclaration_method_ok(); } - - @override - test_useOfVoidResult_await() async { - return super.test_useOfVoidResult_await(); - } } diff --git a/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart index 518db41e3d9a..0663b4524506 100644 --- a/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart @@ -72,12 +72,6 @@ class B { await driver.getResult(b); } - @failingTest - @override - test_const_externalConstFactory() async { - await super.test_const_externalConstFactory(); - } - @override @failingTest @FastaProblem('https://github.com/dart-lang/sdk/issues/33719') diff --git a/tests/language_2/language_2.status b/tests/language_2/language_2.status index 8d4f825753d5..7c88e69eea8c 100644 --- a/tests/language_2/language_2.status +++ b/tests/language_2/language_2.status @@ -33,14 +33,11 @@ type_checks_in_factory_method_test: SkipByDesign # Requires checked mode. [ $compiler != app_jitk && $compiler != dartk && $compiler != dartkp && $mode == debug && $runtime == vm ] built_in_identifier_type_annotation_test/set: Crash # Not supported by legacy VM front-end. -[ $compiler != dart2js && $compiler != dartdevc && !$fasta && $strong ] -type_promotion_functions_test: CompileTimeError # Issue 30895: This test requires a complete rewrite for 2.0. - # Detection of compile-time errors that are related to constants can't be fully # done at the front end, because constants are evaluated at back ends. So, some # errors aren't detected by fasta, but reported by back ends as compile-time # errors. -[ $compiler != dart2js && $runtime != dart_precompiled && $runtime != vm && $fasta ] +[ $compiler != dart2analyzer && $compiler != dart2js && $runtime != dart_precompiled && $runtime != vm && $fasta ] function_type_parameter2_negative_test: Fail function_type_parameter_negative_test: Fail implicit_creation/implicit_const_not_default_values_test/e12: MissingCompileTimeError @@ -54,6 +51,9 @@ implicit_creation/implicit_const_not_default_values_test/e30: MissingCompileTime implicit_creation/implicit_const_not_default_values_test/e6: MissingCompileTimeError implicit_creation/implicit_const_not_default_values_test/e9: MissingCompileTimeError +[ $compiler != dart2js && $compiler != dartdevc && !$fasta && $strong ] +type_promotion_functions_test: CompileTimeError # Issue 30895: This test requires a complete rewrite for 2.0. + [ $compiler != dart2js && !$fasta && $strong ] compile_time_constant_static5_test/11: CompileTimeError # Issue 30546 compile_time_constant_static5_test/16: CompileTimeError # Issue 30546 diff --git a/tests/language_2/language_2_analyzer.status b/tests/language_2/language_2_analyzer.status index 6430769e0bbe..cd17a8368811 100644 --- a/tests/language_2/language_2_analyzer.status +++ b/tests/language_2/language_2_analyzer.status @@ -4,6 +4,10 @@ # Sections in this file should contain "$compiler == dart2analyzer". +[ $compiler == dart2analyzer ] +mock_writable_final_private_field_test: CompileTimeError # Issue 30848 +vm/reflect_core_vm_test: CompileTimeError # Issue 30848 + [ $compiler == dart2analyzer && $runtime == none && !$fasta ] error_stacktrace_test/00: MissingCompileTimeError vm/lazy_deopt_with_exception_test: CompileTimeError @@ -86,7 +90,6 @@ mixin_supertype_subclass4_test/04: MissingStaticWarning # Issue 25614 mixin_supertype_subclass4_test/05: MissingStaticWarning # Issue 25614 mixin_supertype_subclass_test/02: MissingStaticWarning # Issue 25614 mixin_supertype_subclass_test/05: MissingStaticWarning # Issue 25614 -mock_writable_final_private_field_test: CompileTimeError # Issue 30848 nested_generic_closure_test: CompileTimeError no_main_test/01: Fail # Issue 20030 no_such_constructor2_test: StaticWarning @@ -124,7 +127,6 @@ type_variable_scope_test/none: Fail # Issue 11578 vm/debug_break_enabled_vm_test: Skip vm/debug_break_vm_test/*: Skip vm/lazy_deopt_with_exception_test: Pass -vm/reflect_core_vm_test: CompileTimeError vm/regress_27201_test: SkipByDesign # Loads bad library, so will always crash. vm/regress_33469_test/01: Crash # http://dartbug.com/33481 vm/regress_33469_test/02: Crash # http://dartbug.com/33481 diff --git a/tests/language_2/language_2_kernel.status b/tests/language_2/language_2_kernel.status index 3bb49cc2828a..7e169259526a 100644 --- a/tests/language_2/language_2_kernel.status +++ b/tests/language_2/language_2_kernel.status @@ -224,9 +224,6 @@ call_non_method_field_test/02: MissingCompileTimeError # Issue 32975 const_cast2_test/01: CompileTimeError # Issue 32517 const_cast2_test/none: CompileTimeError # Issue 32517 const_instance_field_test/01: MissingCompileTimeError # Fasta bug: Const instance field. Issue 32326. -const_map2_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation. -const_map3_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation. -const_switch2_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation. const_types_test/34: MissingCompileTimeError # Issue 32988 const_types_test/39: MissingCompileTimeError # Issue 32988 constructor_redirect_test/01: MissingCompileTimeError # Fasta bug: Initializer refers to this. @@ -327,11 +324,6 @@ regress_22976_test/*: CompileTimeError # Issue 31935 regress_27617_test/1: MissingCompileTimeError # Fasta bug: Bad constructor redirection. regress_29784_test/01: MissingCompileTimeError regress_29784_test/02: MissingCompileTimeError -switch_bad_case_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation. -switch_bad_case_test/02: MissingCompileTimeError # KernelVM bug: Constant evaluation. -switch_case_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation. -switch_case_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation. -switch_case_test/02: MissingCompileTimeError # KernelVM bug: Constant evaluation. syntax_test/28: MissingCompileTimeError # Issue 29763 syntax_test/29: MissingCompileTimeError # Issue 29763 syntax_test/30: MissingCompileTimeError # Issue 29763 @@ -366,10 +358,48 @@ vm/causal_async_exception_stack_test: RuntimeError [ $compiler == app_jitk && ($mode == debug || $mode == release) ] assertion_test: RuntimeError -[ $compiler != app_jitk && $compiler != dart2js && $compiler != dartk && $compiler != dartkb && $compiler != dartkp && $fasta ] +[ $compiler != app_jitk && $compiler != dart2analyzer && $compiler != dart2js && $compiler != dartk && $compiler != dartkb && $compiler != dartkp && $fasta ] const_optional_args_test/01: MissingCompileTimeError +# The precomilation configuration uses a kernel2kernel constants evaluator +# which is is more correct than fasta/vm in JIT mode (i.e. it catches more +# compile-time errors). +[ $compiler != dart2analyzer && $compiler != dart2js && $compiler != dartkp && $fasta ] +compile_time_constant_c_test/02: MissingCompileTimeError +const_constructor_nonconst_field_test/01: MissingCompileTimeError +const_syntax_test/05: MissingCompileTimeError + +# The precomilation configuration uses a kernel2kernel constants evaluator +# which is is more correct than fasta/vm in JIT mode (i.e. it catches more +# compile-time errors). +[ $compiler != dart2analyzer && $compiler != dartkp && $fasta ] +compile_time_constant_o_test/01: MissingCompileTimeError # Issue 32983 +compile_time_constant_o_test/02: MissingCompileTimeError # Issue 32983 +const_dynamic_type_literal_test/02: MissingCompileTimeError # Issue 32983 +identical_const_test/01: MissingCompileTimeError # Issue 32983 +identical_const_test/02: MissingCompileTimeError # Issue 32983 +identical_const_test/03: MissingCompileTimeError # Issue 32983 +identical_const_test/04: MissingCompileTimeError # Issue 32983 + +# The precomilation configuration uses a kernel2kernel constants evaluator +# which is is more correct than fasta/vm in JIT mode (i.e. it catches more +# compile-time errors). +[ $compiler != dart2analyzer && $compiler != dartkp && $fasta && $strong ] +compile_time_constant_k_test/01: MissingCompileTimeError +compile_time_constant_k_test/02: MissingCompileTimeError +compile_time_constant_k_test/03: MissingCompileTimeError +map_literal3_test/01: MissingCompileTimeError +map_literal3_test/02: MissingCompileTimeError + [ $compiler != dart2analyzer && $fasta ] +const_map2_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation. +const_map3_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation. +const_switch2_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation. +switch_bad_case_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation. +switch_bad_case_test/02: MissingCompileTimeError # KernelVM bug: Constant evaluation. +switch_case_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation. +switch_case_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation. +switch_case_test/02: MissingCompileTimeError # KernelVM bug: Constant evaluation. void/return_future_future_or_void_async_error0_test: MissingCompileTimeError void/return_future_future_or_void_sync_error0_test: MissingCompileTimeError void/return_future_or_future_or_void_sync_error1_test: MissingCompileTimeError @@ -584,13 +614,8 @@ void_type_usage_test/paren_toString: MissingCompileTimeError # Issue 32804 void_type_usage_test/paren_void_init: MissingCompileTimeError # Issue 32804 void_type_usage_test/paren_while: MissingCompileTimeError # Issue 32804 -# The precomilation configuration uses a kernel2kernel constants evaluator -# which is is more correct than fasta/vm in JIT mode (i.e. it catches more -# compile-time errors). -[ $compiler != dart2js && $compiler != dartkp && $fasta ] -compile_time_constant_c_test/02: MissingCompileTimeError -const_constructor_nonconst_field_test/01: MissingCompileTimeError -const_syntax_test/05: MissingCompileTimeError +[ $compiler != dart2analyzer && $fasta && $strong ] +map_literal3_test/03: MissingCompileTimeError [ $compiler != dart2js && $fasta ] mixin_super_2_test/01: MissingCompileTimeError @@ -929,28 +954,6 @@ recursive_generic_test: RuntimeError # Compares a (dynamic) toString call to 'C< tearoff_dynamic_test: RuntimeError # Compares call to "foo" (noSuchMethod) with string "foo" type_variable_promotion_test: RuntimeError # Compares runtime type to the string "List" -# The precomilation configuration uses a kernel2kernel constants evaluator -# which is is more correct than fasta/vm in JIT mode (i.e. it catches more -# compile-time errors). -[ $compiler != dartkp && $fasta ] -compile_time_constant_o_test/01: MissingCompileTimeError # Issue 32983 -compile_time_constant_o_test/02: MissingCompileTimeError # Issue 32983 -const_dynamic_type_literal_test/02: MissingCompileTimeError # Issue 32983 -identical_const_test/01: MissingCompileTimeError # Issue 32983 -identical_const_test/02: MissingCompileTimeError # Issue 32983 -identical_const_test/03: MissingCompileTimeError # Issue 32983 -identical_const_test/04: MissingCompileTimeError # Issue 32983 - -# The precomilation configuration uses a kernel2kernel constants evaluator -# which is is more correct than fasta/vm in JIT mode (i.e. it catches more -# compile-time errors). -[ $compiler != dartkp && $fasta && $strong ] -compile_time_constant_k_test/01: MissingCompileTimeError -compile_time_constant_k_test/02: MissingCompileTimeError -compile_time_constant_k_test/03: MissingCompileTimeError -map_literal3_test/01: MissingCompileTimeError -map_literal3_test/02: MissingCompileTimeError - [ $compiler == fasta && $strong ] class_cycle_test/02: MissingCompileTimeError class_cycle_test/03: MissingCompileTimeError @@ -1473,8 +1476,8 @@ parser_quirks_test: CompileTimeError # Issue 31533 redirecting_factory_infinite_steps_test/01: MissingCompileTimeError redirecting_factory_malbounded_test/01: MissingCompileTimeError regress_22443_test: RuntimeError # KernelVM bug: Deferred loading kernel issue 30273. -regress_23408_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 30273. regress_23408_test: RuntimeError +regress_23408_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 30273. regress_29025_test: CompileTimeError # Issue 31402 (Variable declaration) regress_29405_test: CompileTimeError # Issue 31402 (Invocation arguments) regress_30339_test: CompileTimeError # Issue 31402 (Variable declaration) @@ -1521,7 +1524,6 @@ assertion_initializer_const_error2_test/cc10: Pass # Works in --checked mode but [ $fasta && $strong ] issue18628_2_test/01: MissingCompileTimeError -map_literal3_test/03: MissingCompileTimeError redirecting_factory_infinite_steps_test/01: MissingCompileTimeError redirecting_factory_malbounded_test/01: MissingCompileTimeError type_promotion_logical_and_test/01: MissingCompileTimeError