diff --git a/pkg/analyzer/test/generated/invalid_code_test.dart b/pkg/analyzer/test/generated/invalid_code_test.dart index c47f1219336..ef3e8f3cc1f 100644 --- a/pkg/analyzer/test/generated/invalid_code_test.dart +++ b/pkg/analyzer/test/generated/invalid_code_test.dart @@ -473,7 +473,7 @@ class B { Future _assertCanBeAnalyzed(String text) async { var result = await resolveTestCode(text); - assertHasTestErrors(); + assertHasTestErrors(result); return result; } } diff --git a/pkg/analyzer/test/generated/non_error_resolver_test.dart b/pkg/analyzer/test/generated/non_error_resolver_test.dart index 684c23cdfe2..2b5ff785b30 100644 --- a/pkg/analyzer/test/generated/non_error_resolver_test.dart +++ b/pkg/analyzer/test/generated/non_error_resolver_test.dart @@ -687,7 +687,7 @@ void testNewSet(Set setEls) { } test_class_type_alias_documentationComment() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' /** * Documentation */ @@ -2079,7 +2079,7 @@ f(S s) async { } test_issue_32394() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' var x = y.map((a) => a.toString()); var y = [3]; var z = x.toList(); @@ -2770,7 +2770,7 @@ class B { final Bounded? bounded; } '''); - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' import 'b.dart'; @B.named1() diff --git a/pkg/analyzer/test/generated/non_hint_code_test.dart b/pkg/analyzer/test/generated/non_hint_code_test.dart index 779877b0e5b..65fe7d5cd2c 100644 --- a/pkg/analyzer/test/generated/non_hint_code_test.dart +++ b/pkg/analyzer/test/generated/non_hint_code_test.dart @@ -209,7 +209,7 @@ import 'package:somepackage/other.dart'; List expectedDiagnostics, ) async { var file = newFile(path, content); - result = await resolveFile(file); + var result = await resolveFile(file); var diagnosticListener = GatheringDiagnosticListener(); diagnosticListener.addAll(result.diagnostics); diff --git a/pkg/analyzer/test/generated/simple_resolver_test.dart b/pkg/analyzer/test/generated/simple_resolver_test.dart index 0f565273b06..8a04a29ab6a 100644 --- a/pkg/analyzer/test/generated/simple_resolver_test.dart +++ b/pkg/analyzer/test/generated/simple_resolver_test.dart @@ -448,7 +448,7 @@ void f() { main() {} '''); - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' export 'a.dart'; '''); @@ -460,7 +460,7 @@ export 'a.dart'; } test_entryPoint_local() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' main() {} '''); @@ -472,7 +472,7 @@ main() {} } test_entryPoint_none() async { - await resolveTestCodeWithDiagnostics(''); + var result = await resolveTestCodeWithDiagnostics(''); var library = result.libraryElement; expect(library.entryPoint, isNull); @@ -1071,7 +1071,7 @@ Annotation } test_metadata_libraryDirective() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' @A library lib; const A = null;'''); diff --git a/pkg/analyzer/test/generated/static_type_analyzer_test.dart b/pkg/analyzer/test/generated/static_type_analyzer_test.dart index b6192184dd1..f6e5cc9952d 100644 --- a/pkg/analyzer/test/generated/static_type_analyzer_test.dart +++ b/pkg/analyzer/test/generated/static_type_analyzer_test.dart @@ -24,7 +24,7 @@ test() => 'a' 'b'; '''); expect( result.findNode.adjacentStrings("'a' 'b'").staticType, - same(typeProvider.stringType), + same(result.typeProvider.stringType), ); } @@ -44,7 +44,9 @@ late B b; var result = await resolveTestCodeWithDiagnostics(''' test(Future> e) async => await e; '''); - InterfaceType futureIntType = typeProvider.futureType(typeProvider.intType); + InterfaceType futureIntType = result.typeProvider.futureType( + result.typeProvider.intType, + ); expect( result.findNode.awaitExpression('await e').staticType, futureIntType, @@ -56,7 +58,7 @@ test(Future> e) async => await e; test(Future e) async => await e; '''); // await e, where e has type Future - InterfaceType intType = typeProvider.intType; + InterfaceType intType = result.typeProvider.intType; expect(result.findNode.awaitExpression('await e').staticType, intType); } @@ -66,7 +68,7 @@ test() => false; '''); expect( result.findNode.booleanLiteral('false').staticType, - same(typeProvider.boolType), + same(result.typeProvider.boolType), ); } @@ -76,7 +78,7 @@ test() => true; '''); expect( result.findNode.booleanLiteral('true').staticType, - same(typeProvider.boolType), + same(result.typeProvider.boolType), ); } @@ -86,7 +88,7 @@ test(String a) => a..length; '''); expect( result.findNode.cascade('a..length').staticType, - typeProvider.stringType, + result.typeProvider.stringType, ); } @@ -96,7 +98,7 @@ test(bool b) => b ? 1.0 : 0; '''); expect( result.findNode.conditionalExpression('b ? 1.0 : 0').staticType, - typeProvider.numType, + result.typeProvider.numType, ); } @@ -106,7 +108,7 @@ test(bool b) => b ? 1 : 0; '''); expect( result.findNode.conditionalExpression('b ? 1 : 0').staticType, - same(typeProvider.intType), + same(result.typeProvider.intType), ); } @@ -116,7 +118,7 @@ test() => 4.33; '''); expect( result.findNode.doubleLiteral('4.33').staticType, - same(typeProvider.doubleType), + same(result.typeProvider.doubleType), ); } @@ -163,7 +165,7 @@ late C c; test() => 42; '''); var node = result.findNode.integerLiteral('42'); - expect(node.staticType, same(typeProvider.intType)); + expect(node.staticType, same(result.typeProvider.intType)); } test_visitIsExpression_negated() async { @@ -172,7 +174,7 @@ test(Object a) => a is! String; '''); expect( result.findNode.isExpression('a is! String').staticType, - same(typeProvider.boolType), + same(result.typeProvider.boolType), ); } @@ -182,7 +184,7 @@ test(Object a) => a is String; '''); expect( result.findNode.isExpression('a is String').staticType, - same(typeProvider.boolType), + same(result.typeProvider.boolType), ); } @@ -199,7 +201,7 @@ test() => null; '''); expect( result.findNode.nullLiteral('null').staticType, - same(typeProvider.nullType), + same(result.typeProvider.nullType), ); } @@ -209,7 +211,7 @@ test() => (0); '''); expect( result.findNode.parenthesized('(0)').staticType, - same(typeProvider.intType), + same(result.typeProvider.intType), ); } @@ -219,7 +221,7 @@ test() => 'a'; '''); expect( result.findNode.stringLiteral("'a'").staticType, - same(typeProvider.stringType), + same(result.typeProvider.stringType), ); } @@ -229,7 +231,7 @@ test() => "a${'b'}c"; '''); expect( result.findNode.stringInterpolation(r'''"a${'b'}c"''').staticType, - same(typeProvider.stringType), + same(result.typeProvider.stringType), ); } @@ -253,7 +255,7 @@ test() => #a; '''); expect( result.findNode.symbolLiteral('#a').staticType, - same(typeProvider.symbolType), + same(result.typeProvider.symbolType), ); } @@ -274,6 +276,6 @@ late B b; test() => throw 0; '''); var node = result.findNode.throw_('throw 0'); - expect(node.staticType, same(typeProvider.bottomType)); + expect(node.staticType, same(result.typeProvider.bottomType)); } } diff --git a/pkg/analyzer/test/generated/strong_mode_test.dart b/pkg/analyzer/test/generated/strong_mode_test.dart index 0abb3f2ec59..651ff25c4c6 100644 --- a/pkg/analyzer/test/generated/strong_mode_test.dart +++ b/pkg/analyzer/test/generated/strong_mode_test.dart @@ -67,14 +67,13 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { late final AsserterBuilder _hasElement; - CompilationUnit get unit => result.unit; - @override Future resolveTestFile() async { var result = await super.resolveTestFile(); var assertions = _assertions; if (assertions == null) { + var typeProvider = result.typeProvider; assertions = _assertions = TypeAssertions(typeProvider); _isType = assertions.isType; _hasElement = assertions.hasElement; @@ -123,10 +122,14 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { Future g5() async { return await new Future.value(3); } } '''; - await resolveTestCode(code); + var result = await resolveTestCode(code); void check(String name, Asserter typeTest) { - MethodDeclaration test = AstFinder.getMethodInClass(unit, "A", name); + MethodDeclaration test = AstFinder.getMethodInClass( + result.unit, + "A", + name, + ); FunctionBody body = test.body; Expression returnExp; if (body is ExpressionFunctionBody) { @@ -178,10 +181,13 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { Future g4() async { return new Future.value(3); } Future g5() async { return await new Future.value(3); } '''; - await resolveTestCode(code); + var result = await resolveTestCode(code); void check(String name, Asserter typeTest) { - FunctionDeclaration test = AstFinder.getTopLevelFunction(unit, name); + FunctionDeclaration test = AstFinder.getTopLevelFunction( + result.unit, + name, + ); var body = test.functionExpression.body; Expression returnExp; if (body is ExpressionFunctionBody) { @@ -225,9 +231,9 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { A a = new A()..map(0, (x) => [x]); } '''; - await resolveTestCode(code); + var result = await resolveTestCode(code); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); CascadeExpression fetch(int i) { @@ -237,7 +243,10 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { return exp; } - var elementA = AstFinder.getClass(unit, "A").declaredFragment!.element; + var elementA = AstFinder.getClass( + result.unit, + "A", + ).declaredFragment!.element; CascadeExpression cascade = fetch(0); _isInstantiationOf(_hasElement(elementA))([_isInt])(cascade.typeOrThrow); @@ -245,14 +254,14 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { var function = invoke.argumentList.arguments[1] as FunctionExpression; ExecutableElement f0 = function.declaredFragment!.element; _isListOf(_isInt)(f0.type.returnType as InterfaceType); - expect(f0.type.normalParameterTypes[0], typeProvider.intType); + expect(f0.type.normalParameterTypes[0], result.typeProvider.intType); } test_constrainedByBounds1() async { // Test that upwards inference with two type variables correctly // propagates from the constrained variable to the unconstrained // variable if they are ordered left to right. - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' T f(S x) => null; // ^^^^ // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function 'f' because it has a return type of 'T'. @@ -262,7 +271,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "test", ); var stmt = statements[0] as VariableDeclarationStatement; @@ -275,7 +284,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { // Test that upwards inference with two type variables does // propagate from the constrained variable to the unconstrained // variable if they are ordered right to left. - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' T f(S x) => null; // ^^^^ // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function 'f' because it has a return type of 'T'. @@ -285,7 +294,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "test", ); var stmt = statements[0] as VariableDeclarationStatement; @@ -295,7 +304,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { } test_constrainedByBounds3() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' T f(S x) => null; // ^^^^ // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function 'f' because it has a return type of 'T'. @@ -305,7 +314,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "test", ); var stmt = statements[0] as VariableDeclarationStatement; @@ -319,7 +328,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { // propagates from the constrained variable to the unconstrained // variable if they are ordered left to right, when the variable // appears co and contra variantly - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' typedef To Func1(From x); T f>(S x) => null; // ^^^^ @@ -330,7 +339,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "test", ); var stmt = statements[0] as VariableDeclarationStatement; @@ -350,7 +359,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { T f, S>(S x) => null; void test() { var x = f(3)(null); } '''; - await assertErrorsInCode(code, [ + var result = await assertErrorsInCode(code, [ error(diag.returnOfInvalidTypeFromFunction, 82, 4), error(diag.unusedLocalVariable, 110, 1), error(diag.couldNotInfer, 114, 1), @@ -358,7 +367,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { ]); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "test", ); var stmt = statements[0] as VariableDeclarationStatement; @@ -374,9 +383,9 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { A() : this.x = []; } '''; - await resolveTestCodeWithDiagnostics(code); + var result = await resolveTestCodeWithDiagnostics(code); ConstructorDeclaration constructor = AstFinder.getConstructorInClass( - unit, + result.unit, "A", null, ); @@ -386,7 +395,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { } test_factoryConstructor_propagation() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class A { factory A() { return new B(); } } @@ -396,7 +405,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { '''); ConstructorDeclaration constructor = AstFinder.getConstructorInClass( - unit, + result.unit, "A", null, ); @@ -404,11 +413,11 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { var stmt = body.block.statements[0] as ReturnStatement; var exp = stmt.expression as InstanceCreationExpression; ClassElement elementB = AstFinder.getClass( - unit, + result.unit, "B", ).declaredFragment!.element; ClassElement elementA = AstFinder.getClass( - unit, + result.unit, "A", ).declaredFragment!.element; var type = exp.constructorName.type.typeOrThrow as InterfaceType; @@ -428,15 +437,19 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { List f0 = ["hello"]; } '''; - await resolveTestCodeWithDiagnostics(code); + var result = await resolveTestCodeWithDiagnostics(code); - VariableDeclaration field = AstFinder.getFieldInClass(unit, "A", "f0"); + VariableDeclaration field = AstFinder.getFieldInClass( + result.unit, + "A", + "f0", + ); _isListOf(_isString)(field.initializer!.staticType as InterfaceType); } test_functionDeclaration_body_propagation() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' typedef T Function2(S x); List test1() => []; @@ -453,12 +466,15 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { Asserter assertListOfInt = _isListOf(_isInt); - FunctionDeclaration test1 = AstFinder.getTopLevelFunction(unit, "test1"); + FunctionDeclaration test1 = AstFinder.getTopLevelFunction( + result.unit, + "test1", + ); var body = test1.functionExpression.body as ExpressionFunctionBody; assertListOfInt(body.expression.staticType as InterfaceType); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "test2", ); @@ -468,19 +484,19 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { var return0 = body0.block.statements[0] as ReturnStatement; Expression anon0 = return0.expression!; var type0 = anon0.staticType as FunctionType; - expect(type0.returnType, typeProvider.intType); - expect(type0.normalParameterTypes[0], typeProvider.stringType); + expect(type0.returnType, result.typeProvider.intType); + expect(type0.normalParameterTypes[0], result.typeProvider.stringType); var anon1 = (statements[1] as ReturnStatement).expression as FunctionExpression; FunctionType type1 = anon1.declaredFragment!.element.type; - expect(type1.returnType, typeProvider.intType); - expect(type1.normalParameterTypes[0], typeProvider.intType); + expect(type1.returnType, result.typeProvider.intType); + expect(type1.normalParameterTypes[0], result.typeProvider.intType); } test_functionLiteral_assignment_typedArguments() async { - await resolveTestCodeWithDiagnostics(r''' - typedef T Function2(S x); + var result = await resolveTestCodeWithDiagnostics(r''' + typedef T Function2(S x); void main () { Function2 l0 = (int x) => null; @@ -510,7 +526,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); DartType literal(int i) { @@ -528,7 +544,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { } test_functionLiteral_assignment_unTypedArguments() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' typedef T Function2(S x); void main () { @@ -557,7 +573,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); DartType literal(int i) { @@ -575,7 +591,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { } test_functionLiteral_body_propagation() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' typedef T Function2(S x); void main () { @@ -601,7 +617,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); Expression functionReturnValue(int i) { @@ -625,7 +641,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { } test_functionLiteral_functionExpressionInvocation_typedArguments() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class Mapper { T map(T mapper(F x)) => mapper(null); // ^^^^ @@ -650,7 +666,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); DartType literal(int i) { @@ -668,7 +684,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { } test_functionLiteral_functionExpressionInvocation_unTypedArguments() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class Mapper { T map(T mapper(F x)) => mapper(null); // ^^^^ @@ -691,7 +707,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); DartType literal(int i) { @@ -709,7 +725,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { } test_functionLiteral_functionInvocation_typedArguments() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' String map(String mapper(int x)) => mapper(null); // ^^^^ // [diag.argumentTypeNotAssignable] The argument type 'Null' can't be assigned to the parameter type 'int'. @@ -732,7 +748,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); DartType literal(int i) { @@ -750,7 +766,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { } test_functionLiteral_functionInvocation_unTypedArguments() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' String map(String mapper(int x)) => mapper(null); // ^^^^ // [diag.argumentTypeNotAssignable] The argument type 'Null' can't be assigned to the parameter type 'int'. @@ -771,7 +787,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); DartType literal(int i) { @@ -789,7 +805,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { } test_functionLiteral_methodInvocation_typedArguments() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class Mapper { T map(T mapper(F x)) => mapper(null); // ^^^^ @@ -814,7 +830,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); DartType literal(int i) { @@ -832,7 +848,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { } test_functionLiteral_methodInvocation_unTypedArguments() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class Mapper { T map(T mapper(F x)) => mapper(null); // ^^^^ @@ -855,7 +871,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); DartType literal(int i) { @@ -873,7 +889,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { } test_functionLiteral_unTypedArgument_propagation() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' typedef T Function2(S x); void main () { @@ -900,7 +916,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); Expression functionReturnValue(int i) { @@ -916,11 +932,11 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { } } - expect(functionReturnValue(0).staticType, typeProvider.intType); - expect(functionReturnValue(1).staticType, typeProvider.intType); - expect(functionReturnValue(2).staticType, typeProvider.intType); + expect(functionReturnValue(0).staticType, result.typeProvider.intType); + expect(functionReturnValue(1).staticType, result.typeProvider.intType); + expect(functionReturnValue(2).staticType, result.typeProvider.intType); expect(functionReturnValue(3).staticType, InvalidTypeImpl.instance); - expect(functionReturnValue(4).staticType, typeProvider.stringType); + expect(functionReturnValue(4).staticType, result.typeProvider.stringType); } test_futureOr_assignFromFuture() async { @@ -1288,7 +1304,7 @@ class StrongModeLocalInferenceTest extends PubPackageResolutionTest { // type schemas correctly. Downwards inference in a partial context // (e.g. Map) should still allow upwards inference to fill // in the missing information. - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class A { A(T x); A.fromA(A a) {} @@ -1321,9 +1337,12 @@ void test() { } '''); - Element elementA = AstFinder.getClass(unit, "A").declaredFragment!.element; + Element elementA = AstFinder.getClass( + result.unit, + "A", + ).declaredFragment!.element; List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "test", ); void check(int i) { @@ -1353,7 +1372,10 @@ void test() { '''); DartType cType = result.findElement.localVar('c').type; - Element elementC = AstFinder.getClass(unit, "C").declaredFragment!.element; + Element elementC = AstFinder.getClass( + result.unit, + "C", + ).declaredFragment!.element; _isInstantiationOf(_hasElement(elementC))([_isType])(cType); } @@ -1368,12 +1390,12 @@ test() { var h = g((int x) => 42.0); } '''; - await assertErrorsInCode(code, [ + var result = await assertErrorsInCode(code, [ error(diag.unusedLocalVariable, 84, 1), error(diag.couldNotInfer, 88, 1), error(diag.argumentTypeNotAssignable, 90, 15), ]); - _expectInferenceError(r''' + _expectInferenceError(result, r''' Couldn't infer type parameter 'T'. Tried to infer 'double' for 'T' which doesn't work: @@ -1395,13 +1417,13 @@ test() { var h = g((int x) => 42.0, (double x) => 42); } '''; - await assertErrorsInCode(code, [ + var result = await assertErrorsInCode(code, [ error(diag.unusedLocalVariable, 95, 1), error(diag.couldNotInfer, 99, 1), error(diag.argumentTypeNotAssignable, 101, 15), error(diag.argumentTypeNotAssignable, 118, 16), ]); - _expectInferenceError(r''' + _expectInferenceError(result, r''' Couldn't infer type parameter 'T'. Tried to infer 'num' for 'T' which doesn't work: @@ -1503,12 +1525,12 @@ test() { F h = g(42); } '''; - await assertErrorsInCode(code, [ + var result = await assertErrorsInCode(code, [ error(diag.unusedLocalVariable, 80, 1), error(diag.couldNotInfer, 84, 1), error(diag.invalidAssignment, 84, 5), ]); - _expectInferenceError(r''' + _expectInferenceError(result, r''' Couldn't infer type parameter 'T'. Tried to infer 'num' for 'T' which doesn't work: @@ -2169,7 +2191,7 @@ MethodInvocation get map => { 43: [] }; } '''; - await resolveTestCodeWithDiagnostics(code); + var result = await resolveTestCodeWithDiagnostics(code); Asserter assertListOfInt = _isListOf(_isInt); Asserter assertMapOfIntToListOfInt = _isMapOf( @@ -2177,8 +2199,16 @@ MethodInvocation (DartType type) => assertListOfInt(type as InterfaceType), ); - VariableDeclaration mapB = AstFinder.getFieldInClass(unit, "B", "map"); - MethodDeclaration mapC = AstFinder.getMethodInClass(unit, "C", "map"); + VariableDeclaration mapB = AstFinder.getFieldInClass( + result.unit, + "B", + "map", + ); + MethodDeclaration mapC = AstFinder.getMethodInClass( + result.unit, + "C", + "map", + ); assertMapOfIntToListOfInt( mapB.declaredFragment!.element.type as InterfaceType, ); @@ -2201,7 +2231,7 @@ MethodInvocation } test_instanceCreation() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class A { S x; T y; @@ -2441,12 +2471,30 @@ MethodInvocation void hasType(Asserter assertion, Expression exp) => assertion(exp.typeOrThrow); - Element elementA = AstFinder.getClass(unit, "A").declaredFragment!.element; - Element elementB = AstFinder.getClass(unit, "B").declaredFragment!.element; - Element elementC = AstFinder.getClass(unit, "C").declaredFragment!.element; - Element elementD = AstFinder.getClass(unit, "D").declaredFragment!.element; - Element elementE = AstFinder.getClass(unit, "E").declaredFragment!.element; - Element elementF = AstFinder.getClass(unit, "F").declaredFragment!.element; + Element elementA = AstFinder.getClass( + result.unit, + "A", + ).declaredFragment!.element; + Element elementB = AstFinder.getClass( + result.unit, + "B", + ).declaredFragment!.element; + Element elementC = AstFinder.getClass( + result.unit, + "C", + ).declaredFragment!.element; + Element elementD = AstFinder.getClass( + result.unit, + "D", + ).declaredFragment!.element; + Element elementE = AstFinder.getClass( + result.unit, + "E", + ).declaredFragment!.element; + Element elementF = AstFinder.getClass( + result.unit, + "F", + ).declaredFragment!.element; AsserterBuilder>, DartType> assertAOf = _isInstantiationOf(_hasElement(elementA)); @@ -2463,7 +2511,7 @@ MethodInvocation { List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "test0", ).cast(); @@ -2478,7 +2526,7 @@ MethodInvocation { List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "test1", ).cast(); hasType(assertAOf([_isInt, _isString]), rhs(statements[0])); @@ -2487,7 +2535,7 @@ MethodInvocation { List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "test2", ).cast(); hasType(assertBOf([_isString, _isInt]), rhs(statements[0])); @@ -2500,7 +2548,7 @@ MethodInvocation { List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "test3", ).cast(); hasType(assertBOf([_isString, _isInt]), rhs(statements[0])); @@ -2509,7 +2557,7 @@ MethodInvocation { List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "test4", ).cast(); hasType(assertCOf([_isInt]), rhs(statements[0])); @@ -2522,7 +2570,7 @@ MethodInvocation { List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "test5", ).cast(); hasType(assertCOf([_isInt]), rhs(statements[0])); @@ -2534,7 +2582,7 @@ MethodInvocation // context. We could choose a tighter type, but currently // we just use dynamic. List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "test6", ).cast(); hasType(assertDOf([_isDynamic, _isString]), rhs(statements[0])); @@ -2547,7 +2595,7 @@ MethodInvocation { List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "test7", ).cast(); hasType(assertDOf([_isDynamic, _isString]), rhs(statements[0])); @@ -2556,7 +2604,7 @@ MethodInvocation { List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "test8", ).cast(); hasType(assertEOf([_isInt, _isString]), rhs(statements[0])); @@ -2564,7 +2612,7 @@ MethodInvocation { List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "test9", ).cast(); hasType(assertFOf([_isInt, _isString]), rhs(statements[0])); @@ -2577,7 +2625,7 @@ MethodInvocation } test_listLiteral_nested() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' void main () { List> l0 = [[]]; // ^^ @@ -2597,7 +2645,7 @@ MethodInvocation '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); ListLiteral literal(int i) { @@ -2629,7 +2677,7 @@ MethodInvocation } test_listLiteral_simple() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' void main () { List l0 = []; // ^^ @@ -2651,7 +2699,7 @@ MethodInvocation '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); DartType literal(int i) { @@ -2670,7 +2718,7 @@ MethodInvocation } test_listLiteral_simple_const() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' void main () { const List c0 = const []; // ^^ @@ -2692,7 +2740,7 @@ MethodInvocation '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); DartType literal(int i) { @@ -2711,7 +2759,7 @@ MethodInvocation } test_listLiteral_simple_disabled() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' void main () { List l0 = []; // ^^ @@ -2737,7 +2785,7 @@ MethodInvocation '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); DartType literal(int i) { @@ -2754,7 +2802,7 @@ MethodInvocation } test_listLiteral_simple_subtype() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' void main () { Iterable l0 = []; // ^^ @@ -2776,7 +2824,7 @@ MethodInvocation '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); InterfaceType literal(int i) { @@ -2795,7 +2843,7 @@ MethodInvocation } test_mapLiteral_nested() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' void main () { Map> l0 = {}; // ^^ @@ -2824,7 +2872,7 @@ MethodInvocation '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); SetOrMapLiteral literal(int i) { @@ -2865,7 +2913,7 @@ MethodInvocation } test_mapLiteral_simple() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' void main () { Map l0 = {}; // ^^ @@ -2894,7 +2942,7 @@ MethodInvocation '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); InterfaceType literal(int i) { @@ -2916,7 +2964,7 @@ MethodInvocation } test_mapLiteral_simple_disabled() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' void main () { Map l0 = {}; // ^^ @@ -2944,7 +2992,7 @@ MethodInvocation '''); List statements = AstFinder.getStatementsInTopLevelFunction( - unit, + result.unit, "main", ); InterfaceType literal(int i) { @@ -2966,7 +3014,7 @@ MethodInvocation } test_methodDeclaration_body_propagation() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class A { List m0(int x) => ["hello"]; List m1(int x) {return [3];} @@ -2977,7 +3025,7 @@ MethodInvocation Expression methodReturnValue(String methodName) { MethodDeclaration method = AstFinder.getMethodInClass( - unit, + result.unit, "A", methodName, ); @@ -2999,7 +3047,7 @@ MethodInvocation // Test that downwards inference with a partial type // correctly uses the partial information to fill in subterm // types - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' typedef To Func1(From x); S f(Func1 g) => null; // ^^^^ @@ -3007,7 +3055,10 @@ MethodInvocation String test() => f((l) => l.length); '''); - FunctionDeclaration test = AstFinder.getTopLevelFunction(unit, "test"); + FunctionDeclaration test = AstFinder.getTopLevelFunction( + result.unit, + "test", + ); var body = test.functionExpression.body as ExpressionFunctionBody; _isString(body.expression.typeOrThrow); var invoke = body.expression as MethodInvocation; @@ -3021,7 +3072,7 @@ MethodInvocation // Test that downwards inference with two different downwards covariant // constraints on the same parameter correctly fails to infer when // the types do not share a common subtype - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class A { S s; // ^ @@ -3036,11 +3087,17 @@ MethodInvocation // [diag.argumentTypeNotAssignable] The argument type 'int' can't be assigned to the parameter type 'Never'. '''); - FunctionDeclaration test = AstFinder.getTopLevelFunction(unit, "test"); + FunctionDeclaration test = AstFinder.getTopLevelFunction( + result.unit, + "test", + ); var body = test.functionExpression.body as ExpressionFunctionBody; DartType type = body.expression.typeOrThrow; - Element elementB = AstFinder.getClass(unit, "B").declaredFragment!.element; + Element elementB = AstFinder.getClass( + result.unit, + "B", + ).declaredFragment!.element; _isInstantiationOf(_hasElement(elementB))([_isNever])(type); } @@ -3048,7 +3105,7 @@ MethodInvocation test_pinning_multipleConstraints2() async { // Test that downwards inference with two identical downwards covariant // constraints on the same parameter correctly infers and pins the type - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class A { S s; // ^ @@ -3061,11 +3118,17 @@ MethodInvocation A test() => new B(3); '''); - FunctionDeclaration test = AstFinder.getTopLevelFunction(unit, "test"); + FunctionDeclaration test = AstFinder.getTopLevelFunction( + result.unit, + "test", + ); var body = test.functionExpression.body as ExpressionFunctionBody; DartType type = body.expression.typeOrThrow; - Element elementB = AstFinder.getClass(unit, "B").declaredFragment!.element; + Element elementB = AstFinder.getClass( + result.unit, + "B", + ).declaredFragment!.element; _isInstantiationOf(_hasElement(elementB))([_isNum])(type); } @@ -3074,7 +3137,7 @@ MethodInvocation // Test that downwards inference with two different downwards covariant // constraints on the same parameter correctly fails to infer when // the types do not share a common subtype, but do share a common supertype - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class A { S s; // ^ @@ -3089,11 +3152,17 @@ MethodInvocation // [diag.argumentTypeNotAssignable] The argument type 'int' can't be assigned to the parameter type 'Never'. '''); - FunctionDeclaration test = AstFinder.getTopLevelFunction(unit, "test"); + FunctionDeclaration test = AstFinder.getTopLevelFunction( + result.unit, + "test", + ); var body = test.functionExpression.body as ExpressionFunctionBody; DartType type = body.expression.typeOrThrow; - Element elementB = AstFinder.getClass(unit, "B").declaredFragment!.element; + Element elementB = AstFinder.getClass( + result.unit, + "B", + ).declaredFragment!.element; _isInstantiationOf(_hasElement(elementB))([_isNever])(type); } @@ -3102,7 +3171,7 @@ MethodInvocation // Test that downwards inference with two subtype related downwards // covariant constraints on the same parameter correctly infers and pins // the type - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class A { S s; // ^ @@ -3115,11 +3184,17 @@ MethodInvocation A test() => new B(); '''); - FunctionDeclaration test = AstFinder.getTopLevelFunction(unit, "test"); + FunctionDeclaration test = AstFinder.getTopLevelFunction( + result.unit, + "test", + ); var body = test.functionExpression.body as ExpressionFunctionBody; DartType type = body.expression.typeOrThrow; - Element elementB = AstFinder.getClass(unit, "B").declaredFragment!.element; + Element elementB = AstFinder.getClass( + result.unit, + "B", + ).declaredFragment!.element; _isInstantiationOf(_hasElement(elementB))([_isInt])(type); } @@ -3128,7 +3203,7 @@ MethodInvocation // Test that downwards inference with two different downwards contravariant // constraints on the same parameter chooses the upper bound // when the only supertype is Object - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class A { S s; // ^ @@ -3143,12 +3218,18 @@ MethodInvocation Contra1> test() => mkA(); '''); - FunctionDeclaration test = AstFinder.getTopLevelFunction(unit, "test"); + FunctionDeclaration test = AstFinder.getTopLevelFunction( + result.unit, + "test", + ); var body = test.functionExpression.body as ExpressionFunctionBody; var functionType = body.expression.staticType as FunctionType; DartType type = functionType.normalParameterTypes[0]; - Element elementA = AstFinder.getClass(unit, "A").declaredFragment!.element; + Element elementA = AstFinder.getClass( + result.unit, + "A", + ).declaredFragment!.element; _isInstantiationOf(_hasElement(elementA))([_isObject, _isObject])(type); } @@ -3156,7 +3237,7 @@ MethodInvocation test_pinning_multipleConstraints_contravariant2() async { // Test that downwards inference with two identical downwards contravariant // constraints on the same parameter correctly pins the type - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class A { S s; // ^ @@ -3171,12 +3252,18 @@ MethodInvocation Contra1> test() => mkA(); '''); - FunctionDeclaration test = AstFinder.getTopLevelFunction(unit, "test"); + FunctionDeclaration test = AstFinder.getTopLevelFunction( + result.unit, + "test", + ); var body = test.functionExpression.body as ExpressionFunctionBody; var functionType = body.expression.staticType as FunctionType; DartType type = functionType.normalParameterTypes[0]; - Element elementA = AstFinder.getClass(unit, "A").declaredFragment!.element; + Element elementA = AstFinder.getClass( + result.unit, + "A", + ).declaredFragment!.element; _isInstantiationOf(_hasElement(elementA))([_isNum, _isNum])(type); } @@ -3185,7 +3272,7 @@ MethodInvocation // Test that downwards inference with two different downwards contravariant // constraints on the same parameter correctly choose the least upper bound // when they share a common supertype - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class A { S s; // ^ @@ -3200,12 +3287,18 @@ MethodInvocation Contra1> test() => mkA(); '''); - FunctionDeclaration test = AstFinder.getTopLevelFunction(unit, "test"); + FunctionDeclaration test = AstFinder.getTopLevelFunction( + result.unit, + "test", + ); var body = test.functionExpression.body as ExpressionFunctionBody; var functionType = body.expression.staticType as FunctionType; DartType type = functionType.normalParameterTypes[0]; - Element elementA = AstFinder.getClass(unit, "A").declaredFragment!.element; + Element elementA = AstFinder.getClass( + result.unit, + "A", + ).declaredFragment!.element; _isInstantiationOf(_hasElement(elementA))([_isNum, _isNum])(type); } @@ -3214,7 +3307,7 @@ MethodInvocation // Test that downwards inference with two different downwards contravariant // constraints on the same parameter correctly choose the least upper bound // when one is a subtype of the other - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class A { S s; // ^ @@ -3229,12 +3322,18 @@ MethodInvocation Contra1> test() => mkA(); '''); - FunctionDeclaration test = AstFinder.getTopLevelFunction(unit, "test"); + FunctionDeclaration test = AstFinder.getTopLevelFunction( + result.unit, + "test", + ); var body = test.functionExpression.body as ExpressionFunctionBody; var functionType = body.expression.staticType as FunctionType; DartType type = functionType.normalParameterTypes[0]; - Element elementA = AstFinder.getClass(unit, "A").declaredFragment!.element; + Element elementA = AstFinder.getClass( + result.unit, + "A", + ).declaredFragment!.element; _isInstantiationOf(_hasElement(elementA))([_isNum, _isNum])(type); } @@ -3249,9 +3348,9 @@ class B { factory B() = A.named; } '''; - await resolveTestCodeWithDiagnostics(code); + var result = await resolveTestCodeWithDiagnostics(code); - var b = unit.declarations[1] as ClassDeclaration; + var b = result.unit.declarations[1] as ClassDeclaration; var classBody = b.body as BlockClassBody; var bConstructor = classBody.members[0] as ConstructorDeclaration; var redirected = bConstructor.redirectedConstructor as ConstructorName; @@ -3275,7 +3374,7 @@ class A { } test_redirectedConstructor_unnamed() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class A implements B { A(); } @@ -3305,10 +3404,10 @@ class B { A.named(List x); } '''; - await resolveTestCodeWithDiagnostics(code); + var result = await resolveTestCodeWithDiagnostics(code); ConstructorDeclaration constructor = AstFinder.getConstructorInClass( - unit, + result.unit, "A", null, ); @@ -3321,7 +3420,7 @@ class B { test_returnType_variance1() async { // Check that downwards inference correctly pins a type parameter // when the parameter is constrained in a contravariant position - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' typedef To Func1(From x); Func1 f(T x) => null; // ^^^^ @@ -3329,7 +3428,10 @@ class B { Func1 test() => f(42); '''); - FunctionDeclaration test = AstFinder.getTopLevelFunction(unit, "test"); + FunctionDeclaration test = AstFinder.getTopLevelFunction( + result.unit, + "test", + ); var body = test.functionExpression.body as ExpressionFunctionBody; var invoke = body.expression as MethodInvocation; _isFunction2Of(_isNum, _isFunction2Of(_isNum, _isString))( @@ -3340,7 +3442,7 @@ class B { test_returnType_variance2() async { // Check that downwards inference correctly pins a type parameter // when the parameter is constrained in a covariant position - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' typedef To Func1(From x); Func1 f(T x) => null; // ^^^^ @@ -3348,7 +3450,10 @@ class B { Func1 test() => f(42); '''); - FunctionDeclaration test = AstFinder.getTopLevelFunction(unit, "test"); + FunctionDeclaration test = AstFinder.getTopLevelFunction( + result.unit, + "test", + ); var body = test.functionExpression.body as ExpressionFunctionBody; var invoke = body.expression as MethodInvocation; _isFunction2Of(_isNum, _isFunction2Of(_isString, _isNum))( @@ -3360,7 +3465,7 @@ class B { // Check that the variance heuristic chooses the most precise type // when the return type uses the variable in a contravariant position // and there is no downwards constraint. - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' typedef To Func1(From x); Func1 f(T x, g(T x)) => null; // ^^^^ @@ -3368,7 +3473,10 @@ class B { dynamic test() => f(42, (num x) => x); '''); - FunctionDeclaration test = AstFinder.getTopLevelFunction(unit, "test"); + FunctionDeclaration test = AstFinder.getTopLevelFunction( + result.unit, + "test", + ); var body = test.functionExpression.body as ExpressionFunctionBody; var functionType = body.expression.staticType as FunctionType; DartType type = functionType.normalParameterTypes[0]; @@ -3379,7 +3487,7 @@ class B { // Check that the variance heuristic chooses the more precise type // when the return type uses the variable in a covariant position // and there is no downwards constraint - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' typedef To Func1(From x); Func1 f(T x, g(T x)) => null; // ^^^^ @@ -3387,7 +3495,10 @@ class B { dynamic test() => f(42, (num x) => x); '''); - FunctionDeclaration test = AstFinder.getTopLevelFunction(unit, "test"); + FunctionDeclaration test = AstFinder.getTopLevelFunction( + result.unit, + "test", + ); var body = test.functionExpression.body as ExpressionFunctionBody; var functionType = body.expression.staticType as FunctionType; DartType type = functionType.returnType; @@ -3397,7 +3508,7 @@ class B { test_returnType_variance5() async { // Check that pinning works correctly with a partial type // when the return type uses the variable in a contravariant position - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' typedef To Func1(From x); Func1 f(T x) => null; // ^^^^ @@ -3408,7 +3519,10 @@ class B { num test() => g(f(3)); '''); - FunctionDeclaration test = AstFinder.getTopLevelFunction(unit, "test"); + FunctionDeclaration test = AstFinder.getTopLevelFunction( + result.unit, + "test", + ); var body = test.functionExpression.body as ExpressionFunctionBody; var call = body.expression as MethodInvocation; _isNum(call.typeOrThrow); @@ -3420,7 +3534,7 @@ class B { test_returnType_variance6() async { // Check that pinning works correctly with a partial type // when the return type uses the variable in a covariant position - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' typedef To Func1(From x); Func1 f(T x) => null; // ^^^^ @@ -3431,7 +3545,10 @@ class B { num test() => g(f(3)); '''); - FunctionDeclaration test = AstFinder.getTopLevelFunction(unit, "test"); + FunctionDeclaration test = AstFinder.getTopLevelFunction( + result.unit, + "test", + ); var body = test.functionExpression.body as ExpressionFunctionBody; var call = body.expression as MethodInvocation; _isNum(call.typeOrThrow); @@ -3449,10 +3566,10 @@ class B { A() : super([]); } '''; - await resolveTestCodeWithDiagnostics(code); + var result = await resolveTestCodeWithDiagnostics(code); ConstructorDeclaration constructor = AstFinder.getConstructorInClass( - unit, + result.unit, "A", null, ); @@ -3463,7 +3580,10 @@ class B { /// Verifies the result has [diag.couldNotInfer] with /// the expected [errorMessage]. - void _expectInferenceError(String errorMessage) { + void _expectInferenceError( + TestResolvedUnitResult result, + String errorMessage, + ) { var errors = result.diagnostics .where((e) => e.diagnosticCode == diag.couldNotInfer) .map((e) => e.message) @@ -3492,9 +3612,12 @@ import "dart:async"; $code """; - await assertErrorsInCode(fullCode, expectedDiagnostics); + var result = await assertErrorsInCode(fullCode, expectedDiagnostics); - FunctionDeclaration test = AstFinder.getTopLevelFunction(unit, "test"); + FunctionDeclaration test = AstFinder.getTopLevelFunction( + result.unit, + "test", + ); var body = test.functionExpression.body as ExpressionFunctionBody; return body.expression as MethodInvocation; } @@ -3789,7 +3912,7 @@ class D { for (int i = 1; i <= 5; i++) { Expression exp = (statements[i] as ExpressionStatement).expression; - expect(exp.staticType, typeProvider.dynamicType); + expect(exp.staticType, result.typeProvider.dynamicType); } } @@ -3837,12 +3960,12 @@ main() { assertType(result.findElement.method('f').type, 'List Function(E)'); var cOfString = result.findElement.localVar('cOfString'); - var ft = inheritanceManager + var ft = result.inheritanceManager .getMember3(cOfString.type as InterfaceType, Name(null, 'f'))! .type; assertType(ft, 'List Function(String)'); assertType( - ft.instantiate([typeProvider.intType]), + ft.instantiate([result.typeProvider.intType]), 'List Function(String)', ); } @@ -3868,7 +3991,7 @@ main() { assertType(ft, 'List Function(String)'); var x = result.findElement.localVar('x'); - expect(x.type, typeProvider.listType(typeProvider.intType)); + expect(x.type, result.typeProvider.listType(result.typeProvider.intType)); } test_genericMethod_functionExpressionInvocation_explicit() async { @@ -4164,12 +4287,12 @@ main() { ); var cOfString = result.findElement.localVar('cOfString'); - var ft = inheritanceManager + var ft = result.inheritanceManager .getMember3(cOfString.type as InterfaceType, Name(null, 'f'))! .type; assertType(ft, 'List Function(T Function(String))'); assertType( - ft.instantiate([typeProvider.intType]), + ft.instantiate([result.typeProvider.intType]), 'List Function(int Function(String))', ); } diff --git a/pkg/analyzer/test/src/dart/analysis/driver_caching_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_caching_test.dart index 2a78c4cd656..489de5428a7 100644 --- a/pkg/analyzer/test/src/dart/analysis/driver_caching_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/driver_caching_test.dart @@ -311,8 +311,8 @@ void f() { '''); // We don't have any lints configured, so no errors. - await resolveTestFile(); - assertErrorsInResult([]); + var result = await resolveTestFile(); + assertErrorsInTestResult(result, []); // The summary for the library was linked. _assertContainsLinkedCycle({testFile}, andClear: true); @@ -327,7 +327,7 @@ void f() { ); // Check that the lint was run, and reported. - await resolveTestFile(); + result = await resolveTestFile(); _assertHasLintReported(result.diagnostics, 'prefer_is_not_empty'); // Lints don't affect summaries, nothing should be linked. diff --git a/pkg/analyzer/test/src/dart/analysis/driver_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_test.dart index f6cc9d23902..d25f1c81fbe 100644 --- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart @@ -33,7 +33,6 @@ import '../../../util/diff.dart'; import '../../../util/element_printer.dart'; import '../resolution/context_collection_resolution.dart'; import '../resolution/node_text_expectations.dart'; -import '../resolution/resolution.dart'; import 'result_printer.dart'; void main() { @@ -119,7 +118,7 @@ class AnalysisDriver_LintTest extends PubPackageResolutionTest test_getResolvedUnit_lint_existingFile() async { addTestFile(''); - await resolveTestFile(); + var result = await resolveTestFile(); // Existing/empty file triggers the lint. _assertHasLintReported( @@ -129,10 +128,10 @@ class AnalysisDriver_LintTest extends PubPackageResolutionTest } test_getResolvedUnit_lint_notExistingFile() async { - await resolveTestFile(); + var result = await resolveTestFile(); // No errors for a file that doesn't exist. - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); } void _assertHasLintReported(List diagnostics, String name) { diff --git a/pkg/analyzer/test/src/dart/analysis/index_test.dart b/pkg/analyzer/test/src/dart/analysis/index_test.dart index ed6928e0b87..1bd2b7686a8 100644 --- a/pkg/analyzer/test/src/dart/analysis/index_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/index_test.dart @@ -41,8 +41,12 @@ class ExpectedLocation { @reflectiveTest class IndexTest extends PubPackageResolutionTest with _IndexMixin { - void assertElementIndexText(Element element, String expected) { - var actual = _getRelationsText(element); + void assertElementIndexText( + TestResolvedUnitResult result, + Element element, + String expected, + ) { + var actual = _getRelationsText(result, element); if (actual != expected) { NodeTextExpectationsCollector.add(actual); printPrettyDiff(expected, actual); @@ -51,10 +55,11 @@ class IndexTest extends PubPackageResolutionTest with _IndexMixin { } void assertLibraryFragmentIndexText( + TestResolvedUnitResult result, LibraryFragmentImpl fragment, String expected, ) { - var actual = _getLibraryFragmentReferenceText(fragment); + var actual = _getLibraryFragmentReferenceText(result, fragment); if (actual != expected) { print(actual); NodeTextExpectationsCollector.add(actual); @@ -76,7 +81,7 @@ const myDiagnosticCode = 0; import 'diagnostic.dart'; '''); - await _indexTestUnit(r''' + var result = await _indexTestUnit(r''' import 'helper.dart'; void f() { @@ -84,16 +89,16 @@ void f() { } '''); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 46 4:13 |myDiagnosticCode| IS_REFERENCED_BY qualified '''); } test_ClassElement_emptyBody() async { - await _indexTestUnit(r''' + var result = await _indexTestUnit(r''' class C; '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); } test_ClassElement_hierarchy_class_extends() async { @@ -105,10 +110,10 @@ class A {} class B extends A {} class B_q extends p.A {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.class_('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 54 5:17 |A| IS_EXTENDED_BY 54 5:17 |A| IS_REFERENCED_BY 79 6:21 |A| IS_EXTENDED_BY qualified @@ -118,11 +123,11 @@ Prefixes: (unprefixed),p } test_ClassElement_hierarchy_class_extends_implicitObject() async { - await _indexTestUnit(''' + var result = await _indexTestUnit(''' class A {} '''); - var element = typeProvider.objectType.element; - assertElementIndexText(element, r''' + var element = result.typeProvider.objectType.element; + assertElementIndexText(result, element, r''' 6 1:7 || IS_EXTENDED_BY qualified '''); } @@ -136,10 +141,10 @@ class A {} class B implements A {} class B_q implements p.A {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.class_('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 57 5:20 |A| IS_IMPLEMENTED_BY 57 5:20 |A| IS_REFERENCED_BY 85 6:24 |A| IS_IMPLEMENTED_BY qualified @@ -157,13 +162,13 @@ class A {} class D extends Object with A {} class D_q extends Object with p.A {} '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.classUsedAsMixin, 66, 1), error(diag.classUsedAsMixin, 101, 3), ]); var element = result.findElement.class_('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 66 5:29 |A| IS_MIXED_IN_BY 66 5:29 |A| IS_REFERENCED_BY 103 6:33 |A| IS_MIXED_IN_BY qualified @@ -181,13 +186,13 @@ class A {} class D2 = Object with A; class D2_q = Object with p.A; '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.classUsedAsMixin, 61, 1), error(diag.classUsedAsMixin, 89, 3), ]); var element = result.findElement.class_('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 61 5:24 |A| IS_MIXED_IN_BY 61 5:24 |A| IS_REFERENCED_BY 91 6:28 |A| IS_MIXED_IN_BY qualified @@ -205,10 +210,10 @@ class A {} enum E implements A { v } enum E_q implements p.A { v } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.class_('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 56 5:19 |A| IS_IMPLEMENTED_BY 56 5:19 |A| IS_REFERENCED_BY 86 6:23 |A| IS_IMPLEMENTED_BY qualified @@ -226,10 +231,10 @@ class A {} extension type E(A it) implements A {} extension type E_q(A it) implements p.A {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.class_('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 55 5:18 |A| IS_REFERENCED_BY 72 5:35 |A| IS_IMPLEMENTED_BY 72 5:35 |A| IS_REFERENCED_BY @@ -249,10 +254,10 @@ class A {} mixin M implements A {} mixin M_q implements p.A {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.class_('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 57 5:20 |A| IS_IMPLEMENTED_BY 57 5:20 |A| IS_REFERENCED_BY 85 6:24 |A| IS_IMPLEMENTED_BY qualified @@ -270,10 +275,10 @@ class A {} mixin M2 on A {} mixin M2_q on p.A {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.class_('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 50 5:13 |A| CONSTRAINS 50 5:13 |A| IS_REFERENCED_BY 71 6:17 |A| CONSTRAINS qualified @@ -300,10 +305,10 @@ class A { @p.A.myConstant void f() {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.class_('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 44 4:9 |A| IS_REFERENCED_BY 57 5:9 |A| IS_REFERENCED_BY 107 9:2 |A| IS_REFERENCED_BY @@ -328,7 +333,7 @@ class B {} void f() {} '''); var element = result.findElement.class_('B'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 44 7:4 |B| IS_REFERENCED_BY '''); } @@ -342,7 +347,7 @@ void f(B p) { } '''); var element = result.findElement.class_('B'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 43 3:8 |B| IS_REFERENCED_BY 52 4:3 |B| IS_REFERENCED_BY '''); @@ -358,7 +363,7 @@ class A {} void f() {} '''); var element = result.findElement.class_('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 43 5:6 |A| IS_REFERENCED_BY 53 5:16 |A| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p @@ -372,7 +377,7 @@ Random v1; Random v2; '''); var element = result.findElement.importFind('dart:math').class_('Random'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 20 2:1 |Random| IS_REFERENCED_BY 31 3:1 |Random| IS_REFERENCED_BY '''); @@ -390,7 +395,7 @@ void f(A p) { } '''); var element = result.findNode.namedType('A p').element!; - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 27 3:8 |A| IS_REFERENCED_BY 36 4:3 |A| IS_REFERENCED_BY '''); @@ -407,10 +412,10 @@ void f() { p.A(); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.class_('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 51 6:3 |A| IS_REFERENCED_BY 60 7:5 |A| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p @@ -430,10 +435,10 @@ void f() { p.A.foo(); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.class_('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 75 8:3 |A| IS_REFERENCED_BY 88 9:5 |A| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p @@ -453,7 +458,7 @@ void f() { List v4; } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.unusedLocalVariable, 53, 2), error(diag.unusedLocalVariable, 63, 2), error(diag.unusedLocalVariable, 77, 2), @@ -461,7 +466,7 @@ void f() { ]); var element = result.findElement.class_('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 51 6:3 |A| IS_REFERENCED_BY 61 7:5 |A| IS_REFERENCED_BY qualified 74 8:8 |A| IS_REFERENCED_BY @@ -477,7 +482,7 @@ class A {} void f(({int foo, A bar}) r) {} '''); var element = result.findElement.class_('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 30 3:19 |A| IS_REFERENCED_BY '''); } @@ -489,7 +494,7 @@ class A {} void f((int, A) r) {} '''); var element = result.findElement.class_('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 25 3:14 |A| IS_REFERENCED_BY '''); } @@ -504,7 +509,7 @@ var v = A; var v_p = p.A; '''); var element = result.findElement.class_('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 46 5:9 |A| IS_REFERENCED_BY 61 6:13 |A| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p @@ -523,12 +528,12 @@ class A { '''); var constructor = result.findElement.constructor('foo'); - assertElementIndexText(constructor, r''' + assertElementIndexText(result, constructor, r''' 52 6:15 |.foo| IS_INVOKED_BY qualified '''); var method = result.findElement.method('foo'); - assertElementIndexText(method, r''' + assertElementIndexText(result, method, r''' 26 3:5 |foo| IS_INVOKED_BY '''); } @@ -550,12 +555,12 @@ void useConstructor() { A a = .foo(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedLocalVariable, 200, 1), ]); var element = result.findElement.constructor('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 |.foo| IS_REFERENCED_BY qualified 22 1:23 |.foo| IS_REFERENCED_BY qualified 71 4:19 |.foo| IS_INVOKED_BY qualified @@ -583,12 +588,12 @@ void useConstructor() { A a = .foo(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedLocalVariable, 191, 1), ]); var element = result.findElement.constructor('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 |.foo| IS_REFERENCED_BY qualified 22 1:23 |.foo| IS_REFERENCED_BY qualified 62 3:19 |.foo| IS_INVOKED_BY qualified @@ -617,12 +622,12 @@ void useConstructor() { A a = .foo(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedLocalVariable, 195, 1), ]); var element = result.findElement.constructor('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 |.foo| IS_REFERENCED_BY qualified 22 1:23 |.foo| IS_REFERENCED_BY qualified 67 4:17 |.foo| IS_INVOKED_BY qualified @@ -652,12 +657,12 @@ void useConstructor() { B b = .foo(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedLocalVariable, 218, 1), ]); var element = result.findElement.constructor('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 |.foo| IS_REFERENCED_BY qualified 22 1:23 |.foo| IS_REFERENCED_BY qualified 70 4:17 |.foo| IS_INVOKED_BY qualified @@ -686,12 +691,12 @@ void useConstructor() { A a = .new(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedLocalVariable, 170, 1), ]); var element = result.findElement.unnamedConstructor('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 || IS_REFERENCED_BY qualified 18 1:19 |.new| IS_REFERENCED_BY qualified 62 4:22 || IS_REFERENCED_BY qualified @@ -716,7 +721,7 @@ class B extends A { '''); var element = result.findElement.unnamedConstructor('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 42 6:3 |new| IS_INVOKED_BY qualified 52 7:3 |new bar| IS_INVOKED_BY qualified 86 8:24 || IS_REFERENCED_BY qualified @@ -739,7 +744,7 @@ class C extends A {} '''); var element = result.findElement.unnamedConstructor('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 42 6:3 |B| IS_INVOKED_BY qualified 49 7:3 |B.bar| IS_INVOKED_BY qualified 79 8:22 || IS_REFERENCED_BY qualified @@ -764,12 +769,12 @@ void useConstructor() { A a = .new(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedLocalVariable, 177, 1), ]); var element = result.findElement.unnamedConstructor('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 || IS_REFERENCED_BY qualified 18 1:19 |.new| IS_REFERENCED_BY qualified 64 4:19 || IS_INVOKED_BY qualified @@ -803,8 +808,8 @@ class A { indexUnit(result.unit).toBuffer(), ); - assertErrorsInResult([]); - assertElementIndexText(element, r''' + assertErrorsInTestResult(result, []); + assertElementIndexText(result, element, r''' 35 4:4 || IS_INVOKED_BY qualified '''); } @@ -825,12 +830,12 @@ void useConstructor() { A a = .new(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedLocalVariable, 167, 1), ]); var element = result.findElement.unnamedConstructor('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 || IS_REFERENCED_BY qualified 18 1:19 |.new| IS_REFERENCED_BY qualified 54 3:19 || IS_INVOKED_BY qualified @@ -859,12 +864,12 @@ void useConstructor() { A a = .new(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedLocalVariable, 171, 1), ]); var element = result.findElement.unnamedConstructor('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 || IS_REFERENCED_BY qualified 18 1:19 |.new| IS_REFERENCED_BY qualified 59 4:17 || IS_INVOKED_BY qualified @@ -893,12 +898,12 @@ void useConstructor() { A a = .new(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedLocalVariable, 191, 1), ]); var element = result.findElement.unnamedConstructor('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 || IS_REFERENCED_BY qualified 18 1:19 |.new| IS_REFERENCED_BY qualified 63 4:17 |.new| IS_INVOKED_BY qualified @@ -926,25 +931,25 @@ void useConstructor() { C.named(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.classUsedAsMixin, 64, 1), error(diag.classUsedAsMixin, 84, 1), ]); var constructor = result.findElement.unnamedConstructor('A'); - assertElementIndexText(constructor, r''' + assertElementIndexText(result, constructor, r''' 114 9:4 || IS_INVOKED_BY qualified 134 11:4 || IS_INVOKED_BY qualified '''); var constructorNamed = result.findElement.constructor('named', of: 'A'); - assertElementIndexText(constructorNamed, r''' + assertElementIndexText(result, constructorNamed, r''' 121 10:4 |.named| IS_INVOKED_BY qualified 141 12:4 |.named| IS_INVOKED_BY qualified '''); } test_ConstructorElement_classTypeAlias_cycle() async { - await _indexTestUnit(''' + var result = await _indexTestUnit(''' class M {} class A = B with M; class B = A with M; @@ -953,7 +958,7 @@ void useConstructor() { B(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.recursiveInterfaceInheritance, 17, 1), error(diag.classUsedAsMixin, 28, 1), error(diag.recursiveInterfaceInheritance, 37, 1), @@ -977,7 +982,7 @@ void useConstructor() { E a = .foo(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedElement, 79, 3), error(diag.invalidReferenceToGenerativeEnumConstructor, 123, 5), @@ -987,7 +992,7 @@ void useConstructor() { error(diag.invalidReferenceToGenerativeEnumConstructor, 185, 3), ]); var element = result.findElement.constructor('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 |.foo| IS_REFERENCED_BY qualified 22 1:23 |.foo| IS_REFERENCED_BY qualified 40 3:4 |.foo| IS_INVOKED_BY qualified @@ -1013,7 +1018,7 @@ void useConstructor() { E a = .foo(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedElement, 66, 3), error(diag.invalidReferenceToGenerativeEnumConstructor, 110, 5), @@ -1023,7 +1028,7 @@ void useConstructor() { error(diag.invalidReferenceToGenerativeEnumConstructor, 172, 3), ]); var element = result.findElement.constructor('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 |.foo| IS_REFERENCED_BY qualified 22 1:23 |.foo| IS_REFERENCED_BY qualified 46 3:4 |.foo| IS_INVOKED_BY qualified @@ -1050,7 +1055,7 @@ void useConstructor() { E a = .foo(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedElement, 75, 3), error(diag.invalidReferenceToGenerativeEnumConstructor, 121, 5), @@ -1060,7 +1065,7 @@ void useConstructor() { error(diag.invalidReferenceToGenerativeEnumConstructor, 183, 3), ]); var element = result.findElement.constructor('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 |.foo| IS_REFERENCED_BY qualified 22 1:23 |.foo| IS_REFERENCED_BY qualified 40 3:4 |.foo| IS_INVOKED_BY qualified @@ -1087,7 +1092,7 @@ void useConstructor() { E a = .new(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.invalidReferenceToGenerativeEnumConstructor, 87, 1), error(diag.invalidReferenceToGenerativeEnumConstructor, 118, 1), @@ -1096,7 +1101,7 @@ void useConstructor() { error(diag.invalidReferenceToGenerativeEnumConstructor, 141, 3), ]); var element = result.findElement.unnamedConstructor('E'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 || IS_REFERENCED_BY qualified 18 1:19 |.new| IS_REFERENCED_BY qualified 37 3:5 || IS_INVOKED_BY_ENUM_CONSTANT_WITHOUT_ARGUMENTS qualified @@ -1125,7 +1130,7 @@ void useConstructor() { E a = .new(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.invalidReferenceToGenerativeEnumConstructor, 101, 5), error(diag.invalidReferenceToGenerativeEnumConstructor, 136, 1), @@ -1134,7 +1139,7 @@ void useConstructor() { error(diag.invalidReferenceToGenerativeEnumConstructor, 159, 3), ]); var element = result.findElement.unnamedConstructor('E'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 || IS_REFERENCED_BY qualified 18 1:19 |.new| IS_REFERENCED_BY qualified 37 3:5 || IS_INVOKED_BY_ENUM_CONSTANT_WITHOUT_ARGUMENTS qualified @@ -1162,7 +1167,7 @@ void useConstructor() { E a = .new(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.invalidReferenceToGenerativeEnumConstructor, 87, 5), error(diag.invalidReferenceToGenerativeEnumConstructor, 122, 1), @@ -1171,7 +1176,7 @@ void useConstructor() { error(diag.invalidReferenceToGenerativeEnumConstructor, 145, 3), ]); var element = result.findElement.unnamedConstructor('E'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 || IS_REFERENCED_BY qualified 18 1:19 |.new| IS_REFERENCED_BY qualified 39 3:5 || IS_INVOKED_BY_ENUM_CONSTANT_WITHOUT_ARGUMENTS qualified @@ -1200,7 +1205,7 @@ void useConstructor() { E a = .new(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.invalidReferenceToGenerativeEnumConstructor, 100, 1), error(diag.invalidReferenceToGenerativeEnumConstructor, 131, 1), @@ -1209,7 +1214,7 @@ void useConstructor() { error(diag.invalidReferenceToGenerativeEnumConstructor, 154, 3), ]); var element = result.findElement.unnamedConstructor('E'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 || IS_REFERENCED_BY qualified 18 1:19 |.new| IS_REFERENCED_BY qualified 37 3:5 || IS_INVOKED_BY_ENUM_CONSTANT_WITHOUT_ARGUMENTS qualified @@ -1238,7 +1243,7 @@ void useConstructor() { E a = .new(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.invalidReferenceToGenerativeEnumConstructor, 104, 5), error(diag.invalidReferenceToGenerativeEnumConstructor, 139, 1), @@ -1247,7 +1252,7 @@ void useConstructor() { error(diag.invalidReferenceToGenerativeEnumConstructor, 162, 3), ]); var element = result.findElement.unnamedConstructor('E'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 || IS_REFERENCED_BY qualified 18 1:19 |.new| IS_REFERENCED_BY qualified 37 3:5 || IS_INVOKED_BY_ENUM_CONSTANT_WITHOUT_ARGUMENTS qualified @@ -1274,12 +1279,12 @@ void useConstructor() { A a = .foo(0); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedLocalVariable, 184, 1), ]); var element = result.findElement.constructor('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 |.foo| IS_REFERENCED_BY qualified 22 1:23 |.foo| IS_REFERENCED_BY qualified 93 4:19 |.foo| IS_INVOKED_BY qualified @@ -1303,12 +1308,12 @@ void useConstructor() { A a = .foo(0); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedLocalVariable, 168, 1), ]); var element = result.findElement.constructor('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 |.foo| IS_REFERENCED_BY qualified 22 1:23 |.foo| IS_REFERENCED_BY qualified 77 3:19 |.foo| IS_INVOKED_BY qualified @@ -1333,12 +1338,12 @@ void useConstructor() { A a = .foo(0); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedLocalVariable, 182, 1), ]); var element = result.findElement.constructor('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 |.foo| IS_REFERENCED_BY qualified 22 1:23 |.foo| IS_REFERENCED_BY qualified 89 4:17 |.foo| IS_INVOKED_BY qualified @@ -1363,12 +1368,12 @@ void useConstructor() { A a = .new(0); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedLocalVariable, 175, 1), ]); var element = result.findElement.unnamedConstructor('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 || IS_REFERENCED_BY qualified 18 1:19 |.new| IS_REFERENCED_BY qualified 92 4:19 || IS_INVOKED_BY qualified @@ -1392,12 +1397,12 @@ void useConstructor() { A a = .new(0); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedLocalVariable, 152, 1), ]); var element = result.findElement.unnamedConstructor('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 || IS_REFERENCED_BY qualified 18 1:19 |.new| IS_REFERENCED_BY qualified 69 3:19 || IS_INVOKED_BY qualified @@ -1422,12 +1427,12 @@ void useConstructor() { A a = .new(0); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedLocalVariable, 172, 1), ]); var element = result.findElement.unnamedConstructor('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 || IS_REFERENCED_BY qualified 18 1:19 |.new| IS_REFERENCED_BY qualified 87 4:17 || IS_INVOKED_BY qualified @@ -1452,12 +1457,12 @@ void useConstructor() { A a = .new(0); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.deprecatedNewInCommentReference, 5, 3), error(diag.unusedLocalVariable, 184, 1), ]); var element = result.findElement.unnamedConstructor('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 10 1:11 || IS_REFERENCED_BY qualified 18 1:19 |.new| IS_REFERENCED_BY qualified 91 4:17 |.new| IS_INVOKED_BY qualified @@ -1476,10 +1481,10 @@ dynamic f() {} } test_EnumElement_emptyBody() async { - await _indexTestUnit(r''' + var result = await _indexTestUnit(r''' enum E; '''); - assertErrorsInResult([error(diag.enumWithoutConstants, 5, 1)]); + assertErrorsInTestResult(result, [error(diag.enumWithoutConstants, 5, 1)]); } test_EnumElement_reference_annotation() async { @@ -1501,10 +1506,10 @@ enum E { @p.E.myConstant void f() {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.enum_('E'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 48 5:9 |E| IS_REFERENCED_BY 61 6:9 |E| IS_REFERENCED_BY 111 10:2 |E| IS_REFERENCED_BY @@ -1526,10 +1531,10 @@ enum E { v } /// [E] and [p.E]. void f() {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.enum_('E'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 45 5:6 |E| IS_REFERENCED_BY 55 5:16 |E| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p @@ -1550,13 +1555,13 @@ void f() { const p.E(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.invalidReferenceToGenerativeEnumConstructor, 75, 1), error(diag.invalidReferenceToGenerativeEnumConstructor, 88, 3), ]); var element = result.findElement.enum_('E'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 48 5:9 |E| IS_REFERENCED_BY 75 9:9 |E| IS_REFERENCED_BY 90 10:11 |E| IS_REFERENCED_BY qualified @@ -1578,10 +1583,10 @@ void f() { p.E.foo(); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.enum_('E'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 79 9:3 |E| IS_REFERENCED_BY 92 10:5 |E| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p @@ -1599,13 +1604,13 @@ void f() { p.E v2; } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.unusedLocalVariable, 55, 2), error(diag.unusedLocalVariable, 65, 2), ]); var element = result.findElement.enum_('E'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 53 6:3 |E| IS_REFERENCED_BY 63 7:5 |E| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p @@ -1613,10 +1618,10 @@ Prefixes: (unprefixed),p } test_ExtensionElement_emptyBody() async { - await _indexTestUnit(r''' + var result = await _indexTestUnit(r''' extension E on int; '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); } test_ExtensionElement_reference_memberAccess() async { @@ -1632,10 +1637,10 @@ void f() { p.E.foo(); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.extension_('E'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 86 8:3 |E| IS_REFERENCED_BY 99 9:5 |E| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p @@ -1655,10 +1660,10 @@ void f() { p.E(0).foo(); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.extension_('E'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 79 8:3 |E| IS_REFERENCED_BY 95 9:5 |E| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p @@ -1674,10 +1679,10 @@ extension type A(int it) {} extension type B(int it) implements A {} extension type B_q(int it) implements p.A {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.extensionType('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 91 5:37 |A| IS_IMPLEMENTED_BY 91 5:37 |A| IS_REFERENCED_BY 136 6:41 |A| IS_IMPLEMENTED_BY qualified @@ -1696,10 +1701,10 @@ extension type const A(int it) {} @p.A(0) void f() {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.extensionType('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 62 5:2 |A| IS_REFERENCED_BY 70 6:4 |A| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p @@ -1715,10 +1720,10 @@ extension type A(int it) {} /// [A] and [p.A]. void f() {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.extensionType('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 60 5:6 |A| IS_REFERENCED_BY 70 5:16 |A| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p @@ -1736,10 +1741,10 @@ void f() { p.A(0); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.extensionType('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 68 6:3 |A| IS_REFERENCED_BY 78 7:5 |A| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p @@ -1759,10 +1764,10 @@ void f() { p.A.foo(); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.extensionType('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 92 8:3 |A| IS_REFERENCED_BY 105 9:5 |A| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p @@ -1780,13 +1785,13 @@ void f() { p.A v2; } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.unusedLocalVariable, 70, 2), error(diag.unusedLocalVariable, 80, 2), ]); var element = result.findElement.extensionType('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 68 6:3 |A| IS_REFERENCED_BY 78 7:5 |A| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p @@ -1817,12 +1822,12 @@ void useField(A a) { '''); var field = result.findElement.class_('A').getField('foo')!; - assertElementIndexText(field, r''' + assertElementIndexText(result, field, r''' 53 4:11 |foo| IS_WRITTEN_BY qualified 72 5:13 |foo| IS_WRITTEN_BY qualified '''); - assertElementIndexText(field.getter!, r''' + assertElementIndexText(result, field.getter!, r''' 5 1:6 |foo| IS_REFERENCED_BY 17 1:18 |foo| IS_REFERENCED_BY qualified 106 8:5 |foo| IS_REFERENCED_BY @@ -1830,7 +1835,7 @@ void useField(A a) { 188 16:5 |foo| IS_REFERENCED_BY qualified '''); - assertElementIndexText(field.setter!, r''' + assertElementIndexText(result, field.setter!, r''' 115 9:5 |foo| IS_REFERENCED_BY 147 11:10 |foo| IS_REFERENCED_BY qualified 197 17:5 |foo| IS_REFERENCED_BY qualified @@ -1845,7 +1850,7 @@ class A { } '''); var element = result.findElement.field('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 18 2:9 |foo| IS_WRITTEN_BY qualified '''); } @@ -1859,7 +1864,7 @@ class A { } '''); var element = result.findElement.field('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 18 2:9 |foo| IS_WRITTEN_BY qualified '''); } @@ -1872,7 +1877,7 @@ class A { } '''); var element = result.findElement.field('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 18 2:9 |foo| IS_WRITTEN_BY qualified '''); } @@ -1899,7 +1904,7 @@ void useField() { var field = result.findElement.class_('A').getField('foo')!; - assertElementIndexText(field.getter!, r''' + assertElementIndexText(result, field.getter!, r''' 5 1:6 |foo| IS_REFERENCED_BY 17 1:18 |foo| IS_REFERENCED_BY qualified 85 5:5 |foo| IS_REFERENCED_BY @@ -1908,7 +1913,7 @@ void useField() { 185 15:10 |foo| IS_REFERENCED_BY qualified '''); - assertElementIndexText(field.setter!, r''' + assertElementIndexText(result, field.setter!, r''' 94 6:5 |foo| IS_REFERENCED_BY 120 8:7 |foo| IS_REFERENCED_BY qualified 167 14:5 |foo| IS_REFERENCED_BY qualified @@ -1937,25 +1942,25 @@ void useField(E e) { var getter = field.getter!; var setter = field.setter!; - assertElementIndexText(field, r''' + assertElementIndexText(result, field, r''' 82 5:11 |foo| IS_WRITTEN_BY qualified '''); - assertElementIndexText(getter, r''' + assertElementIndexText(result, getter, r''' 5 1:6 |foo| IS_REFERENCED_BY 17 1:18 |foo| IS_REFERENCED_BY qualified 113 7:5 |foo| IS_REFERENCED_BY 162 12:5 |foo| IS_REFERENCED_BY qualified '''); - assertElementIndexText(setter, r''' + assertElementIndexText(result, setter, r''' 122 8:5 |foo| IS_REFERENCED_BY 171 13:5 |foo| IS_REFERENCED_BY qualified '''); } test_FieldElement_ofEnum_instance_index() async { - await _indexTestUnit(''' + var result = await _indexTestUnit(''' enum MyEnum { v1, v2, v3 } @@ -1967,8 +1972,8 @@ void f() { } '''); - var index = typeProvider.enumElement!.getGetter('index')!; - assertElementIndexText(index, r''' + var index = result.typeProvider.enumElement!.getGetter('index')!; + assertElementIndexText(result, index, r''' 69 6:13 |index| IS_REFERENCED_BY qualified '''); } @@ -1982,7 +1987,7 @@ enum E { } '''); var element = result.findElement.field('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 22 3:9 |foo| IS_WRITTEN_BY qualified '''); } @@ -1997,7 +2002,7 @@ enum E { } '''); var element = result.findElement.field('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 22 3:9 |foo| IS_WRITTEN_BY qualified '''); } @@ -2011,7 +2016,7 @@ enum E { } '''); var element = result.findElement.field('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 22 3:9 |foo| IS_WRITTEN_BY qualified '''); } @@ -2034,12 +2039,12 @@ void f() { } '''); - assertElementIndexText(result.findElement.getter('values'), r''' + assertElementIndexText(result, result.findElement.getter('values'), r''' 116 8:10 |values| IS_REFERENCED_BY qualified 195 13:12 |values| IS_REFERENCED_BY qualified '''); - assertElementIndexText(result.findElement.getter('v1'), r''' + assertElementIndexText(result, result.findElement.getter('v1'), r''' 31 3:6 |v1| IS_REFERENCED_BY 44 3:19 |v1| IS_REFERENCED_BY qualified 63 3:38 |v1| IS_REFERENCED_BY qualified @@ -2048,7 +2053,7 @@ void f() { 180 12:12 |v1| IS_REFERENCED_BY qualified '''); - assertElementIndexText(result.findElement.getter('v2'), r''' + assertElementIndexText(result, result.findElement.getter('v2'), r''' 165 11:10 |v2| IS_REFERENCED_BY qualified '''); } @@ -2072,14 +2077,14 @@ void useField() { var getter = field.getter!; var setter = field.setter!; - assertElementIndexText(getter, r''' + assertElementIndexText(result, getter, r''' 5 1:6 |foo| IS_REFERENCED_BY 17 1:18 |foo| IS_REFERENCED_BY qualified 95 5:5 |foo| IS_REFERENCED_BY 141 10:5 |foo| IS_REFERENCED_BY qualified '''); - assertElementIndexText(setter, r''' + assertElementIndexText(result, setter, r''' 104 6:5 |foo| IS_REFERENCED_BY 150 11:5 |foo| IS_REFERENCED_BY qualified '''); @@ -2108,9 +2113,9 @@ void foo() { A _ = .new(test: 0); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.fieldFormalParameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 36 2:27 |test| IS_READ_BY 92 6:14 |test| IS_REFERENCED_BY_NAMED_ARGUMENT qualified '''); @@ -2123,7 +2128,7 @@ void foo({T? test}) {} newFile('$testPackageLibPath/b.dart', r''' void foo({T? test}) {} '''); - await _indexTestUnit(r""" + var result = await _indexTestUnit(r""" import 'a.dart'; import 'b.dart'; @@ -2132,7 +2137,7 @@ void f() { } """); // No exceptions. - assertErrorsInResult([error(diag.ambiguousImport, 48, 3)]); + assertErrorsInTestResult(result, [error(diag.ambiguousImport, 48, 3)]); } test_FormalParameterElement_ofConstructor_primary_optionalNamed() async { @@ -2163,9 +2168,9 @@ void f() { A _ = .new(test: 0); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.unnamedConstructor('A').parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 30 2:8 |test| IS_REFERENCED_BY 52 3:17 |test| IS_READ_BY 72 4:5 |test| IS_READ_BY @@ -2208,9 +2213,9 @@ void f() { A _ = .new(test: 0); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.unnamedConstructor('A').parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 31 2:8 |test| IS_REFERENCED_BY 53 3:17 |test| IS_READ_BY 73 4:5 |test| IS_READ_BY @@ -2253,9 +2258,9 @@ void f() { A _ = .new(0); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.unnamedConstructor('A').parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 30 2:8 |test| IS_REFERENCED_BY 52 3:17 |test| IS_READ_BY 72 4:5 |test| IS_READ_BY @@ -2295,9 +2300,9 @@ void f() { A _ = .new(test: 0); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.unnamedConstructor('A').parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 38 2:8 |test| IS_REFERENCED_BY 60 3:17 |test| IS_READ_BY 78 4:5 |test| IS_READ_BY @@ -2341,9 +2346,9 @@ void f() { A _ = .new(0); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.unnamedConstructor('A').parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 27 2:8 |test| IS_REFERENCED_BY 49 3:17 |test| IS_READ_BY 67 4:5 |test| IS_READ_BY @@ -2383,9 +2388,9 @@ void f() { A _ = .new(test: 0); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.unnamedConstructor('A').parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 17 2:8 |test| IS_REFERENCED_BY 49 3:27 |test| IS_READ_BY 69 4:5 |test| IS_READ_BY @@ -2428,9 +2433,9 @@ void f() { A _ = .new(test: 0); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.unnamedConstructor('A').parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 20 2:8 |test| IS_REFERENCED_BY 50 3:25 |test| IS_READ_BY 70 4:5 |test| IS_READ_BY @@ -2473,9 +2478,9 @@ void f() { A _ = .new(0); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.unnamedConstructor('A').parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 17 2:8 |test| IS_REFERENCED_BY 49 3:27 |test| IS_READ_BY 69 4:5 |test| IS_READ_BY @@ -2515,9 +2520,9 @@ void f() { A _ = .new(test: 0); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.unnamedConstructor('A').parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 17 2:8 |test| IS_REFERENCED_BY 57 3:35 |test| IS_READ_BY 75 4:5 |test| IS_READ_BY @@ -2561,9 +2566,9 @@ void f() { A _ = .new(0); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.unnamedConstructor('A').parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 17 2:8 |test| IS_REFERENCED_BY 46 3:24 |test| IS_READ_BY 64 4:5 |test| IS_READ_BY @@ -2576,7 +2581,7 @@ void f() { } test_FormalParameterElement_ofGenericFunctionType_optionalNamed() async { - await _indexTestUnit(''' + var result = await _indexTestUnit(''' typedef F = void Function({int? test}); void g(F f) { @@ -2585,11 +2590,11 @@ void g(F f) { '''); // We should not crash because of reference to "test" - a named parameter // of a generic function type. - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); } test_FormalParameterElement_ofGenericFunctionType_optionalNamed_call() async { - await _indexTestUnit(''' + var result = await _indexTestUnit(''' typedef F = void Function({T? test}); void g(F f) { @@ -2597,7 +2602,7 @@ void g(F f) { } '''); // No exceptions. - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); } test_FormalParameterElement_ofLocalFunction_optionalNamed() async { @@ -2617,9 +2622,9 @@ void f() { (foo)(test: 2); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' '''); } @@ -2640,9 +2645,9 @@ void f() { (foo)(2); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' '''); } @@ -2663,9 +2668,9 @@ void f() { (foo)(test: 2); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' '''); } @@ -2686,9 +2691,9 @@ void f() { (foo)(2); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' '''); } @@ -2711,9 +2716,9 @@ void f(A a) { (a.foo)(test: 2); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 17 2:8 |test| IS_REFERENCED_BY 53 4:5 |test| IS_READ_BY 63 5:5 |test| IS_WRITTEN_BY @@ -2745,9 +2750,9 @@ void f(A a) { (a.foo)(test: 2); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 20 2:8 |test| IS_REFERENCED_BY 54 4:5 |test| IS_READ_BY 64 5:5 |test| IS_WRITTEN_BY @@ -2778,9 +2783,9 @@ void f(A a) { (a.foo)(2); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 17 2:8 |test| IS_REFERENCED_BY 53 4:5 |test| IS_READ_BY 63 5:5 |test| IS_WRITTEN_BY @@ -2809,9 +2814,9 @@ void f(A a) { (a.foo)(test: 2); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 17 2:8 |test| IS_REFERENCED_BY 61 4:5 |test| IS_READ_BY 71 5:5 |test| IS_WRITTEN_BY @@ -2843,9 +2848,9 @@ void f(A a) { (a.foo)(2); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 17 2:8 |test| IS_REFERENCED_BY 50 4:5 |test| IS_READ_BY 60 5:5 |test| IS_WRITTEN_BY @@ -2871,9 +2876,9 @@ void f() { (foo)(test: 2); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 5 1:6 |test| IS_REFERENCED_BY 37 3:3 |test| IS_READ_BY 45 4:3 |test| IS_WRITTEN_BY @@ -2903,9 +2908,9 @@ void f() { (foo)(0, test: 2, 0); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 5 1:6 |test| IS_REFERENCED_BY 51 3:3 |test| IS_READ_BY 59 4:3 |test| IS_WRITTEN_BY @@ -2934,9 +2939,9 @@ void f() { (foo)(2); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 5 1:6 |test| IS_REFERENCED_BY 37 3:3 |test| IS_READ_BY 45 4:3 |test| IS_WRITTEN_BY @@ -2963,9 +2968,9 @@ void f() { (foo)(test: 2); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 5 1:6 |test| IS_REFERENCED_BY 45 3:3 |test| IS_READ_BY 53 4:3 |test| IS_WRITTEN_BY @@ -2995,9 +3000,9 @@ void f() { (foo)(2); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 5 1:6 |test| IS_REFERENCED_BY 34 3:3 |test| IS_READ_BY 42 4:3 |test| IS_WRITTEN_BY @@ -3008,7 +3013,7 @@ void f() { } test_FormalParameterElement_synthetic_leastUpperBound() async { - await _indexTestUnit(''' + var result = await _indexTestUnit(''' int f1({int? test}) => 0; int f2({int? test}) => 0; void g(bool b) { @@ -3017,7 +3022,7 @@ void g(bool b) { }'''); // We should not crash because of reference to "test" - a named parameter // of a synthetic LUB FunctionElement created for "f". - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); } test_GetterElement_ofClass_instance() async { @@ -3036,7 +3041,7 @@ void useGetter(A a) { } '''); var element = result.findElement.getter('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 5 1:6 |foo| IS_REFERENCED_BY 17 1:18 |foo| IS_REFERENCED_BY qualified 77 5:5 |foo| IS_REFERENCED_BY @@ -3055,7 +3060,7 @@ class A { } }'''); var element = result.findElement.getter('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 59 4:10 |foo| IS_REFERENCED_BY qualified 70 5:5 |foo| IS_REFERENCED_BY '''); @@ -3073,7 +3078,7 @@ void useGetter(Object? x) { } '''); var element = result.findElement.getter('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 76 6:16 |foo| IS_REFERENCED_BY_PATTERN_FIELD qualified 103 7:16 || IS_REFERENCED_BY_PATTERN_FIELD qualified '''); @@ -3097,7 +3102,7 @@ void useGetter() { } '''); var element = result.findElement.getter('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 31 3:6 |foo| IS_REFERENCED_BY 40 3:15 |foo| IS_REFERENCED_BY qualified 51 3:26 |foo| IS_REFERENCED_BY qualified @@ -3114,7 +3119,7 @@ export 'lib.dart'; '''); var export = result.findElement.export('package:test/lib.dart'); var fragment = export.exportedLibrary!.firstFragment; - assertLibraryFragmentIndexText(fragment, r''' + assertLibraryFragmentIndexText(result, fragment, r''' 7 1:8 |'lib.dart'| '''); } @@ -3126,7 +3131,7 @@ import 'lib.dart'; '''); var import = result.findElement.import('package:test/lib.dart'); var fragment = import.importedLibrary!.firstFragment; - assertLibraryFragmentIndexText(fragment, r''' + assertLibraryFragmentIndexText(result, fragment, r''' 7 1:8 |'lib.dart'| '''); } @@ -3137,7 +3142,7 @@ import 'lib.dart'; part 'my_unit.dart'; '''); var fragment = result.findElement.part('package:test/my_unit.dart'); - assertLibraryFragmentIndexText(fragment, r''' + assertLibraryFragmentIndexText(result, fragment, r''' 5 1:6 |'my_unit.dart'| '''); } @@ -3176,7 +3181,7 @@ void useFoo(A a) { } '''); var element = result.findElement.method('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 5 1:6 |foo| IS_REFERENCED_BY 17 1:18 |foo| IS_REFERENCED_BY qualified 84 5:10 |foo| IS_INVOKED_BY qualified @@ -3212,7 +3217,7 @@ void useFoo() { } '''); var element = result.findElement.method('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 31 3:6 |foo| IS_REFERENCED_BY 40 3:15 |foo| IS_REFERENCED_BY qualified 51 3:26 |foo| IS_REFERENCED_BY qualified @@ -3245,7 +3250,7 @@ void useFoo(E e) { } '''); var element = result.findElement.method('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 5 1:6 |foo| IS_REFERENCED_BY 17 1:18 |foo| IS_REFERENCED_BY qualified 79 6:10 |foo| IS_INVOKED_BY qualified @@ -3274,7 +3279,7 @@ void useFoo() { } '''); var element = result.findElement.method('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 5 1:6 |foo| IS_REFERENCED_BY 17 1:18 |foo| IS_REFERENCED_BY qualified 88 6:5 |foo| IS_INVOKED_BY @@ -3297,7 +3302,7 @@ void useFoo() { } '''); var element = result.findElement.method('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 5 1:6 |foo| IS_REFERENCED_BY 17 1:18 |foo| IS_REFERENCED_BY qualified 82 7:5 |foo| IS_INVOKED_BY qualified @@ -3318,7 +3323,7 @@ void useFoo() { } '''); var element = result.findElement.method('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 5 1:6 |foo| IS_REFERENCED_BY 17 1:18 |foo| IS_REFERENCED_BY qualified 89 7:5 |foo| IS_INVOKED_BY qualified @@ -3347,14 +3352,14 @@ void useFoo() { '''); var intMethod = result.findNode.methodDeclaration('foo() {} // int'); - assertElementIndexText(intMethod.declaredFragment!.element, r''' + assertElementIndexText(result, intMethod.declaredFragment!.element, r''' 5 1:6 |foo| IS_REFERENCED_BY 167 12:5 |foo| IS_INVOKED_BY qualified 178 13:5 |foo| IS_REFERENCED_BY qualified '''); var doubleMethod = result.findNode.methodDeclaration('foo() {} // double'); - assertElementIndexText(doubleMethod.declaredFragment!.element, r''' + assertElementIndexText(result, doubleMethod.declaredFragment!.element, r''' 74 6:6 |foo| IS_REFERENCED_BY 191 14:9 |foo| IS_INVOKED_BY qualified 206 15:9 |foo| IS_REFERENCED_BY qualified @@ -3380,7 +3385,7 @@ void useFoo() { } '''); var element = result.findElement.method('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 5 1:6 |foo| IS_REFERENCED_BY 17 1:18 |foo| IS_REFERENCED_BY qualified 92 5:10 |foo| IS_INVOKED_BY qualified @@ -3408,7 +3413,7 @@ void useFoo() { } '''); var element = result.findElement.method('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 5 1:6 |foo| IS_REFERENCED_BY 17 1:18 |foo| IS_REFERENCED_BY qualified 101 5:5 |foo| IS_INVOKED_BY @@ -3436,7 +3441,7 @@ void useFoo(M m) { } '''); var element = result.findElement.method('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 5 1:6 |foo| IS_REFERENCED_BY 17 1:18 |foo| IS_REFERENCED_BY qualified 75 5:10 |foo| IS_INVOKED_BY qualified @@ -3465,7 +3470,7 @@ void useFoo() { } '''); var element = result.findElement.method('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 5 1:6 |foo| IS_REFERENCED_BY 17 1:18 |foo| IS_REFERENCED_BY qualified 84 5:5 |foo| IS_INVOKED_BY @@ -3490,7 +3495,7 @@ void useOperator(A a) { } '''); var element = result.findElement.method('+'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 14 1:15 |+| IS_REFERENCED_BY 33 1:34 |+| IS_REFERENCED_BY qualified 105 6:5 |+| IS_INVOKED_BY qualified @@ -3511,7 +3516,7 @@ void useOperator(A a) { } '''); var element = result.findElement.method('[]'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 103 6:4 |[| IS_INVOKED_BY qualified '''); } @@ -3527,7 +3532,7 @@ void useOperator(A a) { } '''); var element = result.findElement.method('[]='); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 103 6:4 |[| IS_INVOKED_BY qualified '''); } @@ -3543,7 +3548,7 @@ void useOperator(A a) { } '''); var element = result.findElement.method('~'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 14 1:15 |~| IS_REFERENCED_BY 33 1:34 |~| IS_REFERENCED_BY qualified 100 6:3 |~| IS_INVOKED_BY qualified @@ -3565,7 +3570,7 @@ void useOperator(E e) { } '''); var element = result.findElement.method('+'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 14 1:15 |+| IS_REFERENCED_BY 33 1:34 |+| IS_REFERENCED_BY qualified 110 7:5 |+| IS_INVOKED_BY qualified @@ -3587,7 +3592,7 @@ void useOperator(E e) { } '''); var element = result.findElement.method('[]'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 116 7:4 |[| IS_INVOKED_BY qualified '''); } @@ -3604,7 +3609,7 @@ void useOperator(E e) { } '''); var element = result.findElement.method('[]='); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 123 7:4 |[| IS_INVOKED_BY qualified '''); } @@ -3621,7 +3626,7 @@ void useOperator(E e) { } '''); var element = result.findElement.method('~'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 14 1:15 |~| IS_REFERENCED_BY 33 1:34 |~| IS_REFERENCED_BY qualified 103 7:3 |~| IS_INVOKED_BY qualified @@ -3639,7 +3644,7 @@ void useOperator(int e) { } '''); var element = result.findElement.method('+'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 14 1:15 |+| IS_REFERENCED_BY 33 1:34 |+| IS_REFERENCED_BY qualified 126 6:8 |+| IS_INVOKED_BY qualified @@ -3657,7 +3662,7 @@ void useOperator(int e) { } '''); var element = result.findElement.method('[]'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 128 6:7 |[| IS_INVOKED_BY qualified '''); } @@ -3673,7 +3678,7 @@ void useOperator(int e) { } '''); var element = result.findElement.method('[]='); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 135 6:7 |[| IS_INVOKED_BY qualified '''); } @@ -3689,7 +3694,7 @@ void useOperator(int e) { } '''); var element = result.findElement.method('~'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 14 1:15 |~| IS_REFERENCED_BY 33 1:34 |~| IS_REFERENCED_BY qualified 112 6:3 |~| IS_INVOKED_BY qualified @@ -3710,7 +3715,7 @@ void useOperator(A a) { } '''); var element = result.findElement.method('+'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 14 1:15 |+| IS_REFERENCED_BY 33 1:34 |+| IS_REFERENCED_BY qualified 127 6:5 |+| IS_INVOKED_BY qualified @@ -3731,7 +3736,7 @@ void useOperator(A a) { } '''); var element = result.findElement.method('[]'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 129 6:4 |[| IS_INVOKED_BY qualified '''); } @@ -3747,7 +3752,7 @@ void useOperator(A a) { } '''); var element = result.findElement.method('[]='); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 136 6:4 |[| IS_INVOKED_BY qualified '''); } @@ -3763,7 +3768,7 @@ void useOperator(A a) { } '''); var element = result.findElement.method('~'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 14 1:15 |~| IS_REFERENCED_BY 33 1:34 |~| IS_REFERENCED_BY qualified 116 6:3 |~| IS_INVOKED_BY qualified @@ -3784,7 +3789,7 @@ void useOperator(M m) { } '''); var element = result.findElement.method('+'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 14 1:15 |+| IS_REFERENCED_BY 33 1:34 |+| IS_REFERENCED_BY qualified 110 6:5 |+| IS_INVOKED_BY qualified @@ -3805,7 +3810,7 @@ void useOperator(M m) { } '''); var element = result.findElement.method('[]'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 112 6:4 |[| IS_INVOKED_BY qualified '''); } @@ -3821,7 +3826,7 @@ void useOperator(M m) { } '''); var element = result.findElement.method('[]='); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 119 6:4 |[| IS_INVOKED_BY qualified '''); } @@ -3837,7 +3842,7 @@ void useOperator(M m) { } '''); var element = result.findElement.method('~'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 14 1:15 |~| IS_REFERENCED_BY 33 1:34 |~| IS_REFERENCED_BY qualified 99 6:3 |~| IS_INVOKED_BY qualified @@ -3845,10 +3850,10 @@ void useOperator(M m) { } test_MixinElement_emptyBody() async { - await _indexTestUnit(r''' + var result = await _indexTestUnit(r''' mixin M; '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); } test_MixinElement_hierarchy_class_implements() async { @@ -3856,10 +3861,10 @@ mixin M; mixin A {} class B implements A {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.mixin('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 30 2:20 |A| IS_IMPLEMENTED_BY 30 2:20 |A| IS_REFERENCED_BY '''); @@ -3870,10 +3875,10 @@ class B implements A {} mixin A {} class B extends Object with A {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.mixin('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 39 2:29 |A| IS_MIXED_IN_BY 39 2:29 |A| IS_REFERENCED_BY '''); @@ -3884,10 +3889,10 @@ class B extends Object with A {} mixin A {} class B = Object with A; '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.mixin('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 33 2:23 |A| IS_MIXED_IN_BY 33 2:23 |A| IS_REFERENCED_BY '''); @@ -3900,10 +3905,10 @@ enum E implements A { v } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.mixin('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 29 2:19 |A| IS_IMPLEMENTED_BY 29 2:19 |A| IS_REFERENCED_BY '''); @@ -3916,10 +3921,10 @@ enum E with A { v } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.mixin('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 23 2:13 |A| IS_MIXED_IN_BY 23 2:13 |A| IS_REFERENCED_BY '''); @@ -3930,10 +3935,10 @@ enum E with A { mixin A {} extension type E(A it) implements A {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.mixin('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 28 2:18 |A| IS_REFERENCED_BY 45 2:35 |A| IS_IMPLEMENTED_BY 45 2:35 |A| IS_REFERENCED_BY @@ -3945,10 +3950,10 @@ extension type E(A it) implements A {} mixin A {} mixin M implements A {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.mixin('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 30 2:20 |A| IS_IMPLEMENTED_BY 30 2:20 |A| IS_REFERENCED_BY '''); @@ -3959,10 +3964,10 @@ mixin M implements A {} mixin A {} mixin M on A {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.mixin('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 22 2:12 |A| CONSTRAINS 22 2:12 |A| IS_REFERENCED_BY '''); @@ -3980,10 +3985,10 @@ mixin A { @p.A.myConstant void f() {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.mixin('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 75 7:2 |A| IS_REFERENCED_BY 91 8:4 |A| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p @@ -3999,10 +4004,10 @@ mixin A {} /// [A] and [p.A]. void f() {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.mixin('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 43 5:6 |A| IS_REFERENCED_BY 53 5:16 |A| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p @@ -4022,10 +4027,10 @@ void f() { p.A.foo(); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.mixin('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 75 8:3 |A| IS_REFERENCED_BY 88 9:5 |A| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p @@ -4040,10 +4045,10 @@ mixin A {} void f(A v1, p.A v2) {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.mixin('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 45 5:8 |A| IS_REFERENCED_BY 53 5:16 |A| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p @@ -4083,7 +4088,7 @@ void useSetter(A a) { } '''); var element = result.findElement.setter('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 5 1:6 |foo| IS_REFERENCED_BY 17 1:18 |foo| IS_REFERENCED_BY qualified 77 5:5 |foo| IS_REFERENCED_BY @@ -4110,7 +4115,7 @@ void useSetter() { } '''); var element = result.findElement.setter('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 31 3:6 |foo| IS_REFERENCED_BY 40 3:15 |foo| IS_REFERENCED_BY qualified 51 3:26 |foo| IS_REFERENCED_BY qualified @@ -4129,7 +4134,7 @@ class D {} class E {} '''); String libP = '${libFile.path};${libFile.path}'; - await _indexTestUnit(''' + var result = await _indexTestUnit(''' import 'lib.dart'; class X extends A { @@ -4168,7 +4173,7 @@ class Z implements E, D { _assertSubtype(2, '$libP;C', 'Y', ['methodY']); _assertSubtype(3, '$libP;D', 'Z', ['methodZ']); _assertSubtype(4, '$libP;E', 'Z', ['methodZ']); - _assertSubtype(5, _interfaceId(typeProvider.objectElement)!, 'Y', [ + _assertSubtype(5, _interfaceId(result.typeProvider.objectElement)!, 'Y', [ 'methodY', ]); } @@ -4330,9 +4335,9 @@ void f() { B _ = .new(test: 0); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.unnamedConstructor('B').parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 58 6:8 |test| IS_REFERENCED_BY 91 7:28 |test| IS_READ_BY 124 11:5 |test| IS_REFERENCED_BY_NAMED_ARGUMENT qualified @@ -4356,9 +4361,9 @@ void f() { B _ = .new(0); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.unnamedConstructor('B').parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 58 6:8 |test| IS_REFERENCED_BY 91 7:28 |test| IS_READ_BY '''); @@ -4380,9 +4385,9 @@ void f() { B _ = .new(test: 0); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.unnamedConstructor('B').parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 66 6:8 |test| IS_REFERENCED_BY 108 7:37 |test| IS_READ_BY 139 11:5 |test| IS_REFERENCED_BY_NAMED_ARGUMENT qualified @@ -4406,9 +4411,9 @@ void f() { B _ = .new(0); } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.unnamedConstructor('B').parameter('test'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 55 6:8 |test| IS_REFERENCED_BY 86 7:26 |test| IS_READ_BY '''); @@ -4428,10 +4433,10 @@ void f() { p.foo; } '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.topFunction('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 46 5:6 |foo| IS_REFERENCED_BY 58 5:18 |foo| IS_REFERENCED_BY qualified 76 7:3 |foo| IS_INVOKED_BY @@ -4452,7 +4457,7 @@ void f() { '''); var mathLib = result.findElement.import('dart:math').importedLibrary!; var element = mathLib.loadLibraryFunction; - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 56 4:8 |loadLibrary| IS_INVOKED_BY qualified '''); } @@ -4478,7 +4483,7 @@ void f() { var getter = element.getter!; var setter = element.setter!; - assertElementIndexText(getter, r''' + assertElementIndexText(result, getter, r''' 45 5:6 |foo| IS_REFERENCED_BY 57 5:18 |foo| IS_REFERENCED_BY qualified 64 6:2 |foo| IS_REFERENCED_BY @@ -4488,7 +4493,7 @@ void f() { Prefixes: (unprefixed),p '''); - assertElementIndexText(setter, r''' + assertElementIndexText(result, setter, r''' 95 10:3 |foo| IS_REFERENCED_BY 117 12:5 |foo| IS_REFERENCED_BY qualified '''); @@ -4502,7 +4507,7 @@ int get foo => 0; void set foo(_) {} '''); var element = result.findElement.topVar('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 24 1:25 |foo| IS_REFERENCED_BY qualified '''); } @@ -4514,7 +4519,7 @@ import 'test.dart' show foo; void set foo(_) {} '''); var element = result.findElement.topVar('foo'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 24 1:25 |foo| IS_REFERENCED_BY qualified '''); } @@ -4526,7 +4531,7 @@ typedef void A(); void f(A p) {} '''); var element = result.findElement.typeAlias('A'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 23 2:6 |A| IS_REFERENCED_BY 33 3:8 |A| IS_REFERENCED_BY '''); @@ -4539,13 +4544,13 @@ typedef B = A; class C extends B {} '''); var element = result.findElement.typeAlias('B'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 50 3:17 |B| IS_EXTENDED_BY 50 3:17 |B| IS_REFERENCED_BY '''); var aliasedClass = result.findElement.class_('A'); - assertElementIndexText(aliasedClass, r''' + assertElementIndexText(result, aliasedClass, r''' 26 2:13 |A| IS_REFERENCED_BY '''); } @@ -4557,13 +4562,13 @@ typedef B = A; class C implements B {} '''); var element = result.findElement.typeAlias('B'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 53 3:20 |B| IS_IMPLEMENTED_BY 53 3:20 |B| IS_REFERENCED_BY '''); var aliasedClass = result.findElement.class_('A'); - assertElementIndexText(aliasedClass, r''' + assertElementIndexText(result, aliasedClass, r''' 26 2:13 |A| IS_REFERENCED_BY '''); } @@ -4575,13 +4580,13 @@ typedef B = A; class C extends Object with B {} '''); var element = result.findElement.typeAlias('B'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 62 3:29 |B| IS_MIXED_IN_BY 62 3:29 |B| IS_REFERENCED_BY '''); var aliasedClass = result.findElement.class_('A'); - assertElementIndexText(aliasedClass, r''' + assertElementIndexText(result, aliasedClass, r''' 26 2:13 |A| IS_REFERENCED_BY '''); } @@ -4605,7 +4610,7 @@ void f(B p) { } '''); var element = result.findElement.typeAlias('B'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 92 8:6 |B| IS_REFERENCED_BY 102 9:8 |B| IS_REFERENCED_BY 111 10:3 |B| IS_REFERENCED_BY @@ -4616,7 +4621,7 @@ void f(B p) { '''); var aliasedClass = result.findElement.class_('A'); - assertElementIndexText(aliasedClass, r''' + assertElementIndexText(result, aliasedClass, r''' 78 6:13 |A| IS_REFERENCED_BY '''); } @@ -4631,16 +4636,16 @@ typedef B = A; /// [B] and [p.B]. void f() {} '''); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var element = result.findElement.typeAlias('B'); - assertElementIndexText(element, r''' + assertElementIndexText(result, element, r''' 66 6:6 |B| IS_REFERENCED_BY 76 6:16 |B| IS_REFERENCED_BY qualified Prefixes: (unprefixed),p '''); var aliasedClass = result.findElement.class_('A'); - assertElementIndexText(aliasedClass, r''' + assertElementIndexText(result, aliasedClass, r''' 52 4:13 |A| IS_REFERENCED_BY '''); } @@ -4730,8 +4735,11 @@ void f() { ..isUsed('x();', IndexRelationKind.IS_INVOKED_BY); } - String _getLibraryFragmentReferenceText(LibraryFragmentImpl target) { - var lineInfo = result.lineInfo; + String _getLibraryFragmentReferenceText( + TestResolvedUnitResult result, + LibraryFragmentImpl target, + ) { + var lineInfo = result.unit.lineInfo; var targetId = index.getLibraryFragmentId(target); expect( @@ -4764,8 +4772,8 @@ void f() { return buffer.toString(); } - String _getRelationsText(Element element) { - var lineInfo = result.lineInfo; + String _getRelationsText(TestResolvedUnitResult result, Element element) { + var lineInfo = result.unit.lineInfo; var elementId = _findElementId(element); if (elementId == null) { return ''; diff --git a/pkg/analyzer/test/src/dart/analysis/results/get_element_declaration_test.dart b/pkg/analyzer/test/src/dart/analysis/results/get_element_declaration_test.dart index d4d83973950..42dc44e6d5f 100644 --- a/pkg/analyzer/test/src/dart/analysis/results/get_element_declaration_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/results/get_element_declaration_test.dart @@ -45,7 +45,7 @@ class A {} // 2 expect(node.namePart.typeName.lexeme, 'A'); expect( node.namePart.typeName.offset, - this.result.content.indexOf('A {} // 1'), + unitResult.content.indexOf('A {} // 1'), ); } @@ -58,7 +58,7 @@ class A {} // 2 expect(node.namePart.typeName.lexeme, 'A'); expect( node.namePart.typeName.offset, - this.result.content.indexOf('A {} // 2'), + unitResult.content.indexOf('A {} // 2'), ); } } @@ -137,7 +137,7 @@ class A { var result = await getFragmentDeclaration(element); var node = result!.node as ConstructorDeclaration; expect(node.name!.lexeme, 'named'); - expect(node.name!.offset, this.result.content.indexOf('named(); // 1')); + expect(node.name!.offset, unitResult.content.indexOf('named(); // 1')); } { @@ -147,7 +147,7 @@ class A { var result = await getFragmentDeclaration(element); var node = result!.node as ConstructorDeclaration; expect(node.name!.lexeme, 'named'); - expect(node.name!.offset, this.result.content.indexOf('named(); // 2')); + expect(node.name!.offset, unitResult.content.indexOf('named(); // 2')); } } @@ -165,7 +165,7 @@ class A { var result = await getFragmentDeclaration(element); var node = result!.node as ConstructorDeclaration; expect(node.name, isNull); - expect(node.typeName!.offset, this.result.content.indexOf('A(); // 1')); + expect(node.typeName!.offset, unitResult.content.indexOf('A(); // 1')); } { @@ -175,7 +175,7 @@ class A { var result = await getFragmentDeclaration(element); var node = result!.node as ConstructorDeclaration; expect(node.name, isNull); - expect(node.typeName!.offset, this.result.content.indexOf('A(); // 2')); + expect(node.typeName!.offset, unitResult.content.indexOf('A(); // 2')); } } @@ -338,8 +338,8 @@ int get x => 0; } test_libraryFragment() async { - await resolveTestCode(''); - var fragment = this.result.libraryFragment; + var unitResult = await resolveTestCode(''); + var fragment = unitResult.libraryFragment; var result = await getFragmentDeclaration(fragment); expect(result, isNull); } diff --git a/pkg/analyzer/test/src/dart/analysis/search_test.dart b/pkg/analyzer/test/src/dart/analysis/search_test.dart index 4df76f66eb0..76c7ec4db81 100644 --- a/pkg/analyzer/test/src/dart/analysis/search_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/search_test.dart @@ -999,11 +999,11 @@ class B_q extends p.A {} } test_scenario_ClassElement_hierarchy_class_extends_implicitObject() async { - await resolveTestCode(''' + var result = await resolveTestCode(''' class A {} '''); includedLibraryUris = {Uri.parse(testUriStr)}; - var element = typeProvider.objectType.element; + var element = result.typeProvider.objectType.element; await assertElementReferencesText(element, r''''''); await assertSubTypesText(element, ''); } @@ -2389,7 +2389,7 @@ package:test/other.dart useConstructor@66 } test_searchReferences_ConstructorElement_classTypeAlias_cycle() async { - await resolveTestCode(''' + var result = await resolveTestCode(''' class M {} class A = B with M; class B = A with M; @@ -3344,7 +3344,7 @@ void useField(E e) { } test_searchReferences_FieldElement_ofEnum_instance_index() async { - await resolveTestCode(''' + var result = await resolveTestCode(''' enum MyEnum { v1, v2, v3 } @@ -3355,7 +3355,7 @@ main() { MyEnum.v2; } '''); - var index = typeProvider.enumElement!.getField('index')!; + var index = result.typeProvider.enumElement!.getField('index')!; await assertElementReferencesText(index, r''' main@29 50 5:13 |index| READ qualified @@ -4764,7 +4764,7 @@ label: fileForContextSelection = testFile; - await resolveFileCode(libPath, ''' + var result = await resolveFileCode(libPath, ''' library lib; part 'unitA.dart'; part 'unitB.dart'; @@ -4781,7 +4781,7 @@ part 'unitB.dart'; test_searchReferences_LibraryElement_partOfName() async { newFile('$testPackageLibPath/unitA.dart', 'part of lib;'); newFile('$testPackageLibPath/unitB.dart', 'part of lib;'); - await resolveTestCode(''' + var result = await resolveTestCode(''' library lib; part 'unitA.dart'; part 'unitB.dart'; @@ -4804,7 +4804,7 @@ part of 'test.dart'; part of 'test.dart'; '''); - await resolveTestCode(''' + var result = await resolveTestCode(''' part 'unitA.dart'; part 'unitB.dart'; '''); @@ -7353,7 +7353,7 @@ class NoMatchABCDEF {} } String _getSearchResultsText(List results) { - var analysisSession = result.session; + var analysisSession = driver.currentSession; var groups = results .groupListsBy((result) => result.enclosingFragment) @@ -7423,7 +7423,7 @@ class NoMatchABCDEF {} } String _getSearchResultsText2(List results) { - var analysisSession = result.session; + var analysisSession = driver.currentSession; var groups = results .groupListsBy((result) => result.libraryFragment) diff --git a/pkg/analyzer/test/src/dart/ast/ast_test.dart b/pkg/analyzer/test/src/dart/ast/ast_test.dart index 23ef2fd5f0f..3895a15371a 100644 --- a/pkg/analyzer/test/src/dart/ast/ast_test.dart +++ b/pkg/analyzer/test/src/dart/ast/ast_test.dart @@ -1343,7 +1343,7 @@ class IntegerLiteralImplTest { @reflectiveTest class NodeCoveringTest extends PubPackageResolutionTest { Future coveringNode(String sourceCode) async { - var range = await _range(sourceCode); + var (result, range) = await _range(sourceCode); var node = result.unit.nodeCovering( offset: range.offset, length: range.length, @@ -1352,7 +1352,7 @@ class NodeCoveringTest extends PubPackageResolutionTest { } void test_after_EOF() async { - await resolveTestCode(''' + var result = await resolveTestCode(''' library myLib; '''); var node = result.unit.nodeCovering(offset: 100, length: 20); @@ -1747,7 +1747,9 @@ class C { void call() {} } Function f = C^(); node as NamedType; } - Future _range(String sourceCode) async { + Future<(TestResolvedUnitResult, SourceRange)> _range( + String sourceCode, + ) async { // TODO(brianwilkerson): Move TestCode to the analyzer package and make use // of it here. var offset = sourceCode.indexOf('^'); @@ -1756,7 +1758,7 @@ class C { void call() {} } Function f = C^(); } var testCode = sourceCode.substring(0, offset) + sourceCode.substring(offset + 1); - await resolveTestCode(testCode); - return SourceRange(offset, 0); + var result = await resolveTestCode(testCode); + return (result, SourceRange(offset, 0)); } } diff --git a/pkg/analyzer/test/src/dart/ast/element_locator_test.dart b/pkg/analyzer/test/src/dart/ast/element_locator_test.dart index b7cfb983665..9044fffabdd 100644 --- a/pkg/analyzer/test/src/dart/ast/element_locator_test.dart +++ b/pkg/analyzer/test/src/dart/ast/element_locator_test.dart @@ -458,7 +458,7 @@ void main() { } test_locate_LibraryElement() async { - await resolveTestCode('// only comment'); + var result = await resolveTestCode('// only comment'); var element = ElementLocator.locate(result.unit); _assertElement(element, r''' diff --git a/pkg/analyzer/test/src/dart/constant/evaluation_test.dart b/pkg/analyzer/test/src/dart/constant/evaluation_test.dart index e3958e3cd28..6015edff3cb 100644 --- a/pkg/analyzer/test/src/dart/constant/evaluation_test.dart +++ b/pkg/analyzer/test/src/dart/constant/evaluation_test.dart @@ -3878,7 +3878,7 @@ const v2 = -v1; String name, ) { var value = _evaluateConstant(unitResult, name); - var featureSet = result.libraryElement.featureSet; + var featureSet = unitResult.libraryElement.featureSet; var has = value.hasPrimitiveEquality(featureSet); expect(has, isFalse); } @@ -3888,7 +3888,7 @@ const v2 = -v1; String name, ) { var value = _evaluateConstant(unitResult, name); - var featureSet = result.libraryElement.featureSet; + var featureSet = unitResult.libraryElement.featureSet; var has = value.hasPrimitiveEquality(featureSet); expect(has, isTrue); } @@ -3901,7 +3901,10 @@ mixin ConstantVisitorTestCases on ConstantVisitorTestSupport { const c = [1, if (1 < 0) 2 else 3, 4]; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.listType(typeProvider.intType)); + expect( + result.type, + unitResult.typeProvider.listType(unitResult.typeProvider.intType), + ); expect(result.toListValue()!.map((e) => e.toIntValue()), [1, 3, 4]); } @@ -3910,7 +3913,10 @@ const c = [1, if (1 < 0) 2 else 3, 4]; const c = [1, if (1 < 0) 2, 3]; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.listType(typeProvider.intType)); + expect( + result.type, + unitResult.typeProvider.listType(unitResult.typeProvider.intType), + ); expect(result.toListValue()!.map((e) => e.toIntValue()), [1, 3]); } @@ -3919,7 +3925,10 @@ const c = [1, if (1 < 0) 2, 3]; const c = [1, if (1 > 0) 2 else 3, 4]; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.listType(typeProvider.intType)); + expect( + result.type, + unitResult.typeProvider.listType(unitResult.typeProvider.intType), + ); expect(result.toListValue()!.map((e) => e.toIntValue()), [1, 2, 4]); } @@ -3928,7 +3937,10 @@ const c = [1, if (1 > 0) 2 else 3, 4]; const c = [1, if (1 > 0) 2, 3]; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.listType(typeProvider.intType)); + expect( + result.type, + unitResult.typeProvider.listType(unitResult.typeProvider.intType), + ); expect(result.toListValue()!.map((e) => e.toIntValue()), [1, 2, 3]); } @@ -3939,7 +3951,10 @@ const c = [1, if (1 > 0) if (2 > 1) 2, 3]; DartObjectImpl result = _evaluateConstant(unitResult, 'c'); // The expected type ought to be `List`, but type inference isn't yet // implemented. - expect(result.type, typeProvider.listType(typeProvider.intType)); + expect( + result.type, + unitResult.typeProvider.listType(unitResult.typeProvider.intType), + ); expect(result.toListValue()!.map((e) => e.toIntValue()), [1, 2, 3]); } @@ -3948,7 +3963,10 @@ const c = [1, if (1 > 0) if (2 > 1) 2, 3]; const c = [1, ...[2, 3], 4]; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.listType(typeProvider.intType)); + expect( + result.type, + unitResult.typeProvider.listType(unitResult.typeProvider.intType), + ); expect(result.toListValue()!.map((e) => e.toIntValue()), [1, 2, 3, 4]); } @@ -3959,7 +3977,10 @@ const c = {'a' : 1, if (1 < 0) 'b' : 2 else 'c' : 3, 'd' : 4}; DartObjectImpl result = _evaluateConstant(unitResult, 'c'); expect( result.type, - typeProvider.mapType(typeProvider.stringType, typeProvider.intType), + unitResult.typeProvider.mapType( + unitResult.typeProvider.stringType, + unitResult.typeProvider.intType, + ), ); Map value = result.toMapValue()!; expect( @@ -3976,7 +3997,10 @@ const c = {'a' : 1, if (1 < 0) 'b' : 2, 'c' : 3}; DartObjectImpl result = _evaluateConstant(unitResult, 'c'); expect( result.type, - typeProvider.mapType(typeProvider.stringType, typeProvider.intType), + unitResult.typeProvider.mapType( + unitResult.typeProvider.stringType, + unitResult.typeProvider.intType, + ), ); Map value = result.toMapValue()!; expect( @@ -3993,7 +4017,10 @@ const c = {'a' : 1, if (1 > 0) 'b' : 2 else 'c' : 3, 'd' : 4}; DartObjectImpl result = _evaluateConstant(unitResult, 'c'); expect( result.type, - typeProvider.mapType(typeProvider.stringType, typeProvider.intType), + unitResult.typeProvider.mapType( + unitResult.typeProvider.stringType, + unitResult.typeProvider.intType, + ), ); Map value = result.toMapValue()!; expect( @@ -4010,7 +4037,10 @@ const c = {'a' : 1, if (1 > 0) 'b' : 2, 'c' : 3}; DartObjectImpl result = _evaluateConstant(unitResult, 'c'); expect( result.type, - typeProvider.mapType(typeProvider.stringType, typeProvider.intType), + unitResult.typeProvider.mapType( + unitResult.typeProvider.stringType, + unitResult.typeProvider.intType, + ), ); Map value = result.toMapValue()!; expect( @@ -4029,7 +4059,10 @@ const c = {'a' : 1, if (1 > 0) if (2 > 1) {'b' : 2}, 'c' : 3}; DartObjectImpl result = _evaluateConstant(unitResult, 'c'); expect( result.type, - typeProvider.mapType(typeProvider.intType, typeProvider.intType), + unitResult.typeProvider.mapType( + unitResult.typeProvider.intType, + unitResult.typeProvider.intType, + ), ); Map value = result.toMapValue()!; expect( @@ -4046,7 +4079,10 @@ const c = {'a' : 1, ...{'b' : 2, 'c' : 3}, 'd' : 4}; DartObjectImpl result = _evaluateConstant(unitResult, 'c'); expect( result.type, - typeProvider.mapType(typeProvider.stringType, typeProvider.intType), + unitResult.typeProvider.mapType( + unitResult.typeProvider.stringType, + unitResult.typeProvider.intType, + ), ); Map value = result.toMapValue()!; expect( @@ -4064,7 +4100,10 @@ const c = {'a' : 1, ...{'b' : 2, 'c' : 3}, 'd' : 4}; const c = {1, if (1 < 0) 2 else 3, 4}; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.setType(typeProvider.intType)); + expect( + result.type, + unitResult.typeProvider.setType(unitResult.typeProvider.intType), + ); expect(result.toSetValue()!.map((e) => e.toIntValue()), [1, 3, 4]); } @@ -4073,7 +4112,10 @@ const c = {1, if (1 < 0) 2 else 3, 4}; const c = {1, if (1 < 0) 2, 3}; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.setType(typeProvider.intType)); + expect( + result.type, + unitResult.typeProvider.setType(unitResult.typeProvider.intType), + ); expect(result.toSetValue()!.map((e) => e.toIntValue()), [1, 3]); } @@ -4082,7 +4124,10 @@ const c = {1, if (1 < 0) 2, 3}; const c = {1, if (1 > 0) 2 else 3, 4}; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.setType(typeProvider.intType)); + expect( + result.type, + unitResult.typeProvider.setType(unitResult.typeProvider.intType), + ); expect(result.toSetValue()!.map((e) => e.toIntValue()), [1, 2, 4]); } @@ -4091,7 +4136,10 @@ const c = {1, if (1 > 0) 2 else 3, 4}; const c = {1, if (1 > 0) 2, 3}; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.setType(typeProvider.intType)); + expect( + result.type, + unitResult.typeProvider.setType(unitResult.typeProvider.intType), + ); expect(result.toSetValue()!.map((e) => e.toIntValue()), [1, 2, 3]); } @@ -4100,7 +4148,10 @@ const c = {1, if (1 > 0) 2, 3}; const c = {1, if (1 > 0) if (2 > 1) 2, 3}; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.setType(typeProvider.intType)); + expect( + result.type, + unitResult.typeProvider.setType(unitResult.typeProvider.intType), + ); expect(result.toSetValue()!.map((e) => e.toIntValue()), [1, 2, 3]); } @@ -4109,7 +4160,10 @@ const c = {1, if (1 > 0) if (2 > 1) 2, 3}; const c = {1, ...{2, 3}, 4}; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.setType(typeProvider.intType)); + expect( + result.type, + unitResult.typeProvider.setType(unitResult.typeProvider.intType), + ); expect(result.toSetValue()!.map((e) => e.toIntValue()), [1, 2, 3, 4]); } @@ -4293,7 +4347,7 @@ const c = a && true; const c = false & true; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.boolType); + expect(result.type, unitResult.typeProvider.boolType); } test_visitBinaryExpression_and_bool_known_unknown() async { @@ -4302,7 +4356,7 @@ const b = bool.fromEnvironment('y'); const c = false & b; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.boolType); + expect(result.type, unitResult.typeProvider.boolType); } test_visitBinaryExpression_and_bool_true_invalid() async { @@ -4320,7 +4374,7 @@ const a = bool.fromEnvironment('x'); const c = a & true; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.boolType); + expect(result.type, unitResult.typeProvider.boolType); } test_visitBinaryExpression_and_bool_unknown_unknown() async { @@ -4330,7 +4384,7 @@ const b = bool.fromEnvironment('y'); const c = a & b; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.boolType); + expect(result.type, unitResult.typeProvider.boolType); } test_visitBinaryExpression_and_int() async { @@ -4533,7 +4587,7 @@ const c = a || true; const c = false | true; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.boolType); + expect(result.type, unitResult.typeProvider.boolType); } test_visitBinaryExpression_or_bool_known_unknown() async { @@ -4542,7 +4596,7 @@ const b = bool.fromEnvironment('y'); const c = false | b; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.boolType); + expect(result.type, unitResult.typeProvider.boolType); } test_visitBinaryExpression_or_bool_true_invalid() async { @@ -4562,7 +4616,7 @@ const a = bool.fromEnvironment('x'); const c = a | true; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.boolType); + expect(result.type, unitResult.typeProvider.boolType); } test_visitBinaryExpression_or_bool_unknown_unknown() async { @@ -4572,7 +4626,7 @@ const b = bool.fromEnvironment('y'); const c = a | b; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.boolType); + expect(result.type, unitResult.typeProvider.boolType); } test_visitBinaryExpression_or_int() async { @@ -4580,7 +4634,7 @@ const c = a | b; const c = 3 | 5; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.intType); + expect(result.type, unitResult.typeProvider.intType); } test_visitBinaryExpression_or_known_known() async { @@ -4611,7 +4665,7 @@ const c = 3 | false; const c = 'a' ?? 'b'; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.stringType); + expect(result.type, unitResult.typeProvider.stringType); expect(result.toStringValue(), 'a'); } @@ -4629,7 +4683,7 @@ class C {} const c = null ?? 'b'; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.stringType); + expect(result.type, unitResult.typeProvider.stringType); expect(result.toStringValue(), 'b'); } @@ -4646,7 +4700,7 @@ const c = null ?? null; const c = false ^ true; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.boolType); + expect(result.type, unitResult.typeProvider.boolType); } test_visitBinaryExpression_xor_bool_known_unknown() async { @@ -4655,7 +4709,7 @@ const b = bool.fromEnvironment('y'); const c = false ^ b; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.boolType); + expect(result.type, unitResult.typeProvider.boolType); } test_visitBinaryExpression_xor_bool_unknown_known() async { @@ -4664,7 +4718,7 @@ const a = bool.fromEnvironment('x'); const c = a ^ true; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.boolType); + expect(result.type, unitResult.typeProvider.boolType); } test_visitBinaryExpression_xor_bool_unknown_unknown() async { @@ -4674,7 +4728,7 @@ const b = bool.fromEnvironment('y'); const c = a ^ b; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.boolType); + expect(result.type, unitResult.typeProvider.boolType); } test_visitBinaryExpression_xor_int() async { @@ -4682,7 +4736,7 @@ const c = a ^ b; const c = 3 ^ 5; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'c'); - expect(result.type, typeProvider.intType); + expect(result.type, unitResult.typeProvider.intType); } test_visitBinaryExpression_xor_mixed() async { @@ -4878,7 +4932,7 @@ double 3.45 const double d = 3; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'd'); - expect(result.type, typeProvider.doubleType); + expect(result.type, unitResult.typeProvider.doubleType); expect(result.toDoubleValue(), 3.0); } @@ -5131,8 +5185,8 @@ const y = B(x); const a = dynamic; '''); DartObjectImpl result = _evaluateConstant(unitResult, 'a'); - expect(result.type, typeProvider.typeType); - expect(result.toTypeValue(), typeProvider.dynamicType); + expect(result.type, unitResult.typeProvider.typeType); + expect(result.toTypeValue(), unitResult.typeProvider.dynamicType); } test_visitSimpleIdentifier_variable() async { @@ -5227,6 +5281,7 @@ class ConstantVisitorTestSupport extends PubPackageResolutionTest { .topVariableDeclarationByName(name) .initializer!; return _evaluateExpression( + unitResult, expression, diagnosticCodes: diagnosticCodes, declaredVariables: declaredVariables, @@ -5234,11 +5289,12 @@ class ConstantVisitorTestSupport extends PubPackageResolutionTest { } DartObjectImpl? _evaluateExpression( + TestResolvedUnitResult unitResult, Expression expression, { List? diagnosticCodes, Map declaredVariables = const {}, }) { - var unit = this.result.unit; + var unit = unitResult.unit; var source = unit.declaredFragment!.source; var errorListener = GatheringDiagnosticListener(); var diagnosticReporter = DiagnosticReporter(errorListener, source); @@ -5247,7 +5303,7 @@ class ConstantVisitorTestSupport extends PubPackageResolutionTest { declaredVariables: DeclaredVariables.fromMap(declaredVariables), configuration: ConstantEvaluationConfiguration(), ), - this.result.libraryElement, + unitResult.libraryElement, diagnosticReporter, ); diff --git a/pkg/analyzer/test/src/dart/element/display_string_test.dart b/pkg/analyzer/test/src/dart/element/display_string_test.dart index 5bd3f705175..85953c9b355 100644 --- a/pkg/analyzer/test/src/dart/element/display_string_test.dart +++ b/pkg/analyzer/test/src/dart/element/display_string_test.dart @@ -40,7 +40,7 @@ extension StringExtension on String {} } test_extension_unnamed() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' extension on String {} '''); diff --git a/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart b/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart index 39b74074585..2f769ac46ae 100644 --- a/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart +++ b/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart @@ -1510,11 +1510,11 @@ mixin M on A {} } test_getMember_super_forObject() async { - await resolveTestCode(''' + var result = await resolveTestCode(''' class A {} '''); var member = manager.getMember( - typeProvider.objectType.element, + result.typeProvider.objectType.element, Name(null, 'hashCode'), forSuper: true, ); diff --git a/pkg/analyzer/test/src/dart/micro/file_resolution.dart b/pkg/analyzer/test/src/dart/micro/file_resolution.dart index 933c74d5f2b..49ae7b1d1c6 100644 --- a/pkg/analyzer/test/src/dart/micro/file_resolution.dart +++ b/pkg/analyzer/test/src/dart/micro/file_resolution.dart @@ -119,15 +119,13 @@ class FileResolutionTest with ResourceProviderMixin, ResolutionTest { File file, { OperationPerformanceImpl? performance, }) async { - result = - await fileResolver.resolve(path: file.path, performance: performance) - as ResolvedUnitResultImpl; - return result; + return await fileResolver.resolve(path: file.path, performance: performance) + as ResolvedUnitResultImpl; } @override Future resolveTestFile() async { - result = await resolveFile(testFile); + var result = await resolveFile(testFile); return TestResolvedUnitResult(result); } diff --git a/pkg/analyzer/test/src/dart/micro/simple_file_resolver_test.dart b/pkg/analyzer/test/src/dart/micro/simple_file_resolver_test.dart index 397e992bb8c..9ebfb90fbaa 100644 --- a/pkg/analyzer/test/src/dart/micro/simple_file_resolver_test.dart +++ b/pkg/analyzer/test/src/dart/micro/simple_file_resolver_test.dart @@ -427,7 +427,7 @@ import 'a.dart'; void f(A a, B b) {} '''); - result = await resolveFile(b); + var result = await resolveFile(b); assertErrorsInResolvedUnit(result, [error(diag.undefinedClass, 29, 1)]); newFile(a.path, r''' @@ -455,7 +455,7 @@ void f(A a) { } '''); - result = await resolveFile(b); + var result = await resolveFile(b); assertErrorsInResolvedUnit(result, [error(diag.assignmentToFinal, 36, 3)]); newFile(a.path, r''' @@ -480,7 +480,7 @@ var b = B(0); part of 'a.dart'; '''); - result = await resolveFile(a); + var result = await resolveFile(a); assertErrorsInResolvedUnit(result, [error(diag.undefinedFunction, 24, 1)]); // Update a.dart, and notify the resolver. We need this to have at least @@ -1449,7 +1449,7 @@ var a = 4.2; } test_getFilesWithTopLevelDeclarations_cached() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' int a = 0; var b = 1 + 2; '''); @@ -1511,8 +1511,8 @@ part of 'b.dart'; var a = newFile('/workspace/third_party/dart/aaa/lib/a.dart', r''' import 'dart:math'; '''); - await resolveFile(a); - assertNoErrorsInResult(); + var result = await resolveFile(a); + assertErrorsInResolvedUnit(result, const []); } test_linkLibraries() async { @@ -2455,8 +2455,8 @@ void func() { // No resolved files yet. _assertResolvedFiles([]); - await resolveFile2(testFile); - var result1 = result; + var result = await resolveFile2(testFile); + var result1 = result.analysisResult; // The file was resolved. _assertResolvedFiles([testFile]); @@ -2465,22 +2465,22 @@ void func() { expect(fileResolver.cachedResults, contains(testFile.path)); // Ask again, no changes, not resolved. - await resolveFile2(testFile); + result = await resolveFile2(testFile); _assertResolvedFiles([]); // The same result was returned. - expect(result, same(result1)); + expect(result.analysisResult, same(result1)); // Change a file. var a_path = convertPath('/workspace/dart/test/lib/a.dart'); fileResolver.changeFiles([a_path]); // The was a change to a file, no matter which, resolve again. - await resolveFile2(testFile); + result = await resolveFile2(testFile); _assertResolvedFiles([testFile]); // Get should get a new result. - expect(result, isNot(same(result1))); + expect(result.analysisResult, isNot(same(result1))); } test_resolveLibrary() async { diff --git a/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart b/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart index baa48b1b797..13f7dab51c2 100644 --- a/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart +++ b/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart @@ -41,7 +41,8 @@ import 'resolution.dart'; export 'package:analyzer_testing/src/analysis_rule/pub_package_resolution.dart' show ExpectedDiagnostic; -export 'resolution.dart' show TestResolvedUnitResult; +export 'resolution.dart' + show ResolvedUnitResultExtension, TestResolvedUnitResult; class BlazeWorkspaceResolutionTest extends ContextResolutionTest { @override @@ -465,8 +466,8 @@ mixin WithStrictCastsMixin on PubPackageResolutionTest { String code, List expectedErrors, ) async { - await resolveTestCode(code); - assertNoErrorsInResult(); + var result = await resolveTestCode(code); + assertErrorsInTestResult(result, const []); await disposeAnalysisContextCollection(); @@ -474,8 +475,8 @@ mixin WithStrictCastsMixin on PubPackageResolutionTest { analysisOptionsContent(experiments: experiments, strictCasts: true), ); - await resolveTestFile(); - assertErrorsInResult(expectedErrors); + result = await resolveTestFile(); + assertErrorsInTestResult(result, expectedErrors); } /// Asserts that no errors are reported in [code], both when implicit casts diff --git a/pkg/analyzer/test/src/dart/resolution/extension_method_test.dart b/pkg/analyzer/test/src/dart/resolution/extension_method_test.dart index 9369a003eff..d25e5c4732b 100644 --- a/pkg/analyzer/test/src/dart/resolution/extension_method_test.dart +++ b/pkg/analyzer/test/src/dart/resolution/extension_method_test.dart @@ -1396,7 +1396,7 @@ void f() { '''); var result = await resolveFile2(b); - assertErrorsInResult([]); + assertErrorsInTestResult(result, []); var node = result.findNode.singleMethodInvocation; assertResolvedNodeText(node, r''' diff --git a/pkg/analyzer/test/src/dart/resolution/library_element_test.dart b/pkg/analyzer/test/src/dart/resolution/library_element_test.dart index 1fa21676261..c56f7a9c14d 100644 --- a/pkg/analyzer/test/src/dart/resolution/library_element_test.dart +++ b/pkg/analyzer/test/src/dart/resolution/library_element_test.dart @@ -25,11 +25,15 @@ class LibraryElementTest_featureSet extends PubPackageResolutionTest { test_language205() async { writeTestPackageConfig(PackageConfigFileBuilder(), languageVersion: '2.5'); - await resolveTestCode(''); + var result = await resolveTestCode(''); - _assertLanguageVersion(package: Version.parse('2.5.0'), override: null); + _assertLanguageVersion( + result, + package: Version.parse('2.5.0'), + override: null, + ); - _assertFeatureSet([ + _assertFeatureSet(result, [ Feature.constant_update_2018, Feature.control_flow_collections, Feature.set_literals, @@ -40,11 +44,15 @@ class LibraryElementTest_featureSet extends PubPackageResolutionTest { test_language208() async { writeTestPackageConfig(PackageConfigFileBuilder(), languageVersion: '2.8'); - await resolveTestCode(''); + var result = await resolveTestCode(''); - _assertLanguageVersion(package: Version.parse('2.8.0'), override: null); + _assertLanguageVersion( + result, + package: Version.parse('2.8.0'), + override: null, + ); - _assertFeatureSet([ + _assertFeatureSet(result, [ Feature.constant_update_2018, Feature.control_flow_collections, Feature.extension_methods, @@ -56,15 +64,16 @@ class LibraryElementTest_featureSet extends PubPackageResolutionTest { test_language208_override205() async { writeTestPackageConfig(PackageConfigFileBuilder(), languageVersion: '2.8'); - await resolveTestCode('// @dart = 2.5'); + var result = await resolveTestCode('// @dart = 2.5'); // Valid override, less than the latest supported language version. _assertLanguageVersion( + result, package: Version.parse('2.8.0'), override: Version.parse('2.5.0'), ); - _assertFeatureSet([ + _assertFeatureSet(result, [ Feature.constant_update_2018, Feature.control_flow_collections, Feature.set_literals, @@ -75,11 +84,15 @@ class LibraryElementTest_featureSet extends PubPackageResolutionTest { test_language209() async { writeTestPackageConfig(PackageConfigFileBuilder(), languageVersion: '2.9'); - await resolveTestCode(''); + var result = await resolveTestCode(''); - _assertLanguageVersion(package: Version.parse('2.9.0'), override: null); + _assertLanguageVersion( + result, + package: Version.parse('2.9.0'), + override: null, + ); - _assertFeatureSet([ + _assertFeatureSet(result, [ Feature.constant_update_2018, Feature.control_flow_collections, Feature.extension_methods, @@ -91,12 +104,16 @@ class LibraryElementTest_featureSet extends PubPackageResolutionTest { test_language212_override399() async { writeTestPackageConfig(PackageConfigFileBuilder(), languageVersion: '2.12'); - await resolveTestCode('// @dart = 3.99'); + var result = await resolveTestCode('// @dart = 3.99'); // Invalid override: minor is greater than the latest minor. - _assertLanguageVersion(package: Version.parse('2.12.0'), override: null); + _assertLanguageVersion( + result, + package: Version.parse('2.12.0'), + override: null, + ); - _assertFeatureSet([ + _assertFeatureSet(result, [ Feature.constant_update_2018, Feature.control_flow_collections, Feature.extension_methods, @@ -109,12 +126,16 @@ class LibraryElementTest_featureSet extends PubPackageResolutionTest { test_language212_override400() async { writeTestPackageConfig(PackageConfigFileBuilder(), languageVersion: '2.12'); - await resolveTestCode('// @dart = 4.00'); + var result = await resolveTestCode('// @dart = 4.00'); // Invalid override: major is greater than the latest major. - _assertLanguageVersion(package: Version.parse('2.12.0'), override: null); + _assertLanguageVersion( + result, + package: Version.parse('2.12.0'), + override: null, + ); - _assertFeatureSet([ + _assertFeatureSet(result, [ Feature.constant_update_2018, Feature.control_flow_collections, Feature.extension_methods, @@ -124,7 +145,10 @@ class LibraryElementTest_featureSet extends PubPackageResolutionTest { ]); } - void _assertFeatureSet(List expected) { + void _assertFeatureSet( + TestResolvedUnitResult result, + List expected, + ) { var featureSet = result.libraryElement.featureSet; var actual = ExperimentStatus.knownFeatures.values @@ -134,7 +158,8 @@ class LibraryElementTest_featureSet extends PubPackageResolutionTest { expect(actual, unorderedEquals(expected)); } - void _assertLanguageVersion({ + void _assertLanguageVersion( + TestResolvedUnitResult result, { required Version package, required Version? override, }) { @@ -147,7 +172,7 @@ class LibraryElementTest_featureSet extends PubPackageResolutionTest { @reflectiveTest class LibraryElementTest_toString extends PubPackageResolutionTest { test_hasLibraryDirective_hasName() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' library my.name; '''); @@ -155,7 +180,7 @@ library my.name; } test_hasLibraryDirective_noName() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' library; '''); @@ -163,7 +188,7 @@ library; } test_noLibraryDirective() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class A {} '''); diff --git a/pkg/analyzer/test/src/dart/resolution/library_export_test.dart b/pkg/analyzer/test/src/dart/resolution/library_export_test.dart index 45a9c7a992b..2279d052374 100644 --- a/pkg/analyzer/test/src/dart/resolution/library_export_test.dart +++ b/pkg/analyzer/test/src/dart/resolution/library_export_test.dart @@ -376,7 +376,7 @@ ExportDirective get f => null; set f(_) {} '''); - await resolveTestCode(r''' + var result = await resolveTestCode(r''' export 'a.dart'; '''); var exportNamespace = result.libraryElement.exportNamespace; @@ -545,7 +545,7 @@ export 'c.dart'; newFile('$testPackageLibPath/c.dart', ''); var result = await resolveFile2(b); - assertNoErrorsInResult(); + assertErrorsInTestResult(result, const []); var node = result.findNode.export('c.dart'); assertResolvedNodeText(node, r''' @@ -571,7 +571,7 @@ export 'c.dart'; '''); var result = await resolveFile2(b); - assertErrorsInResult([error(diag.uriDoesNotExist, 25, 8)]); + assertErrorsInTestResult(result, [error(diag.uriDoesNotExist, 25, 8)]); var node = result.findNode.export('c.dart'); assertResolvedNodeText(node, r''' @@ -597,7 +597,7 @@ export ':net'; '''); var result = await resolveFile2(b); - assertErrorsInResult([error(diag.invalidUri, 25, 6)]); + assertErrorsInTestResult(result, [error(diag.invalidUri, 25, 6)]); var node = result.findNode.export('export'); assertResolvedNodeText(node, r''' @@ -623,7 +623,9 @@ export '${'foo'}.dart'; '''); var result = await resolveFile2(b); - assertErrorsInResult([error(diag.uriWithInterpolation, 25, 15)]); + assertErrorsInTestResult(result, [ + error(diag.uriWithInterpolation, 25, 15), + ]); var node = result.findNode.export('export'); assertResolvedNodeText(node, r''' @@ -659,7 +661,7 @@ export 'foo:bar'; '''); var result = await resolveFile2(b); - assertErrorsInResult([error(diag.uriDoesNotExist, 25, 9)]); + assertErrorsInTestResult(result, [error(diag.uriDoesNotExist, 25, 9)]); var node = result.findNode.export('export'); assertResolvedNodeText(node, r''' @@ -689,7 +691,7 @@ part of my.lib; '''); var result = await resolveFile2(b); - assertErrorsInResult([error(diag.exportOfNonLibrary, 25, 8)]); + assertErrorsInTestResult(result, [error(diag.exportOfNonLibrary, 25, 8)]); var node = result.findNode.export('c.dart'); assertResolvedNodeText(node, r''' @@ -719,7 +721,7 @@ part of 'b.dart'; '''); var result = await resolveFile2(b); - assertErrorsInResult([error(diag.exportOfNonLibrary, 25, 8)]); + assertErrorsInTestResult(result, [error(diag.exportOfNonLibrary, 25, 8)]); var node = result.findNode.export('c.dart'); assertResolvedNodeText(node, r''' diff --git a/pkg/analyzer/test/src/dart/resolution/library_import_test.dart b/pkg/analyzer/test/src/dart/resolution/library_import_test.dart index ceedeba286a..dd5a3481d2f 100644 --- a/pkg/analyzer/test/src/dart/resolution/library_import_test.dart +++ b/pkg/analyzer/test/src/dart/resolution/library_import_test.dart @@ -729,7 +729,7 @@ import 'c.dart'; var result = await resolveFile2(b); // TODO(scheglov): update the hint. - // assertErrorsInResult([ + // assertErrorsInTestResult(result, [ // error(WarningCode.UNUSED_IMPORT, 33, 8), // ]); @@ -757,7 +757,7 @@ import 'c.dart'; '''); var result = await resolveFile2(b); - assertErrorsInResult([error(diag.uriDoesNotExist, 25, 8)]); + assertErrorsInTestResult(result, [error(diag.uriDoesNotExist, 25, 8)]); var node = result.findNode.import('c.dart'); assertResolvedNodeText(node, r''' @@ -783,7 +783,7 @@ import ':net'; '''); var result = await resolveFile2(b); - assertErrorsInResult([error(diag.invalidUri, 25, 6)]); + assertErrorsInTestResult(result, [error(diag.invalidUri, 25, 6)]); var node = result.findNode.import('import'); assertResolvedNodeText(node, r''' @@ -809,7 +809,9 @@ import '${'foo'}.dart'; '''); var result = await resolveFile2(b); - assertErrorsInResult([error(diag.uriWithInterpolation, 25, 15)]); + assertErrorsInTestResult(result, [ + error(diag.uriWithInterpolation, 25, 15), + ]); var node = result.findNode.import('import'); assertResolvedNodeText(node, r''' @@ -845,7 +847,7 @@ import 'foo:bar'; '''); var result = await resolveFile2(b); - assertErrorsInResult([error(diag.uriDoesNotExist, 25, 9)]); + assertErrorsInTestResult(result, [error(diag.uriDoesNotExist, 25, 9)]); var node = result.findNode.import('import'); assertResolvedNodeText(node, r''' @@ -875,7 +877,7 @@ part of my.lib; '''); var result = await resolveFile2(b); - assertErrorsInResult([error(diag.importOfNonLibrary, 25, 8)]); + assertErrorsInTestResult(result, [error(diag.importOfNonLibrary, 25, 8)]); var node = result.findNode.import('c.dart'); assertResolvedNodeText(node, r''' @@ -905,7 +907,7 @@ part of 'b.dart'; '''); var result = await resolveFile2(b); - assertErrorsInResult([error(diag.importOfNonLibrary, 25, 8)]); + assertErrorsInTestResult(result, [error(diag.importOfNonLibrary, 25, 8)]); var node = result.findNode.import('c.dart'); assertResolvedNodeText(node, r''' diff --git a/pkg/analyzer/test/src/dart/resolution/metadata_test.dart b/pkg/analyzer/test/src/dart/resolution/metadata_test.dart index 0d97472ed94..b74a402f7d4 100644 --- a/pkg/analyzer/test/src/dart/resolution/metadata_test.dart +++ b/pkg/analyzer/test/src/dart/resolution/metadata_test.dart @@ -355,7 +355,7 @@ part of 'test.dart'; '''); var result = await resolveFile2(a); - assertNoErrorsInResult(); + assertErrorsInTestResult(result, const []); _assertAtFoo42(result); } diff --git a/pkg/analyzer/test/src/dart/resolution/part_test.dart b/pkg/analyzer/test/src/dart/resolution/part_test.dart index ad83d80f2fb..ae595ac7ef4 100644 --- a/pkg/analyzer/test/src/dart/resolution/part_test.dart +++ b/pkg/analyzer/test/src/dart/resolution/part_test.dart @@ -144,11 +144,11 @@ part 'b.dart'; part of my.lib; '''); - await resolveFile2(b); - assertNoErrorsInResult(); + var bResult = await resolveFile2(b); + assertErrorsInTestResult(bResult, const []); var result = await resolveFile2(a); - assertNoErrorsInResult(); + assertErrorsInTestResult(result, const []); var node = result.findNode.singlePartDirective; assertResolvedNodeText(node, r''' @@ -175,11 +175,11 @@ part 'b.dart'; part of my.lib; '''); - await resolveFile2(b); - assertNoErrorsInResult(); + var bResult = await resolveFile2(b); + assertErrorsInTestResult(bResult, const []); var result = await resolveFile2(a); - assertNoErrorsInResult(); + assertErrorsInTestResult(result, const []); var node = result.findNode.singlePartDirective; assertResolvedNodeText(node, r''' @@ -206,11 +206,13 @@ part 'b.dart'; part of bar; '''); - await resolveFile2(b); - assertNoErrorsInResult(); + var bResult = await resolveFile2(b); + assertErrorsInTestResult(bResult, const []); var result = await resolveFile2(a); - assertErrorsInResult([error(diag.partOfDifferentLibrary, 33, 8)]); + assertErrorsInTestResult(result, [ + error(diag.partOfDifferentLibrary, 33, 8), + ]); var node = result.findNode.singlePartDirective; assertResolvedNodeText(node, r''' @@ -334,7 +336,7 @@ part 'c.dart'; '''); var result = await resolveFile2(b); - assertErrorsInResult([error(diag.uriDoesNotExist, 23, 8)]); + assertErrorsInTestResult(result, [error(diag.uriDoesNotExist, 23, 8)]); var node = result.findNode.singlePartDirective; assertResolvedNodeText(node, r''' @@ -360,7 +362,7 @@ part ':net'; '''); var result = await resolveFile2(b); - assertErrorsInResult([error(diag.invalidUri, 23, 6)]); + assertErrorsInTestResult(result, [error(diag.invalidUri, 23, 6)]); var node = result.findNode.singlePartDirective; assertResolvedNodeText(node, r''' @@ -386,7 +388,9 @@ part '${'foo'}.dart'; '''); var result = await resolveFile2(b); - assertErrorsInResult([error(diag.uriWithInterpolation, 23, 15)]); + assertErrorsInTestResult(result, [ + error(diag.uriWithInterpolation, 23, 15), + ]); var node = result.findNode.singlePartDirective; assertResolvedNodeText(node, r''' @@ -422,7 +426,7 @@ part 'foo:bar'; '''); var result = await resolveFile2(b); - assertErrorsInResult([error(diag.uriDoesNotExist, 23, 9)]); + assertErrorsInTestResult(result, [error(diag.uriDoesNotExist, 23, 9)]); var node = result.findNode.singlePartDirective; assertResolvedNodeText(node, r''' @@ -451,12 +455,12 @@ part 'c.dart'; part of my.lib; '''); - await resolveFile2(c); - assertErrorsInResult([error(diag.partOfName, 8, 6)]); + var cResult = await resolveFile2(c); + assertErrorsInTestResult(cResult, [error(diag.partOfName, 8, 6)]); // We already reported an error above. var result = await resolveFile2(b); - assertNoErrorsInResult(); + assertErrorsInTestResult(result, const []); var node = result.findNode.singlePartDirective; assertResolvedNodeText(node, r''' @@ -486,7 +490,7 @@ part of 'b.dart'; '''); var result = await resolveFile2(b); - assertNoErrorsInResult(); + assertErrorsInTestResult(result, const []); var node = result.findNode.singlePartDirective; assertResolvedNodeText(node, r''' @@ -516,7 +520,9 @@ part of 'a.dart'; '''); var result = await resolveFile2(b); - assertErrorsInResult([error(diag.partOfDifferentLibrary, 23, 8)]); + assertErrorsInTestResult(result, [ + error(diag.partOfDifferentLibrary, 23, 8), + ]); var node = result.findNode.singlePartDirective; assertResolvedNodeText(node, r''' @@ -544,7 +550,7 @@ part 'c.dart'; newFile('$testPackageLibPath/c.dart', ''); var result = await resolveFile2(b); - assertErrorsInResult([error(diag.partOfNonPart, 23, 8)]); + assertErrorsInTestResult(result, [error(diag.partOfNonPart, 23, 8)]); var node = result.findNode.singlePartDirective; assertResolvedNodeText(node, r''' diff --git a/pkg/analyzer/test/src/dart/resolution/resolution.dart b/pkg/analyzer/test/src/dart/resolution/resolution.dart index df9c75946c7..ee14e64f21b 100644 --- a/pkg/analyzer/test/src/dart/resolution/resolution.dart +++ b/pkg/analyzer/test/src/dart/resolution/resolution.dart @@ -47,28 +47,11 @@ mixin ResolutionTest implements ResourceProviderMixin { final ResolvedNodeTextConfiguration nodeTextConfiguration = ResolvedNodeTextConfiguration(); - late ResolvedUnitResultImpl result; - final DartObjectPrinterConfiguration dartObjectPrinterConfiguration = DartObjectPrinterConfiguration(); - InheritanceManager3 get inheritanceManager { - var library = result.libraryElement; - return library.session.inheritanceManager; - } - - bool get strictCasts { - var analysisOptions = result.session.analysisContext - .getAnalysisOptionsForFile(result.file); - return analysisOptions.strictCasts; - } - File get testFile; - TypeProviderImpl get typeProvider => result.typeProvider; - - TypeSystemImpl get typeSystem => result.typeSystem; - void addTestFile(String content) { newFile(testFile.path, content); } @@ -184,11 +167,21 @@ mixin ResolutionTest implements ResourceProviderMixin { assertErrorsInList(result.diagnostics, expectedDiagnostics); } - void assertErrorsInResult(List expectedDiagnostics) { + void assertErrorsInResult( + ResolvedUnitResult result, + List expectedDiagnostics, + ) { assertErrorsInResolvedUnit(result, expectedDiagnostics); } - void assertHasTestErrors() { + void assertErrorsInTestResult( + TestResolvedUnitResult result, + List expectedDiagnostics, + ) { + assertErrorsInList(result.diagnostics, expectedDiagnostics); + } + + void assertHasTestErrors(TestResolvedUnitResult result) { expect(result.diagnostics, isNotEmpty); } @@ -200,8 +193,12 @@ mixin ResolutionTest implements ResourceProviderMixin { return result; } - void assertNoErrorsInResult() { - assertErrorsInResult(const []); + void assertNoErrorsInResult(ResolvedUnitResult result) { + assertErrorsInResult(result, const []); + } + + void assertNoErrorsInTestResult(TestResolvedUnitResult result) { + assertErrorsInTestResult(result, const []); } void assertParsedNodeText(AstNode node, String expected) { @@ -405,14 +402,13 @@ mixin ResolutionTest implements ResourceProviderMixin { Future resolveFile(File file); - /// Resolve [file] into [result] and return a test view of it. + /// Resolve [file] and return a test view of it. Future resolveFile2(File file) async { - result = await resolveFile(file); - + var result = await resolveFile(file); return TestResolvedUnitResult(result); } - /// Create a new file with the [path] and [content], resolve it into [result]. + /// Create a new file with the [path] and [content], and resolve it. Future resolveFileCode(String path, String content) { var file = newFile(path, content); return resolveFile2(file); @@ -506,6 +502,10 @@ final class TestResolvedUnitResult { File get file => analysisResult.file; + InheritanceManager3 get inheritanceManager { + return libraryElement.session.inheritanceManager; + } + bool get isLibrary => analysisResult.isLibrary; bool get isPart => analysisResult.isPart; @@ -538,5 +538,10 @@ extension ResolvedUnitResultExtension on ResolvedUnitResult { return FindNode(content, unit); } + InheritanceManager3 get inheritanceManager { + var library = libraryElement as LibraryElementImpl; + return library.session.inheritanceManager; + } + String get uriStr => '$uri'; } diff --git a/pkg/analyzer/test/src/dart/resolver/exit_detector_test.dart b/pkg/analyzer/test/src/dart/resolver/exit_detector_test.dart index 39042ea7bb7..7c8991227f3 100644 --- a/pkg/analyzer/test/src/dart/resolver/exit_detector_test.dart +++ b/pkg/analyzer/test/src/dart/resolver/exit_detector_test.dart @@ -1217,7 +1217,7 @@ void f() sync* { } Future _assertHasReturn(String code, int n, bool expected) async { - await resolveTestCode(code); + var result = await resolveTestCode(code); var function = result.unit.declarations.last as FunctionDeclaration; var body = function.functionExpression.body as BlockFunctionBody; diff --git a/pkg/analyzer/test/src/diagnostics/argument_type_not_assignable_test.dart b/pkg/analyzer/test/src/diagnostics/argument_type_not_assignable_test.dart index e796e9a483f..2d793d1a871 100644 --- a/pkg/analyzer/test/src/diagnostics/argument_type_not_assignable_test.dart +++ b/pkg/analyzer/test/src/diagnostics/argument_type_not_assignable_test.dart @@ -24,7 +24,7 @@ class ArgumentTypeNotAssignableTest extends PubPackageResolutionTest { newFile('$testPackageLibPath/lib2.dart', ''' class _A {} g(h(_A a)) {}'''); - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' import 'lib2.dart'; class _A {} f() { diff --git a/pkg/analyzer/test/src/diagnostics/assignment_of_do_not_store_test.dart b/pkg/analyzer/test/src/diagnostics/assignment_of_do_not_store_test.dart index 8a9932ca05f..201f05d5fc7 100644 --- a/pkg/analyzer/test/src/diagnostics/assignment_of_do_not_store_test.dart +++ b/pkg/analyzer/test/src/diagnostics/assignment_of_do_not_store_test.dart @@ -222,7 +222,9 @@ abstract class A { test_noHintsInTestDir() async { // Code that is in a test dir should not trigger the hint. // (See:https://github.com/dart-lang/sdk/issues/45594) - await resolveFileCode('$testPackageRootPath/test/test.dart', r''' + var result = await resolveFileCode( + '$testPackageRootPath/test/test.dart', + r''' import 'package:meta/meta.dart'; class A { @@ -233,8 +235,9 @@ class A { class B { String f = A().v; } -'''); - assertNoErrorsInResult(); +''', + ); + assertNoErrorsInTestResult(result); } test_tearOff() async { diff --git a/pkg/analyzer/test/src/diagnostics/duplicate_constructor_default_test.dart b/pkg/analyzer/test/src/diagnostics/duplicate_constructor_default_test.dart index 0e2af64f20d..fd5017e1bc7 100644 --- a/pkg/analyzer/test/src/diagnostics/duplicate_constructor_default_test.dart +++ b/pkg/analyzer/test/src/diagnostics/duplicate_constructor_default_test.dart @@ -33,11 +33,11 @@ augment class A { } '''); - await resolveFile2(testFile); - assertNoErrorsInResult(); + var result = await resolveFile2(testFile); + assertNoErrorsInTestResult(result); - await resolveFile2(a); - assertNoErrorsInResult(); + result = await resolveFile2(a); + assertNoErrorsInTestResult(result); } @SkippedTest() // TODO(scheglov): implement augmentation @@ -58,11 +58,13 @@ augment class A { } '''); - await resolveFile2(testFile); - assertNoErrorsInResult(); + var result = await resolveFile2(testFile); + assertNoErrorsInTestResult(result); - await resolveFile2(a); - assertErrorsInResult([error(diag.duplicateConstructorDefault, 42, 1)]); + result = await resolveFile2(a); + assertErrorsInTestResult(result, [ + error(diag.duplicateConstructorDefault, 42, 1), + ]); } test_class_primary_unnamed_typeName_new() async { diff --git a/pkg/analyzer/test/src/diagnostics/duplicate_constructor_name_test.dart b/pkg/analyzer/test/src/diagnostics/duplicate_constructor_name_test.dart index a439a8ca2a9..f30ac3bc8e2 100644 --- a/pkg/analyzer/test/src/diagnostics/duplicate_constructor_name_test.dart +++ b/pkg/analyzer/test/src/diagnostics/duplicate_constructor_name_test.dart @@ -33,11 +33,11 @@ augment class A { } '''); - await resolveFile2(testFile); - assertNoErrorsInResult(); + var result = await resolveFile2(testFile); + assertNoErrorsInTestResult(result); - await resolveFile2(a); - assertNoErrorsInResult(); + result = await resolveFile2(a); + assertNoErrorsInTestResult(result); } @SkippedTest() // TODO(scheglov): implement augmentation @@ -59,11 +59,11 @@ augment class A { } '''); - await resolveFile2(testFile); - assertNoErrorsInResult(); + var result = await resolveFile2(testFile); + assertNoErrorsInTestResult(result); - await resolveFile2(a); - assertNoErrorsInResult(); + result = await resolveFile2(a); + assertNoErrorsInTestResult(result); } @SkippedTest() // TODO(scheglov): implement augmentation @@ -84,11 +84,13 @@ augment class A { } '''); - await resolveFile2(testFile); - assertNoErrorsInResult(); + var result = await resolveFile2(testFile); + assertNoErrorsInTestResult(result); - await resolveFile2(a); - assertErrorsInResult([error(diag.duplicateConstructorName, 42, 7)]); + result = await resolveFile2(a); + assertErrorsInTestResult(result, [ + error(diag.duplicateConstructorName, 42, 7), + ]); } test_class_newHead_named_newHead_named() async { diff --git a/pkg/analyzer/test/src/diagnostics/final_class_extended_outside_of_library_test.dart b/pkg/analyzer/test/src/diagnostics/final_class_extended_outside_of_library_test.dart index 22a4c33c192..0795e41157b 100644 --- a/pkg/analyzer/test/src/diagnostics/final_class_extended_outside_of_library_test.dart +++ b/pkg/analyzer/test/src/diagnostics/final_class_extended_outside_of_library_test.dart @@ -46,8 +46,8 @@ class A implements MapEntry { } '''); - await resolveFile2(a); - assertNoErrorsInResult(); + var result = await resolveFile2(a); + assertNoErrorsInTestResult(result); await resolveTestCodeWithDiagnostics(r''' import 'a.dart'; diff --git a/pkg/analyzer/test/src/diagnostics/final_class_implemented_outside_of_library_test.dart b/pkg/analyzer/test/src/diagnostics/final_class_implemented_outside_of_library_test.dart index 7a7c36031a5..8107b011c84 100644 --- a/pkg/analyzer/test/src/diagnostics/final_class_implemented_outside_of_library_test.dart +++ b/pkg/analyzer/test/src/diagnostics/final_class_implemented_outside_of_library_test.dart @@ -45,8 +45,8 @@ class A implements MapEntry { } '''); - await resolveFile2(a); - assertNoErrorsInResult(); + var result = await resolveFile2(a); + assertNoErrorsInTestResult(result); await resolveTestCodeWithDiagnostics(r''' import 'a.dart'; diff --git a/pkg/analyzer/test/src/diagnostics/import_internal_library_test.dart b/pkg/analyzer/test/src/diagnostics/import_internal_library_test.dart index f64958d5fbd..20b57795ca2 100644 --- a/pkg/analyzer/test/src/diagnostics/import_internal_library_test.dart +++ b/pkg/analyzer/test/src/diagnostics/import_internal_library_test.dart @@ -35,8 +35,8 @@ import 'dart:_internal'; var file = newFile('$packageRootPath/lib/js.dart', ''' import 'dart:_wasm'; '''); - await resolveFile2(file); - assertErrorsInResolvedUnit(result, [error(diag.unusedImport, 7, 12)]); + var result = await resolveFile2(file); + assertErrorsInTestResult(result, [error(diag.unusedImport, 7, 12)]); } test_wasm_fromTest() async { @@ -53,8 +53,8 @@ import 'dart:_wasm'; var file = newFile('$packageRootPath/lib/ui.dart', ''' import 'dart:_wasm'; '''); - await resolveFile2(file); - assertErrorsInResolvedUnit(result, [error(diag.unusedImport, 7, 12)]); + var result = await resolveFile2(file); + assertErrorsInTestResult(result, [error(diag.unusedImport, 7, 12)]); } String _newPackage(String packageName) { diff --git a/pkg/analyzer/test/src/diagnostics/invalid_export_of_internal_element_test.dart b/pkg/analyzer/test/src/diagnostics/invalid_export_of_internal_element_test.dart index 9e3f79cadfe..19583df3664 100644 --- a/pkg/analyzer/test/src/diagnostics/invalid_export_of_internal_element_test.dart +++ b/pkg/analyzer/test/src/diagnostics/invalid_export_of_internal_element_test.dart @@ -47,11 +47,16 @@ import 'package:meta/meta.dart'; @internal class One {} '''); - await resolveFileCode('$testPackageBlazeBinPath/lib/bar.dart', r''' + var result = await resolveFileCode( + '$testPackageBlazeBinPath/lib/bar.dart', + r''' export 'src/foo.dart'; -'''); +''', + ); - assertErrorsInResult([error(diag.invalidExportOfInternalElement, 0, 22)]); + assertErrorsInTestResult(result, [ + error(diag.invalidExportOfInternalElement, 0, 22), + ]); } void test_exporterIsInBlazeBinLibSrc() async { @@ -60,11 +65,14 @@ import 'package:meta/meta.dart'; @internal class One {} '''); - await resolveFileCode('$testPackageBlazeBinPath/lib/src/bar.dart', r''' + var result = await resolveFileCode( + '$testPackageBlazeBinPath/lib/src/bar.dart', + r''' export 'foo.dart'; -'''); +''', + ); - assertNoErrorsInResult(); + assertNoErrorsInTestResult(result); } void test_exporterIsInGenfilesLib() async { @@ -73,11 +81,16 @@ import 'package:meta/meta.dart'; @internal class One {} '''); - await resolveFileCode('$testPackageGenfilesPath/lib/bar.dart', r''' + var result = await resolveFileCode( + '$testPackageGenfilesPath/lib/bar.dart', + r''' export 'src/foo.dart'; -'''); +''', + ); - assertErrorsInResult([error(diag.invalidExportOfInternalElement, 0, 22)]); + assertErrorsInTestResult(result, [ + error(diag.invalidExportOfInternalElement, 0, 22), + ]); } void test_exporterIsInGenfilesLibSrc() async { @@ -86,11 +99,14 @@ import 'package:meta/meta.dart'; @internal class One {} '''); - await resolveFileCode('$testPackageGenfilesPath/lib/src/bar.dart', r''' + var result = await resolveFileCode( + '$testPackageGenfilesPath/lib/src/bar.dart', + r''' export 'foo.dart'; -'''); +''', + ); - assertNoErrorsInResult(); + assertNoErrorsInTestResult(result); } void test_exporterIsInLib() async { @@ -99,11 +115,13 @@ import 'package:meta/meta.dart'; @internal class One {} '''); - await resolveFileCode('$testPackageLibPath/bar.dart', r''' + var result = await resolveFileCode('$testPackageLibPath/bar.dart', r''' export 'src/foo.dart'; '''); - assertErrorsInResult([error(diag.invalidExportOfInternalElement, 0, 22)]); + assertErrorsInTestResult(result, [ + error(diag.invalidExportOfInternalElement, 0, 22), + ]); } void test_exporterIsInLibSrc() async { @@ -112,11 +130,11 @@ import 'package:meta/meta.dart'; @internal class One {} '''); - await resolveFileCode('$testPackageLibPath/src/bar.dart', r''' + var result = await resolveFileCode('$testPackageLibPath/src/bar.dart', r''' export 'foo.dart'; '''); - assertNoErrorsInResult(); + assertNoErrorsInTestResult(result); } void test_exporterIsInTest() async { @@ -125,11 +143,14 @@ import 'package:meta/meta.dart'; @internal class One {} '''); - await resolveFileCode('$myPackageRootPath/test/foo_test.dart', r''' + var result = await resolveFileCode( + '$myPackageRootPath/test/foo_test.dart', + r''' export 'package:dart.my/src/foo.dart'; -'''); +''', + ); - assertNoErrorsInResult(); + assertNoErrorsInTestResult(result); } void test_internalIsInBlazeBin() async { @@ -187,11 +208,16 @@ import 'package:meta/meta.dart'; @internal class One {} '''); - await resolveFileCode('$testPackageDartToolPath/lib/bar.dart', r''' + var result = await resolveFileCode( + '$testPackageDartToolPath/lib/bar.dart', + r''' export 'package:test/src/foo.dart'; -'''); +''', + ); - assertErrorsInResult([error(diag.invalidExportOfInternalElement, 0, 35)]); + assertErrorsInTestResult(result, [ + error(diag.invalidExportOfInternalElement, 0, 35), + ]); } @FailingTest( @@ -206,11 +232,14 @@ import 'package:meta/meta.dart'; @internal class One {} '''); - await resolveFileCode('$testPackageDartToolPath/lib/src/bar.dart', r''' + var result = await resolveFileCode( + '$testPackageDartToolPath/lib/src/bar.dart', + r''' export 'package:test/src/foo.dart'; -'''); +''', + ); - assertNoErrorsInResult(); + assertNoErrorsInTestResult(result); } void test_exporterInLib() async { @@ -219,11 +248,13 @@ import 'package:meta/meta.dart'; @internal class One {} '''); - await resolveFileCode('$testPackageRootPath/lib/bar.dart', r''' + var result = await resolveFileCode('$testPackageRootPath/lib/bar.dart', r''' export 'package:test/src/foo.dart'; '''); - assertErrorsInResult([error(diag.invalidExportOfInternalElement, 0, 35)]); + assertErrorsInTestResult(result, [ + error(diag.invalidExportOfInternalElement, 0, 35), + ]); } void test_exporterInLibSrc() async { @@ -232,11 +263,14 @@ import 'package:meta/meta.dart'; @internal class One {} '''); - await resolveFileCode('$testPackageRootPath/lib/src/bar.dart', r''' + var result = await resolveFileCode( + '$testPackageRootPath/lib/src/bar.dart', + r''' export 'package:test/src/foo.dart'; -'''); +''', + ); - assertNoErrorsInResult(); + assertNoErrorsInTestResult(result); } void test_internalIsInGeneratedLibSrc() async { @@ -285,11 +319,13 @@ import 'package:meta/meta.dart'; @internal class One {} '''); - await resolveFileCode('$testPackageLibPath/bar.dart', r''' + var result = await resolveFileCode('$testPackageLibPath/bar.dart', r''' export 'src/foo.dart'; '''); - assertErrorsInResult([error(diag.invalidExportOfInternalElement, 0, 22)]); + assertErrorsInTestResult(result, [ + error(diag.invalidExportOfInternalElement, 0, 22), + ]); } void test_exporterIsInLibSrc() async { @@ -298,11 +334,11 @@ import 'package:meta/meta.dart'; @internal class One {} '''); - await resolveFileCode('$testPackageLibPath/src/bar.dart', r''' + var result = await resolveFileCode('$testPackageLibPath/src/bar.dart', r''' export 'foo.dart'; '''); - assertNoErrorsInResult(); + assertNoErrorsInTestResult(result); } void test_exporterIsInTest() async { @@ -311,11 +347,14 @@ import 'package:meta/meta.dart'; @internal class One {} '''); - await resolveFileCode('$testPackageRootPath/test/foo_test.dart', r''' + var result = await resolveFileCode( + '$testPackageRootPath/test/foo_test.dart', + r''' export 'package:test/src/foo.dart'; -'''); +''', + ); - assertNoErrorsInResult(); + assertNoErrorsInTestResult(result); } void test_internalIsLibSrc() async { diff --git a/pkg/analyzer/test/src/diagnostics/invalid_factory_name_not_a_class_test.dart b/pkg/analyzer/test/src/diagnostics/invalid_factory_name_not_a_class_test.dart index 8a3b04c7310..fb4cc5fc0b3 100644 --- a/pkg/analyzer/test/src/diagnostics/invalid_factory_name_not_a_class_test.dart +++ b/pkg/analyzer/test/src/diagnostics/invalid_factory_name_not_a_class_test.dart @@ -43,8 +43,10 @@ augment class A { } '''); - await resolveFile2(b); - assertErrorsInResult([error(diag.invalidFactoryNameNotAClass, 47, 1)]); + var result = await resolveFile2(b); + assertErrorsInTestResult(result, [ + error(diag.invalidFactoryNameNotAClass, 47, 1), + ]); } test_notEnclosingClassName_withoutPrimaryConstructors() async { @@ -86,7 +88,7 @@ augment class A { } '''); - await resolveFile2(b); - assertNoErrorsInResult(); + var result = await resolveFile2(b); + assertNoErrorsInTestResult(result); } } diff --git a/pkg/analyzer/test/src/diagnostics/invalid_internal_annotation_test.dart b/pkg/analyzer/test/src/diagnostics/invalid_internal_annotation_test.dart index f1d75c9b4bf..a98eb1c4230 100644 --- a/pkg/analyzer/test/src/diagnostics/invalid_internal_annotation_test.dart +++ b/pkg/analyzer/test/src/diagnostics/invalid_internal_annotation_test.dart @@ -28,99 +28,116 @@ version: 0.0.1 } void test_annotationInLib() async { - await resolveFileCode('$testPackageLibPath/foo.dart', r''' + var result = await resolveFileCode('$testPackageLibPath/foo.dart', r''' import 'package:meta/meta.dart'; @internal class One {} '''); - assertErrorsInResult([error(diag.invalidInternalAnnotation, 34, 8)]); + assertErrorsInTestResult(result, [ + error(diag.invalidInternalAnnotation, 34, 8), + ]); } void test_annotationInLib_onLibrary() async { - await resolveFileCode('$testPackageLibPath/foo.dart', r''' + var result = await resolveFileCode('$testPackageLibPath/foo.dart', r''' @internal library foo; import 'package:meta/meta.dart'; '''); - assertErrorsInResult([error(diag.invalidInternalAnnotation, 1, 8)]); + assertErrorsInTestResult(result, [ + error(diag.invalidInternalAnnotation, 1, 8), + ]); } void test_annotationInLibSrc() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; @internal class One {} '''); - assertNoErrorsInResult(); + assertNoErrorsInTestResult(result); } void test_annotationInLibSrcSubdirectory() async { - await resolveFileCode('$testPackageLibPath/src/foo/foo.dart', r''' + var result = await resolveFileCode( + '$testPackageLibPath/src/foo/foo.dart', + r''' import 'package:meta/meta.dart'; @internal class One {} -'''); +''', + ); - assertNoErrorsInResult(); + assertNoErrorsInTestResult(result); } void test_annotationInLibSubdirectory() async { - await resolveFileCode('$testPackageLibPath/foo/foo.dart', r''' + var result = await resolveFileCode('$testPackageLibPath/foo/foo.dart', r''' import 'package:meta/meta.dart'; @internal class One {} '''); - assertErrorsInResult([error(diag.invalidInternalAnnotation, 34, 8)]); + assertErrorsInTestResult(result, [ + error(diag.invalidInternalAnnotation, 34, 8), + ]); } void test_annotationInTest() async { - await resolveFileCode('$testPackageRootPath/test/foo_test.dart', r''' + var result = await resolveFileCode( + '$testPackageRootPath/test/foo_test.dart', + r''' import 'package:meta/meta.dart'; @internal class One {} -'''); +''', + ); - assertNoErrorsInResult(); + assertNoErrorsInTestResult(result); } void test_annotationInTest_extensionType() async { - await resolveFileCode('$testPackageRootPath/test/foo_test.dart', r''' + var result = await resolveFileCode( + '$testPackageRootPath/test/foo_test.dart', + r''' import 'package:meta/meta.dart'; @internal extension type E(int i) {} -'''); +''', + ); - assertNoErrorsInResult(); + assertNoErrorsInTestResult(result); } void test_privateClass() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; @internal class _One {} '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.invalidInternalAnnotation, 34, 8), error(diag.unusedElement, 49, 4), ]); } void test_privateConstructor() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; class C { @internal C._f(); } '''); - assertErrorsInResult([error(diag.invalidInternalAnnotation, 46, 8)]); + assertErrorsInTestResult(result, [ + error(diag.invalidInternalAnnotation, 46, 8), + ]); } void test_privateEnum() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; @internal enum _E {one} '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.invalidInternalAnnotation, 34, 8), error(diag.unusedElement, 48, 2), error(diag.unusedField, 52, 3), @@ -128,181 +145,185 @@ import 'package:meta/meta.dart'; } void test_privateEnumValue() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; enum E {@internal _one} '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.invalidInternalAnnotation, 42, 8), error(diag.unusedField, 51, 4), ]); } void test_privateExtension() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; @internal extension _One on String {} '''); - assertErrorsInResult([error(diag.invalidInternalAnnotation, 34, 8)]); + assertErrorsInTestResult(result, [ + error(diag.invalidInternalAnnotation, 34, 8), + ]); } void test_privateExtension_unnamed() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; @internal extension on String {} '''); - assertErrorsInResult([error(diag.invalidInternalAnnotation, 34, 8)]); + assertErrorsInTestResult(result, [ + error(diag.invalidInternalAnnotation, 34, 8), + ]); } void test_privateExtensionType() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; @internal extension type _E(int i) {} '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.invalidInternalAnnotation, 34, 8), error(diag.unusedElement, 58, 2), ]); } void test_privateField_instance() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; class C { @internal int _i = 0; } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.unusedField, 59, 2), error(diag.invalidInternalAnnotation, 59, 6), ]); } void test_privateField_static() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; class C { @internal static int _i = 0; } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.unusedField, 66, 2), error(diag.invalidInternalAnnotation, 66, 6), ]); } void test_privateGetter() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; class C { @internal int get _i => 0; } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.invalidInternalAnnotation, 46, 8), error(diag.unusedElement, 63, 2), ]); } void test_privateMethod_instance() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; class C { @internal void _f() {} } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.invalidInternalAnnotation, 46, 8), error(diag.unusedElement, 60, 2), ]); } void test_privateMethod_static() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; class C { @internal static void _f() {} } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.invalidInternalAnnotation, 46, 8), error(diag.unusedElement, 67, 2), ]); } void test_privateMixin() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; @internal mixin _One {} '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.invalidInternalAnnotation, 34, 8), error(diag.unusedElement, 49, 4), ]); } void test_privateTopLevelFunction() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; @internal void _f() {} '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.invalidInternalAnnotation, 34, 8), error(diag.unusedElement, 48, 2), ]); } void test_privateTopLevelVariable() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; @internal int _i = 1; '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.invalidInternalAnnotation, 47, 6), error(diag.unusedElement, 47, 2), ]); } void test_privateTypedef() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; @internal typedef _T = void Function(); '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.invalidInternalAnnotation, 34, 8), error(diag.unusedElement, 51, 2), ]); } void test_publicConstructor_named_privateClass() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; class _C { @internal _C.named(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.unusedElement, 39, 2), error(diag.invalidInternalAnnotation, 47, 8), ]); } void test_publicConstructor_primary_privateClass() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; class _C() { @internal @@ -310,59 +331,59 @@ class _C() { } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.unusedElement, 39, 2), error(diag.invalidInternalAnnotation, 49, 8), ]); } void test_publicConstructor_unnamed_privateClass() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; class _C { @internal _C(); } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.unusedElement, 39, 2), error(diag.invalidInternalAnnotation, 47, 8), ]); } void test_publicMethod_privateClass() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; class _C { @internal void f() {} } '''); - assertErrorsInResult([error(diag.unusedElement, 39, 2)]); + assertErrorsInTestResult(result, [error(diag.unusedElement, 39, 2)]); } void test_publicMethod_privateClass_static() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; class _C { @internal static void f() {} } '''); - assertErrorsInResult([ + assertErrorsInTestResult(result, [ error(diag.unusedElement, 39, 2), error(diag.unusedElement, 68, 1), ]); } void test_publicMethod_privateExtensionType() async { - await resolveFileCode(testPackageLibSrcFilePath, r''' + var result = await resolveFileCode(testPackageLibSrcFilePath, r''' import 'package:meta/meta.dart'; extension type _E(int i) { @internal void f() {} } '''); - assertErrorsInResult([error(diag.unusedElement, 48, 2)]); + assertErrorsInTestResult(result, [error(diag.unusedElement, 48, 2)]); } } diff --git a/pkg/analyzer/test/src/diagnostics/invalid_language_override_greater_test.dart b/pkg/analyzer/test/src/diagnostics/invalid_language_override_greater_test.dart index 4aae8114e95..845730c4804 100644 --- a/pkg/analyzer/test/src/diagnostics/invalid_language_override_greater_test.dart +++ b/pkg/analyzer/test/src/diagnostics/invalid_language_override_greater_test.dart @@ -23,21 +23,22 @@ class InvalidLanguageOverrideGreaterTest extends PubPackageResolutionTest { test_greaterThanLatest() async { var latestVersion = ExperimentStatus.currentVersion; - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' // @dart = ${latestVersion.major}.${latestVersion.minor + 1} // [diag.invalidLanguageVersionOverrideGreater][column 1][length 15] The language version override can't specify a version greater than the latest known language version: 3.13. class A {} '''); - _assertUnitLanguageVersion(package: latestVersion, override: null); + _assertUnitLanguageVersion(result, package: latestVersion, override: null); } test_greaterThanPackage() async { _configureTestPackageLanguageVersion('2.5'); - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' // @dart = 2.12 int? a; '''); _assertUnitLanguageVersion( + result, package: Version.parse('2.5.0'), override: Version.parse('2.12.0'), ); @@ -45,17 +46,19 @@ int? a; test_lessThanPackage() async { _configureTestPackageLanguageVersion('2.19'); - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' // @dart = 2.18 class A {} '''); _assertUnitLanguageVersion( + result, package: Version.parse('2.19.0'), override: Version.parse('2.18.0'), ); } - void _assertUnitLanguageVersion({ + void _assertUnitLanguageVersion( + TestResolvedUnitResult result, { required Version package, required Version? override, }) { diff --git a/pkg/analyzer/test/src/diagnostics/invalid_use_of_internal_member_test.dart b/pkg/analyzer/test/src/diagnostics/invalid_use_of_internal_member_test.dart index 28ac753c030..32008a0d046 100644 --- a/pkg/analyzer/test/src/diagnostics/invalid_use_of_internal_member_test.dart +++ b/pkg/analyzer/test/src/diagnostics/invalid_use_of_internal_member_test.dart @@ -46,9 +46,9 @@ import 'src/a.dart'; A a = A(); '''); - await resolveFile2(a); + var result = await resolveFile2(a); - assertNoErrorsInResult(); + assertNoErrorsInTestResult(result); } test_insidePackage_extensionType() async { @@ -62,9 +62,9 @@ import 'src/a.dart'; E e = E(1); '''); - await resolveFile2(a); + var result = await resolveFile2(a); - assertNoErrorsInResult(); + assertNoErrorsInTestResult(result); } test_outsidePackage_class() async { diff --git a/pkg/analyzer/test/src/diagnostics/mixin_application_not_implemented_interface_test.dart b/pkg/analyzer/test/src/diagnostics/mixin_application_not_implemented_interface_test.dart index 20bef13edfe..8c456d3befb 100644 --- a/pkg/analyzer/test/src/diagnostics/mixin_application_not_implemented_interface_test.dart +++ b/pkg/analyzer/test/src/diagnostics/mixin_application_not_implemented_interface_test.dart @@ -293,7 +293,7 @@ part of 'test.dart'; augment enum E with M {} '''); - await resolveFile2(a); - assertNoErrorsInResult(); + var result = await resolveFile2(a); + assertNoErrorsInTestResult(result); } } diff --git a/pkg/analyzer/test/src/diagnostics/mixin_on_sealed_class_test.dart b/pkg/analyzer/test/src/diagnostics/mixin_on_sealed_class_test.dart index 0f2fde67f6c..6d9224abe41 100644 --- a/pkg/analyzer/test/src/diagnostics/mixin_on_sealed_class_test.dart +++ b/pkg/analyzer/test/src/diagnostics/mixin_on_sealed_class_test.dart @@ -61,11 +61,11 @@ import '../lib1.dart'; mixin Bar on Foo {} '''); - await resolveFile2(lib1); - assertNoErrorsInResult(); + var result = await resolveFile2(lib1); + assertNoErrorsInTestResult(result); - await resolveFile2(lib2); - assertNoErrorsInResult(); + result = await resolveFile2(lib2); + assertNoErrorsInTestResult(result); } test_withinPackageTestDirectory_OK() async { @@ -79,11 +79,11 @@ import 'package:test/lib1.dart'; mixin Bar on Foo {} '''); - await resolveFile2(lib1); - assertNoErrorsInResult(); + var result = await resolveFile2(lib1); + assertNoErrorsInTestResult(result); - await resolveFile2(lib2); - assertNoErrorsInResult(); + result = await resolveFile2(lib2); + assertNoErrorsInTestResult(result); } test_withinPart_OK() async { @@ -98,10 +98,10 @@ part of 'lib1.dart'; mixin Bar on Foo {} '''); - await resolveFile2(lib1); - assertNoErrorsInResult(); + var result = await resolveFile2(lib1); + assertNoErrorsInTestResult(result); - await resolveFile2(lib2); - assertNoErrorsInResult(); + result = await resolveFile2(lib2); + assertNoErrorsInTestResult(result); } } diff --git a/pkg/analyzer/test/src/diagnostics/non_const_map_as_expression_statement_test.dart b/pkg/analyzer/test/src/diagnostics/non_const_map_as_expression_statement_test.dart index e8bf4da472a..e498be0f2d4 100644 --- a/pkg/analyzer/test/src/diagnostics/non_const_map_as_expression_statement_test.dart +++ b/pkg/analyzer/test/src/diagnostics/non_const_map_as_expression_statement_test.dart @@ -26,7 +26,7 @@ f() { {'a' : 0, 'b' : 1}.length; } '''); - await resolveTestFile(); + var result = await resolveTestFile(); expect( result.diagnostics[0].diagnosticCode, diag.nonConstMapAsExpressionStatement, @@ -43,7 +43,7 @@ f() { {'a' : 0, 'b' : 1}; } '''); - await resolveTestFile(); + var result = await resolveTestFile(); expect( result.diagnostics[0].diagnosticCode, diag.nonConstMapAsExpressionStatement, diff --git a/pkg/analyzer/test/src/diagnostics/return_of_do_not_store_test.dart b/pkg/analyzer/test/src/diagnostics/return_of_do_not_store_test.dart index 7579ad63fa7..dd1c3ccc5cd 100644 --- a/pkg/analyzer/test/src/diagnostics/return_of_do_not_store_test.dart +++ b/pkg/analyzer/test/src/diagnostics/return_of_do_not_store_test.dart @@ -43,7 +43,9 @@ class A { test_noHintsInTestDir() async { // Code that is in a test dir should not trigger the hint. // (See:https://github.com/dart-lang/sdk/issues/45594) - await resolveFileCode('$testPackageRootPath/test/test.dart', r''' + var result = await resolveFileCode( + '$testPackageRootPath/test/test.dart', + r''' import 'package:meta/meta.dart'; @doNotStore @@ -57,8 +59,9 @@ String f() { String g() { return _v; } -'''); - assertNoErrorsInResult(); +''', + ); + assertNoErrorsInTestResult(result); } test_returnFromClosureInFunction() async { diff --git a/pkg/analyzer/test/src/diagnostics/subtype_of_base_is_not_base_final_or_sealed_test.dart b/pkg/analyzer/test/src/diagnostics/subtype_of_base_is_not_base_final_or_sealed_test.dart index 51ea3580d97..ff0fd879ef7 100644 --- a/pkg/analyzer/test/src/diagnostics/subtype_of_base_is_not_base_final_or_sealed_test.dart +++ b/pkg/analyzer/test/src/diagnostics/subtype_of_base_is_not_base_final_or_sealed_test.dart @@ -57,8 +57,8 @@ import 'dart:collection'; abstract class A implements LinkedListEntry {} '''); - await resolveFile2(a); - assertNoErrorsInResult(); + var result = await resolveFile2(a); + assertNoErrorsInTestResult(result); await resolveTestCodeWithDiagnostics(r''' import 'a.dart'; @@ -99,8 +99,8 @@ import 'dart:collection'; abstract class A implements LinkedListEntry {} '''); - await resolveFile2(a); - assertNoErrorsInResult(); + var result = await resolveFile2(a); + assertNoErrorsInTestResult(result); await resolveTestCodeWithDiagnostics(r''' import 'a.dart'; diff --git a/pkg/analyzer/test/src/diagnostics/subtype_of_final_is_not_base_final_or_sealed_test.dart b/pkg/analyzer/test/src/diagnostics/subtype_of_final_is_not_base_final_or_sealed_test.dart index 9217541e099..b2416e77cac 100644 --- a/pkg/analyzer/test/src/diagnostics/subtype_of_final_is_not_base_final_or_sealed_test.dart +++ b/pkg/analyzer/test/src/diagnostics/subtype_of_final_is_not_base_final_or_sealed_test.dart @@ -77,8 +77,8 @@ class A implements MapEntry { } '''); - await resolveFile2(a); - assertNoErrorsInResult(); + var result = await resolveFile2(a); + assertNoErrorsInTestResult(result); await resolveTestCodeWithDiagnostics(r''' import 'a.dart'; @@ -128,8 +128,8 @@ class A implements MapEntry { } '''); - await resolveFile2(a); - assertNoErrorsInResult(); + var result = await resolveFile2(a); + assertNoErrorsInTestResult(result); await resolveTestCodeWithDiagnostics(r''' import 'a.dart'; diff --git a/pkg/analyzer/test/src/diagnostics/subtype_of_sealed_class_test.dart b/pkg/analyzer/test/src/diagnostics/subtype_of_sealed_class_test.dart index 094a4dade4d..3ff97f38cda 100644 --- a/pkg/analyzer/test/src/diagnostics/subtype_of_sealed_class_test.dart +++ b/pkg/analyzer/test/src/diagnostics/subtype_of_sealed_class_test.dart @@ -160,14 +160,14 @@ import 'package:meta/meta.dart'; @sealed class Foo {} '''); - await resolveFileCode('$testPackageLibPath/src/b.dart', r''' + var result = await resolveFileCode('$testPackageLibPath/src/b.dart', r''' import '../a.dart'; class Bar1 extends Foo {} class Bar2 implements Foo {} class Bar4 = Bar1 with Foo; mixin Bar5 implements Foo {} '''); - assertNoErrorsInResult(); + assertNoErrorsInTestResult(result); } test_withinPackageTestDirectory_language219() async { @@ -177,15 +177,18 @@ import 'package:meta/meta.dart'; @sealed class Foo {} '''); - await resolveFileCode('$testPackageRootPath/test/test.dart', r''' + var result = await resolveFileCode( + '$testPackageRootPath/test/test.dart', + r''' import 'package:test/a.dart'; class Bar1 extends Foo {} class Bar2 implements Foo {} class Bar4 = Bar1 with Foo; mixin Bar5 implements Foo {} -'''); - assertNoErrorsInResult(); +''', + ); + assertNoErrorsInTestResult(result); } test_withinPart_language219() async { @@ -205,10 +208,10 @@ class Bar4 = Bar1 with Foo; mixin Bar5 implements Foo {} '''); - await resolveFile2(lib); - assertNoErrorsInResult(); + var result = await resolveFile2(lib); + assertNoErrorsInTestResult(result); - await resolveFile2(part); - assertNoErrorsInResult(); + result = await resolveFile2(part); + assertNoErrorsInTestResult(result); } } diff --git a/pkg/analyzer/test/src/diagnostics/unused_element_test.dart b/pkg/analyzer/test/src/diagnostics/unused_element_test.dart index 158a6f7ffe0..f217b93d76d 100644 --- a/pkg/analyzer/test/src/diagnostics/unused_element_test.dart +++ b/pkg/analyzer/test/src/diagnostics/unused_element_test.dart @@ -1236,7 +1236,7 @@ void foo() { C._(); } '''); - await resolveTestFile(); + var result = await resolveTestFile(); expect(result.diagnostics, isNotEmpty); } @@ -3326,7 +3326,7 @@ void foo() { _f(); } '''); - await resolveTestFile(); + var result = await resolveTestFile(); expect(result.diagnostics, isNotEmpty); } @@ -3341,7 +3341,7 @@ void foo() { C()._m(); } '''); - await resolveTestFile(); + var result = await resolveTestFile(); expect(result.diagnostics, isNotEmpty); } diff --git a/pkg/analyzer/test/src/diagnostics/uri_does_not_exist_test.dart b/pkg/analyzer/test/src/diagnostics/uri_does_not_exist_test.dart index 978f3091f8d..3085dff9248 100644 --- a/pkg/analyzer/test/src/diagnostics/uri_does_not_exist_test.dart +++ b/pkg/analyzer/test/src/diagnostics/uri_does_not_exist_test.dart @@ -85,8 +85,8 @@ import 'target.dart'; analysisDriver.removeFile(filePath); await analysisDriver.applyPendingFileChanges(); - await resolveTestFile(); - assertErrorsInResult([error(diag.uriDoesNotExist, 7, 13)]); + var result = await resolveTestFile(); + assertErrorsInTestResult(result, [error(diag.uriDoesNotExist, 7, 13)]); } test_libraryImport_cannotResolve() async { @@ -129,8 +129,8 @@ import 'target.dart'; // Make sure the error goes away. // TODO(brianwilkerson): The error does not go away, possibly because the // file is not being reanalyzed. - await resolveTestFile(); - assertErrorsInResult([error(diag.unusedImport, 0, 0)]); + var result = await resolveTestFile(); + assertErrorsInTestResult(result, [error(diag.unusedImport, 0, 0)]); } test_part() async { diff --git a/pkg/analyzer/test/src/ignore_comments/ignore_info_test.dart b/pkg/analyzer/test/src/ignore_comments/ignore_info_test.dart index 50ff6af9775..5cc481e0c11 100644 --- a/pkg/analyzer/test/src/ignore_comments/ignore_info_test.dart +++ b/pkg/analyzer/test/src/ignore_comments/ignore_info_test.dart @@ -281,7 +281,7 @@ class IgnoreInfoTest extends PubPackageResolutionTest { ); Future> _parseIgnoredElements(String comment) async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' $comment int x = 1; '''); diff --git a/pkg/analyzer/test/src/services/top_level_declarations_test.dart b/pkg/analyzer/test/src/services/top_level_declarations_test.dart index 62736f5fa44..865e01035e3 100644 --- a/pkg/analyzer/test/src/services/top_level_declarations_test.dart +++ b/pkg/analyzer/test/src/services/top_level_declarations_test.dart @@ -19,9 +19,13 @@ main() { class TopLevelDeclarationsTest extends PubPackageResolutionTest { /// Verifies that the located public export for [element] is the library with /// URI [libraryUri]. - Future expectPublicExport(Element element, String libraryUri) async { + Future expectPublicExport( + TestResolvedUnitResult result, + Element element, + String libraryUri, + ) async { var publicLibrary = await TopLevelDeclarations( - result, + result.analysisResult, ).publiclyExporting(element); expect(publicLibrary?.firstFragment.source.uri.toString(), libraryUri); } @@ -34,7 +38,7 @@ class TopLevelDeclarationsTest extends PubPackageResolutionTest { newFile('$testPackageLibPath/x.dart', "export 'src/x.dart';"); var element = result.findElement.topGet('x'); - await expectPublicExport(element, 'package:test/x.dart'); + await expectPublicExport(result, element, 'package:test/x.dart'); } test_publiclyExporting_lib() async { @@ -44,7 +48,7 @@ class TopLevelDeclarationsTest extends PubPackageResolutionTest { ); var element = result.findElement.class_('X'); - await expectPublicExport(element, 'package:test/x.dart'); + await expectPublicExport(result, element, 'package:test/x.dart'); } /// Verify we pick a library with the correct element and not just an element @@ -61,7 +65,7 @@ class TopLevelDeclarationsTest extends PubPackageResolutionTest { newFile('$testPackageLibPath/x3.dart', "class X {}"); var element = result.findElement.class_('X'); - await expectPublicExport(element, 'package:test/x2.dart'); + await expectPublicExport(result, element, 'package:test/x2.dart'); } test_publiclyExporting_setter() async { @@ -72,7 +76,7 @@ class TopLevelDeclarationsTest extends PubPackageResolutionTest { newFile('$testPackageLibPath/x.dart', "export 'src/x.dart';"); var element = result.findElement.topSet('x'); - await expectPublicExport(element, 'package:test/x.dart'); + await expectPublicExport(result, element, 'package:test/x.dart'); } test_publiclyExporting_src() async { @@ -83,6 +87,6 @@ class TopLevelDeclarationsTest extends PubPackageResolutionTest { newFile('$testPackageLibPath/x.dart', "export 'src/x.dart';"); var element = result.findElement.class_('X'); - await expectPublicExport(element, 'package:test/x.dart'); + await expectPublicExport(result, element, 'package:test/x.dart'); } } diff --git a/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart b/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart index a9f6a0f8a32..58cf7482de6 100644 --- a/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart +++ b/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart @@ -166,7 +166,7 @@ void main() { } test_compoundAssignment_simpleIdentifier_topLevel() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class A {} class B extends A { @@ -183,7 +183,7 @@ main() { // [diag.unusedLocalVariable] The value of the local variable 'v' isn't used. } '''); - _assertTypeAnnotations(); + _assertTypeAnnotations(result); } test_forIn_identifier() async { @@ -492,7 +492,7 @@ main() { expect(yFragment.element.type, VoidTypeImpl.instance); } - void _assertTypeAnnotations() { + void _assertTypeAnnotations(TestResolvedUnitResult result) { var code = result.content; var unit = result.unit; diff --git a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart index b94e729e8b6..325ff1b92ce 100644 --- a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart +++ b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart @@ -2,7 +2,6 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/dart/element/type.dart'; import 'package:analyzer/error/error.dart'; import 'package:analyzer/file_system/file_system.dart'; @@ -27,40 +26,36 @@ class InferredTypeTest extends PubPackageResolutionTest { return getFile('${sdkRoot.posixPath}/lib/async/async.dart'); } - LibraryElement get _resultLibraryElement { - return result.libraryElement; - } - test_asyncClosureReturnType_flatten() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' Future futureInt = null; // ^^^^ // [diag.invalidAssignment] A value of type 'Null' can't be assigned to a variable of type 'Future'. var f = () => futureInt; var g = () async => futureInt; '''); - var futureInt = _resultLibraryElement.topLevelVariables[0]; + var futureInt = result.libraryElement.topLevelVariables[0]; expect(futureInt.name, 'futureInt'); _assertTypeStr(futureInt.type, 'Future'); - var f = _resultLibraryElement.topLevelVariables[1]; + var f = result.libraryElement.topLevelVariables[1]; expect(f.name, 'f'); _assertTypeStr(f.type, 'Future Function()'); - var g = _resultLibraryElement.topLevelVariables[2]; + var g = result.libraryElement.topLevelVariables[2]; expect(g.name, 'g'); _assertTypeStr(g.type, 'Future Function()'); } test_asyncClosureReturnType_future() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' var f = () async => 0; '''); - var f = _resultLibraryElement.topLevelVariables[0]; + var f = result.libraryElement.topLevelVariables[0]; expect(f.name, 'f'); _assertTypeStr(f.type, 'Future Function()'); } test_asyncClosureReturnType_futureOr() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' import 'dart:async'; FutureOr futureOrInt = null; // ^^^^ @@ -68,13 +63,13 @@ FutureOr futureOrInt = null; var f = () => futureOrInt; var g = () async => futureOrInt; '''); - var futureOrInt = _resultLibraryElement.topLevelVariables[0]; + var futureOrInt = result.libraryElement.topLevelVariables[0]; expect(futureOrInt.name, 'futureOrInt'); _assertTypeStr(futureOrInt.type, 'FutureOr'); - var f = _resultLibraryElement.topLevelVariables[1]; + var f = result.libraryElement.topLevelVariables[1]; expect(f.name, 'f'); _assertTypeStr(f.type, 'FutureOr Function()'); - var g = _resultLibraryElement.topLevelVariables[2]; + var g = result.libraryElement.topLevelVariables[2]; expect(g.name, 'g'); _assertTypeStr(g.type, 'Future Function()'); } @@ -216,13 +211,13 @@ main() { } test_blockBodiedLambdas_downwardsIncompatibleWithUpwardsInference_topLevel() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' String f() => null; // ^^^^ // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function 'f' because it has a return type of 'String'. var g = f; '''); - var g = _resultLibraryElement.topLevelVariables[0]; + var g = result.libraryElement.topLevelVariables[0]; _assertTypeStr(g.type, 'String Function()'); } @@ -410,23 +405,23 @@ main() { } test_bottom() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' var v = null; '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; _assertTypeStr(v.type, 'dynamic'); } test_bottom_inClosure() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' var v = () => null; '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; _assertTypeStr(v.type, 'Null Function()'); } test_circularReference_viaClosures() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' var x = () => y; // ^ // [diag.topLevelCycle] The type of 'x' can't be inferred because it depends on itself through the cycle: x, y. @@ -435,8 +430,8 @@ var y = () => x; // [diag.topLevelCycle] The type of 'y' can't be inferred because it depends on itself through the cycle: x, y. '''); - var x = _resultLibraryElement.topLevelVariables[0]; - var y = _resultLibraryElement.topLevelVariables[1]; + var x = result.libraryElement.topLevelVariables[0]; + var y = result.libraryElement.topLevelVariables[1]; expect(x.name, 'x'); expect(y.name, 'y'); _assertTypeStr(x.type, 'dynamic'); @@ -446,7 +441,7 @@ var y = () => x; @SkippedTest(reason: 'Element model rewrite') test_circularReference_viaClosures_initializerTypes() async { print('-' * 64); - await assertErrorsInCode( + var result = await assertErrorsInCode( ''' var x = () => y; var y = () => x; @@ -454,8 +449,8 @@ var y = () => x; [error(diag.topLevelCycle, 4, 1), error(diag.topLevelCycle, 21, 1)], ); - var x = _resultLibraryElement.topLevelVariables[0]; - var y = _resultLibraryElement.topLevelVariables[1]; + var x = result.libraryElement.topLevelVariables[0]; + var y = result.libraryElement.topLevelVariables[1]; expect(x.name, 'x'); expect(y.name, 'y'); _assertTypeStr(x.type, 'dynamic'); @@ -2068,7 +2063,7 @@ void main() { } test_fieldRefersToStaticGetter() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class C { final x = _x; static int get _x => null; @@ -2076,12 +2071,12 @@ class C { // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function '_x' because it has a return type of 'int'. } '''); - var x = _resultLibraryElement.classes[0].fields[0]; + var x = result.libraryElement.classes[0].fields[0]; _assertTypeStr(x.type, 'int'); } test_fieldRefersToTopLevelGetter() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class C { final x = y; } @@ -2089,7 +2084,7 @@ int get y => null; // ^^^^ // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function 'y' because it has a return type of 'int'. '''); - var x = _resultLibraryElement.classes[0].fields[0]; + var x = result.libraryElement.classes[0].fields[0]; _assertTypeStr(x.type, 'int'); } @@ -2880,7 +2875,7 @@ main() { } test_genericMethods_inferGenericFunctionParameterType() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class C extends D { f(x) { return null; } // ^^^^ @@ -2893,12 +2888,12 @@ class D { } typedef void F(V v); '''); - var f = _resultLibraryElement.getClass('C')!.methods[0]; + var f = result.libraryElement.getClass('C')!.methods[0]; _assertTypeStr(f.type, 'void Function(U) Function(U)'); } test_genericMethods_inferGenericFunctionParameterType2() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' class C extends D { f(g) => null; } @@ -2907,12 +2902,12 @@ abstract class D { } typedef List G(); '''); - var f = _resultLibraryElement.getClass('C')!.methods[0]; + var f = result.libraryElement.getClass('C')!.methods[0]; _assertTypeStr(f.type, 'void Function(List Function())'); } test_genericMethods_inferGenericFunctionReturnType() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class C extends D { f(x) { return null; } // ^^^^ @@ -2925,7 +2920,7 @@ class D { } typedef V F(); '''); - var f = _resultLibraryElement.getClass('C')!.methods[0]; + var f = result.libraryElement.getClass('C')!.methods[0]; _assertTypeStr(f.type, 'U Function() Function(U)'); } @@ -3016,7 +3011,7 @@ main() { } test_genericMethods_usesGreatestLowerBound_topLevel() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' typedef Iterable F(int x); typedef List G(double x); @@ -3026,7 +3021,7 @@ T generic(a(T _), b(T _)) => null; var v = generic((F f) => null, (G g) => null); '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; _assertTypeStr(v.type, 'List Function(num)'); } @@ -3716,7 +3711,7 @@ main() { } test_inferParameterType_setter_fromField() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class C extends D { set foo(x) {} } @@ -3726,12 +3721,12 @@ class D { // [diag.notInitializedNonNullableInstanceField] Non-nullable instance field 'foo' must be initialized. } '''); - var f = _resultLibraryElement.getClass('C')!.setters[0]; + var f = result.libraryElement.getClass('C')!.setters[0]; _assertTypeStr(f.type, 'void Function(int)'); } test_inferParameterType_setter_fromSetter() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' class C extends D { set foo(x) {} } @@ -3739,12 +3734,12 @@ class D { set foo(int x) {} } '''); - var f = _resultLibraryElement.getClass('C')!.setters[0]; + var f = result.libraryElement.getClass('C')!.setters[0]; _assertTypeStr(f.type, 'void Function(int)'); } test_inferred_nonstatic_field_depends_on_static_field_complex() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' class C { static var x = 'x'; var y = { @@ -3753,25 +3748,25 @@ class C { }; } '''); - var x = _resultLibraryElement.getClass('C')!.fields[0]; + var x = result.libraryElement.getClass('C')!.fields[0]; expect(x.name, 'x'); _assertTypeStr(x.type, 'String'); - var y = _resultLibraryElement.getClass('C')!.fields[1]; + var y = result.libraryElement.getClass('C')!.fields[1]; expect(y.name, 'y'); _assertTypeStr(y.type, 'Map>'); } test_inferred_nonstatic_field_depends_on_toplevel_var_simple() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' var x = 'x'; class C { var y = x; } '''); - var x = _resultLibraryElement.topLevelVariables[0]; + var x = result.libraryElement.topLevelVariables[0]; expect(x.name, 'x'); _assertTypeStr(x.type, 'String'); - var y = _resultLibraryElement.getClass('C')!.fields[0]; + var y = result.libraryElement.getClass('C')!.fields[0]; expect(y.name, 'y'); _assertTypeStr(y.type, 'String'); } @@ -3801,7 +3796,7 @@ main() { } test_inferredType_cascade() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class A { int a; // ^ @@ -3813,12 +3808,12 @@ class A { } var v = new A()..a = 1..b.add(2)..m(); '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; _assertTypeStr(v.type, 'A'); } test_inferredType_customBinaryOp() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class C { bool operator*(C other) => true; } @@ -3827,13 +3822,13 @@ C c; // [diag.notInitializedNonNullableVariable] The non-nullable variable 'c' must be initialized. var x = c*c; '''); - var x = _resultLibraryElement.topLevelVariables[1]; + var x = result.libraryElement.topLevelVariables[1]; expect(x.name, 'x'); _assertTypeStr(x.type, 'bool'); } test_inferredType_customBinaryOp_viaInterface() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class I { bool operator*(C other) => true; } @@ -3843,7 +3838,7 @@ C c; // [diag.notInitializedNonNullableVariable] The non-nullable variable 'c' must be initialized. var x = c*c; '''); - var x = _resultLibraryElement.topLevelVariables[1]; + var x = result.libraryElement.topLevelVariables[1]; expect(x.name, 'x'); _assertTypeStr(x.type, 'bool'); } @@ -3890,7 +3885,7 @@ main() { } test_inferredType_customUnaryOp() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class C { bool operator-() => true; } @@ -3899,13 +3894,13 @@ C c; // [diag.notInitializedNonNullableVariable] The non-nullable variable 'c' must be initialized. var x = -c; '''); - var x = _resultLibraryElement.topLevelVariables[1]; + var x = result.libraryElement.topLevelVariables[1]; expect(x.name, 'x'); _assertTypeStr(x.type, 'bool'); } test_inferredType_customUnaryOp_viaInterface() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class I { bool operator-() => true; } @@ -3915,13 +3910,13 @@ C c; // [diag.notInitializedNonNullableVariable] The non-nullable variable 'c' must be initialized. var x = -c; '''); - var x = _resultLibraryElement.topLevelVariables[1]; + var x = result.libraryElement.topLevelVariables[1]; expect(x.name, 'x'); _assertTypeStr(x.type, 'bool'); } test_inferredType_extractMethodTearOff() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class C { bool g() => true; } @@ -3930,13 +3925,13 @@ C f() => null; // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function 'f' because it has a return type of 'C'. var x = f().g; '''); - var x = _resultLibraryElement.topLevelVariables[0]; + var x = result.libraryElement.topLevelVariables[0]; expect(x.name, 'x'); _assertTypeStr(x.type, 'bool Function()'); } test_inferredType_extractMethodTearOff_viaInterface() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class I { bool g() => true; } @@ -3946,21 +3941,21 @@ C f() => null; // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function 'f' because it has a return type of 'C'. var x = f().g; '''); - var x = _resultLibraryElement.topLevelVariables[0]; + var x = result.libraryElement.topLevelVariables[0]; expect(x.name, 'x'); _assertTypeStr(x.type, 'bool Function()'); } test_inferredType_fromTopLevelExecutableTearoff() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' var v = print; '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; _assertTypeStr(v.type, 'void Function(Object?)'); } test_inferredType_invokeMethod() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class C { bool g() => true; } @@ -3969,13 +3964,13 @@ C f() => null; // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function 'f' because it has a return type of 'C'. var x = f().g(); '''); - var x = _resultLibraryElement.topLevelVariables[0]; + var x = result.libraryElement.topLevelVariables[0]; expect(x.name, 'x'); _assertTypeStr(x.type, 'bool'); } test_inferredType_invokeMethod_viaInterface() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class I { bool g() => true; } @@ -3985,49 +3980,49 @@ C f() => null; // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function 'f' because it has a return type of 'C'. var x = f().g(); '''); - var x = _resultLibraryElement.topLevelVariables[0]; + var x = result.libraryElement.topLevelVariables[0]; expect(x.name, 'x'); _assertTypeStr(x.type, 'bool'); } test_inferredType_isEnum() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' enum E { v1 } final x = E.v1; '''); - var x = _resultLibraryElement.topLevelVariables[0]; + var x = result.libraryElement.topLevelVariables[0]; _assertTypeStr(x.type, 'E'); } test_inferredType_isEnumValues() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' enum E { v1 } final x = E.values; '''); - var x = _resultLibraryElement.topLevelVariables[0]; + var x = result.libraryElement.topLevelVariables[0]; _assertTypeStr(x.type, 'List'); } test_inferredType_isTypedef() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' typedef void F(); final x = {}; '''); - var x = _resultLibraryElement.topLevelVariables[0]; + var x = result.libraryElement.topLevelVariables[0]; _assertTypeStr(x.type, 'Map'); } test_inferredType_isTypedef_parameterized() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' typedef T F(); final x = >{}; '''); - var x = _resultLibraryElement.topLevelVariables[0]; + var x = result.libraryElement.topLevelVariables[0]; _assertTypeStr(x.type, 'Map'); } test_inferredType_usesSyntheticFunctionType() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' int f() => null; // ^^^^ // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function 'f' because it has a return type of 'int'. @@ -4036,12 +4031,12 @@ String g() => null; // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function 'g' because it has a return type of 'String'. var v = [f, g]; '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; _assertTypeStr(v.type, 'List'); } test_inferredType_usesSyntheticFunctionType_functionTypedParam() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' int f(int x(String y)) => null; // ^^^^ // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function 'f' because it has a return type of 'int'. @@ -4050,12 +4045,12 @@ String g(int x(String y)) => null; // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function 'g' because it has a return type of 'String'. var v = [f, g]; '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; _assertTypeStr(v.type, 'List'); } test_inferredType_usesSyntheticFunctionType_namedParam() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' int f({int x}) => null; // ^ // [diag.missingDefaultValueForParameter] The parameter 'x' can't have a value of 'null' because of its type, but the implicit default value is 'null'. @@ -4068,12 +4063,12 @@ String g({int x}) => null; // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function 'g' because it has a return type of 'String'. var v = [f, g]; '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; _assertTypeStr(v.type, 'List'); } test_inferredType_usesSyntheticFunctionType_positionalParam() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' int f([int x]) => null; // ^ // [diag.missingDefaultValueForParameterPositional] The parameter 'x' can't have a value of 'null' because of its type, but the implicit default value is 'null'. @@ -4086,12 +4081,12 @@ String g([int x]) => null; // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function 'g' because it has a return type of 'String'. var v = [f, g]; '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; _assertTypeStr(v.type, 'List'); } test_inferredType_usesSyntheticFunctionType_requiredParam() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' int f(int x) => null; // ^^^^ // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function 'f' because it has a return type of 'int'. @@ -4100,46 +4095,46 @@ String g(int x) => null; // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function 'g' because it has a return type of 'String'. var v = [f, g]; '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; _assertTypeStr(v.type, 'List'); } test_inferredType_viaClosure_multipleLevelsOfNesting() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' class C { static final f = (bool b) => (int i) => {i: b}; } '''); - var f = _resultLibraryElement.getClass('C')!.fields[0]; + var f = result.libraryElement.getClass('C')!.fields[0]; _assertTypeStr(f.type, 'Map Function(int) Function(bool)'); } test_inferredType_viaClosure_typeDependsOnArgs() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' class C { static final f = (bool b) => b; } '''); - var f = _resultLibraryElement.getClass('C')!.fields[0]; + var f = result.libraryElement.getClass('C')!.fields[0]; _assertTypeStr(f.type, 'bool Function(bool)'); } test_inferredType_viaClosure_typeIndependentOfArgs_field() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' class C { static final f = (bool b) => 1; } '''); - var f = _resultLibraryElement.getClass('C')!.fields[0]; + var f = result.libraryElement.getClass('C')!.fields[0]; _assertTypeStr(f.type, 'int Function(bool)'); } test_inferredType_viaClosure_typeIndependentOfArgs_topLevel() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' final f = (bool b) => 1; '''); - var f = _resultLibraryElement.topLevelVariables[0]; + var f = result.libraryElement.topLevelVariables[0]; _assertTypeStr(f.type, 'int Function(bool)'); } @@ -4708,11 +4703,11 @@ test() { } test_inferVariableVoid() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' void f() {} var x = f(); '''); - var x = _resultLibraryElement.topLevelVariables[0]; + var x = result.libraryElement.topLevelVariables[0]; expect(x.name, 'x'); _assertTypeStr(x.type, 'void'); } @@ -4799,10 +4794,10 @@ test2() { } test_listLiteralsCanInferNull_topLevel() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' var x = [null]; '''); - var x = _resultLibraryElement.topLevelVariables[0]; + var x = result.libraryElement.topLevelVariables[0]; _assertTypeStr(x.type, 'List'); } @@ -4921,15 +4916,15 @@ test1() { } test_mapLiteralsCanInferNull_topLevel() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' var x = { null: null }; '''); - var x = _resultLibraryElement.topLevelVariables[0]; + var x = result.libraryElement.topLevelVariables[0]; _assertTypeStr(x.type, 'Map'); } test_methodCall_withTypeArguments_instanceMethod() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class C { D f() => null; // ^^^^ @@ -4938,12 +4933,12 @@ class C { class D {} var f = new C().f(); '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; _assertTypeStr(v.type, 'D'); } test_methodCall_withTypeArguments_instanceMethod_identifierSequence() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class C { D f() => null; // ^^^^ @@ -4955,13 +4950,13 @@ C c; // [diag.notInitializedNonNullableVariable] The non-nullable variable 'c' must be initialized. var f = c.f(); '''); - var v = _resultLibraryElement.topLevelVariables[1]; + var v = result.libraryElement.topLevelVariables[1]; expect(v.name, 'f'); _assertTypeStr(v.type, 'D'); } test_methodCall_withTypeArguments_staticMethod() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' class C { static D f() => null; // ^^^^ @@ -4970,19 +4965,19 @@ class C { class D {} var f = C.f(); '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; _assertTypeStr(v.type, 'D'); } test_methodCall_withTypeArguments_topLevelFunction() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' D f() => null; // ^^^^ // [diag.returnOfInvalidTypeFromFunction] A value of type 'Null' can't be returned from the function 'f' because it has a return type of 'D'. class D {} var g = f(); '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; _assertTypeStr(v.type, 'D'); } @@ -5155,11 +5150,11 @@ void main() { } test_referenceToTypedef() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' typedef void F(); final x = F; '''); - var x = _resultLibraryElement.topLevelVariables[0]; + var x = result.libraryElement.topLevelVariables[0]; _assertTypeStr(x.type, 'Type'); } @@ -5269,7 +5264,7 @@ class C { } test_staticMethod_tearoff() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' const v = C.f; class C { static int f(String s) => null; @@ -5277,7 +5272,7 @@ class C { // [diag.returnOfInvalidTypeFromMethod] A value of type 'Null' can't be returned from the method 'f' because it has a return type of 'int'. } '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; _assertTypeStr(v.type, 'int Function(String)'); } @@ -5297,25 +5292,25 @@ main() { } test_unsafeBlockClosureInference_constructorCall_explicitDynamicParam() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' class C { C(T x()); } var v = new C(() { return 1; }); '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; expect(v.name, 'v'); _assertTypeStr(v.type, 'C'); } test_unsafeBlockClosureInference_constructorCall_explicitTypeParam() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' class C { C(T x()); } var v = new C(() { return 1; }); '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; expect(v.name, 'v'); _assertTypeStr(v.type, 'C'); } @@ -5341,23 +5336,23 @@ main() { } test_unsafeBlockClosureInference_constructorCall_noTypeParam() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' class C { C(x()); } var v = new C(() { return 1; }); '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; expect(v.name, 'v'); _assertTypeStr(v.type, 'C'); } test_unsafeBlockClosureInference_functionCall_explicitDynamicParam() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' List f(T g()) => [g()]; var v = f(() { return 1; }); '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; expect(v.name, 'v'); _assertTypeStr(v.type, 'List'); } @@ -5365,31 +5360,31 @@ var v = f(() { return 1; }); // Failing without null safety. test_unsafeBlockClosureInference_functionCall_explicitDynamicParam_viaExpr1() async { // Note: (f) is not a valid syntax. - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' List f(T g()) => [g()]; var v = (f)(() { return 1; }); '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; expect(v.name, 'v'); _assertTypeStr(v.type, 'List'); } test_unsafeBlockClosureInference_functionCall_explicitDynamicParam_viaExpr2() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' List f(T g()) => [g()]; var v = (f)(() { return 1; }); '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; expect(v.name, 'v'); _assertTypeStr(v.type, 'List'); } test_unsafeBlockClosureInference_functionCall_explicitTypeParam() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' List f(T g()) => [g()]; var v = f(() { return 1; }); '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; expect(v.name, 'v'); _assertTypeStr(v.type, 'List'); } @@ -5399,21 +5394,21 @@ var v = f(() { return 1; }); // Failing without null safety. test_unsafeBlockClosureInference_functionCall_explicitTypeParam_viaExpr1() async { // Note: (f) is not a valid syntax. - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' List f(T g()) => [g()]; var v = (f)(() { return 1; }); '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; expect(v.name, 'v'); _assertTypeStr(v.type, 'List'); } test_unsafeBlockClosureInference_functionCall_explicitTypeParam_viaExpr2() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' List f(T g()) => [g()]; var v = (f)(() { return 1; }); '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; expect(v.name, 'v'); _assertTypeStr(v.type, 'List'); } @@ -5618,19 +5613,19 @@ main() { } test_unsafeBlockClosureInference_methodCall_noTypeParam() async { - await resolveTestCodeWithDiagnostics(''' + var result = await resolveTestCodeWithDiagnostics(''' class C { double f(x) => 1.0; } var v = new C().f(() { return 1; }); '''); - var v = _resultLibraryElement.topLevelVariables[0]; + var v = result.libraryElement.topLevelVariables[0]; expect(v.name, 'v'); _assertTypeStr(v.type, 'double'); } test_voidReturnTypeEquivalentToDynamic() async { - await resolveTestCodeWithDiagnostics(r''' + var result = await resolveTestCodeWithDiagnostics(r''' T run(T f()) { print("running"); var t = f(); @@ -5658,8 +5653,8 @@ main() { } '''); - var x = _resultLibraryElement.topLevelVariables[0]; - var y = _resultLibraryElement.topLevelVariables[1]; + var x = result.libraryElement.topLevelVariables[0]; + var y = result.libraryElement.topLevelVariables[1]; _assertTypeStr(x.type, 'dynamic'); _assertTypeStr(y.type, 'void'); } @@ -5668,7 +5663,7 @@ main() { String code, List expectedDiagnostics, ) async { - await resolveTestCode(code); + var result = await resolveTestCode(code); assertErrorsInList( result.diagnostics.where((e) { return e.diagnosticCode != diag.unusedLocalVariable && diff --git a/pkg/analyzer/test/src/wolf/ir/ast_to_ir_test.dart b/pkg/analyzer/test/src/wolf/ir/ast_to_ir_test.dart index da3aa4b4f30..e58f6f219d9 100644 --- a/pkg/analyzer/test/src/wolf/ir/ast_to_ir_test.dart +++ b/pkg/analyzer/test/src/wolf/ir/ast_to_ir_test.dart @@ -71,7 +71,7 @@ class C { } test(C c, int other) => c $op other; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.binary('c $op other')] ..containsSubrange(astNodes[result.findNode.simple('c $op')]!) ..containsSubrange(astNodes[result.findNode.simple('other;')]!); @@ -81,7 +81,7 @@ test(C c, int other) => c $op other; check(other).equals(123); return 456; }); - check(runInterpreter([c, 123])).equals(456); + check(runInterpreter(result, [c, 123])).equals(456); } Future checkBinaryOpEq(String op) async { @@ -91,7 +91,7 @@ class C { } test(List list, int other) => list.first $op= other; '''); - analyze(unitResult.findNode.singleFunctionDeclaration); + analyze(unitResult, unitResult.findNode.singleFunctionDeclaration); check(astNodes)[unitResult.findNode.assignment('list.first $op= other')] ..containsSubrange(astNodes[unitResult.findNode.simple('list.first')]!) ..containsSubrange(astNodes[unitResult.findNode.prefixed('list.first')]!) @@ -104,7 +104,9 @@ test(List list, int other) => list.first $op= other; return result; }); var values = [c]; - check(runInterpreter([makeList(values), 123])).identicalTo(result); + check( + runInterpreter(unitResult, [makeList(unitResult, values), 123]), + ).identicalTo(result); check(values[0]).identicalTo(result); } @@ -132,30 +134,32 @@ test(List list, int other) => list.first $op= other; return value; } - ListInstance makeList(List values) => ListInstance( - typeProvider.listType(typeProvider.objectQuestionType), - values, - ); + ListInstance makeList(TestResolvedUnitResult result, List values) => + ListInstance( + result.typeProvider.listType(result.typeProvider.objectQuestionType), + values, + ); - Object? runInterpreter(List args) => interpret( - ir, - args, - scopes: scopes, - callDispatcher: _CallDispatcher(this), - typeProvider: typeProvider, - typeSystem: typeSystem, - ); + Object? runInterpreter(TestResolvedUnitResult result, List args) => + interpret( + ir, + args, + scopes: scopes, + callDispatcher: _CallDispatcher(this), + typeProvider: result.typeProvider, + typeSystem: result.typeSystem, + ); test_adjacentStrings() async { var result = await resolveTestCodeWithDiagnostics(''' test() => 'foo' " " 'bar'; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.adjacentStrings('foo')] ..containsSubrange(astNodes[result.findNode.stringLiteral('foo')]!) ..containsSubrange(astNodes[result.findNode.stringLiteral('" "')]!) ..containsSubrange(astNodes[result.findNode.stringLiteral('bar')]!); - check(runInterpreter([])).equals('foo bar'); + check(runInterpreter(result, [])).equals('foo bar'); } test_assignmentExpression_binaryAndEq() => checkBinaryOpEq('&'); @@ -178,11 +182,11 @@ test() { return i; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.assignment('i +=')] ..containsSubrange(astNodes[result.findNode.simple('i +=')]!) ..containsSubrange(astNodes[result.findNode.integerLiteral('456')]!); - check(runInterpreter([])).equals(579); + check(runInterpreter(result, [])).equals(579); } test_assignmentExpression_local_compound_value() async { @@ -192,11 +196,11 @@ test() { return i += 456; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.assignment('i +=')] ..containsSubrange(astNodes[result.findNode.simple('i +=')]!) ..containsSubrange(astNodes[result.findNode.integerLiteral('456')]!); - check(runInterpreter([])).equals(579); + check(runInterpreter(result, [])).equals(579); } test_assignmentExpression_local_ifNull_sideEffect() async { @@ -208,14 +212,16 @@ test(int? i) { return j; } '''); - analyze(result.findNode.functionDeclaration('test')); + analyze(result, result.findNode.functionDeclaration('test')); check(astNodes)[result.findNode.assignment('j ??=')] ..containsSubrange(astNodes[result.findNode.simple('j ??=')]!) ..containsSubrange( astNodes[result.findNode.methodInvocation("hook(123, '123')")]!, ); - expectHooks(['123'], () => check(runInterpreter([null])).equals(123)); - expectHooks([], () => check(runInterpreter([1])).equals(1)); + expectHooks([ + '123', + ], () => check(runInterpreter(result, [null])).equals(123)); + expectHooks([], () => check(runInterpreter(result, [1])).equals(1)); } test_assignmentExpression_local_ifNull_value() async { @@ -226,14 +232,16 @@ test(int? i) { return j ??= hook(123, '123'); } '''); - analyze(result.findNode.functionDeclaration('test')); + analyze(result, result.findNode.functionDeclaration('test')); check(astNodes)[result.findNode.assignment('j ??=')] ..containsSubrange(astNodes[result.findNode.simple('j ??=')]!) ..containsSubrange( astNodes[result.findNode.methodInvocation("hook(123, '123')")]!, ); - expectHooks(['123'], () => check(runInterpreter([null])).equals(123)); - expectHooks([], () => check(runInterpreter([1])).equals(1)); + expectHooks([ + '123', + ], () => check(runInterpreter(result, [null])).equals(123)); + expectHooks([], () => check(runInterpreter(result, [1])).equals(1)); } test_assignmentExpression_local_simple_sideEffect() async { @@ -244,11 +252,11 @@ test() { return i; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.assignment('i =')] ..containsSubrange(astNodes[result.findNode.simple('i =')]!) ..containsSubrange(astNodes[result.findNode.integerLiteral('123')]!); - check(runInterpreter([])).equals(123); + check(runInterpreter(result, [])).equals(123); } test_assignmentExpression_local_simple_value() async { @@ -258,11 +266,11 @@ test() { return i = 123; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.assignment('i =')] ..containsSubrange(astNodes[result.findNode.simple('i =')]!) ..containsSubrange(astNodes[result.findNode.integerLiteral('123')]!); - check(runInterpreter([])).equals(123); + check(runInterpreter(result, [])).equals(123); } test_assignmentExpression_minusEq() => checkBinaryOpEq('-'); @@ -276,22 +284,22 @@ test(int i) { return i; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.assignment('i +=')] ..containsSubrange(astNodes[result.findNode.simple('i +=')]!) ..containsSubrange(astNodes[result.findNode.integerLiteral('456')]!); - check(runInterpreter([123])).equals(579); + check(runInterpreter(result, [123])).equals(579); } test_assignmentExpression_parameter_compound_value() async { var result = await resolveTestCodeWithDiagnostics(''' test(int i) => i += 456; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.assignment('i +=')] ..containsSubrange(astNodes[result.findNode.simple('i +=')]!) ..containsSubrange(astNodes[result.findNode.integerLiteral('456')]!); - check(runInterpreter([123])).equals(579); + check(runInterpreter(result, [123])).equals(579); } test_assignmentExpression_parameter_ifNull_sideEffect() async { @@ -302,14 +310,16 @@ test(int? i) { return i; } '''); - analyze(result.findNode.functionDeclaration('test')); + analyze(result, result.findNode.functionDeclaration('test')); check(astNodes)[result.findNode.assignment('i ??=')] ..containsSubrange(astNodes[result.findNode.simple('i ??=')]!) ..containsSubrange( astNodes[result.findNode.methodInvocation("hook(123, '123')")]!, ); - expectHooks(['123'], () => check(runInterpreter([null])).equals(123)); - expectHooks([], () => check(runInterpreter([1])).equals(1)); + expectHooks([ + '123', + ], () => check(runInterpreter(result, [null])).equals(123)); + expectHooks([], () => check(runInterpreter(result, [1])).equals(1)); } test_assignmentExpression_parameter_ifNull_value() async { @@ -317,14 +327,16 @@ test(int? i) { external int? hook(int? x, String s); test(int? i) => i ??= hook(123, '123'); '''); - analyze(result.findNode.functionDeclaration('test')); + analyze(result, result.findNode.functionDeclaration('test')); check(astNodes)[result.findNode.assignment('i ??=')] ..containsSubrange(astNodes[result.findNode.simple('i ??=')]!) ..containsSubrange( astNodes[result.findNode.methodInvocation("hook(123, '123')")]!, ); - expectHooks(['123'], () => check(runInterpreter([null])).equals(123)); - expectHooks([], () => check(runInterpreter([1])).equals(1)); + expectHooks([ + '123', + ], () => check(runInterpreter(result, [null])).equals(123)); + expectHooks([], () => check(runInterpreter(result, [1])).equals(1)); } test_assignmentExpression_parameter_simple_sideEffect() async { @@ -334,22 +346,22 @@ test(int i) { return i; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.assignment('i =')] ..containsSubrange(astNodes[result.findNode.simple('i =')]!) ..containsSubrange(astNodes[result.findNode.integerLiteral('123')]!); - check(runInterpreter([1])).equals(123); + check(runInterpreter(result, [1])).equals(123); } test_assignmentExpression_parameter_simple_value() async { var result = await resolveTestCodeWithDiagnostics(''' test(int i) => i = 123; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.assignment('i =')] ..containsSubrange(astNodes[result.findNode.simple('i =')]!) ..containsSubrange(astNodes[result.findNode.integerLiteral('123')]!); - check(runInterpreter([1])).equals(123); + check(runInterpreter(result, [1])).equals(123); } test_assignmentExpression_plusEq() => checkBinaryOpEq('+'); @@ -358,14 +370,14 @@ test(int i) => i = 123; var result = await resolveTestCodeWithDiagnostics(''' test(List? l) => l?.length -= 2; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.assignment('l?.length -= 2')] ..containsSubrange(astNodes[result.findNode.simple('l?.length')]!) ..containsSubrange(astNodes[result.findNode.propertyAccess('l?.length')]!) ..containsSubrange(astNodes[result.findNode.integerLiteral('2')]!); - check(runInterpreter([null])).equals(null); + check(runInterpreter(result, [null])).equals(null); var l = ['a', 'b', 'c', 'd', 'e']; - check(runInterpreter([makeList(l)])).equals(3); + check(runInterpreter(result, [makeList(result, l)])).equals(3); check(l).deepEquals(['a', 'b', 'c']); } @@ -377,7 +389,7 @@ class C { } test(C? c) => c?.p ??= hook(123, '123'); '''); - analyze(result.findNode.functionDeclaration('test')); + analyze(result, result.findNode.functionDeclaration('test')); check(astNodes)[result.findNode.assignment("c?.p ??= hook(123, '123')")] ..containsSubrange(astNodes[result.findNode.simple('c?.p')]!) ..containsSubrange(astNodes[result.findNode.propertyAccess('c?.p')]!) @@ -390,15 +402,15 @@ test(C? c) => c?.p ??= hook(123, '123'); (c, value) => hook(p = value, 'c.p=$value'), ); var c = Instance(result.findElement.class_('C').thisType); - expectHooks([], () => check(runInterpreter([null])).equals(null)); + expectHooks([], () => check(runInterpreter(result, [null])).equals(null)); expectHooks([ 'c.p', '123', 'c.p=123', - ], () => check(runInterpreter([c])).equals(123)); + ], () => check(runInterpreter(result, [c])).equals(123)); check(p).equals(123); p = 456; - expectHooks(['c.p'], () => check(runInterpreter([c])).equals(456)); + expectHooks(['c.p'], () => check(runInterpreter(result, [c])).equals(456)); check(p).equals(456); } @@ -406,14 +418,14 @@ test(C? c) => c?.p ??= hook(123, '123'); var result = await resolveTestCodeWithDiagnostics(''' test(List? l) => l?.length = 3; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.assignment('l?.length = 3')] ..containsSubrange(astNodes[result.findNode.simple('l?.length')]!) ..containsSubrange(astNodes[result.findNode.propertyAccess('l?.length')]!) ..containsSubrange(astNodes[result.findNode.integerLiteral('3')]!); - check(runInterpreter([null])).equals(null); + check(runInterpreter(result, [null])).equals(null); var l = ['a', 'b', 'c', 'd', 'e']; - check(runInterpreter([makeList(l)])).equals(3); + check(runInterpreter(result, [makeList(result, l)])).equals(3); check(l).deepEquals(['a', 'b', 'c']); } @@ -421,13 +433,13 @@ test(List? l) => l?.length = 3; var result = await resolveTestCodeWithDiagnostics(''' test(List l) => l.length -= 2; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.assignment('l.length -= 2')] ..containsSubrange(astNodes[result.findNode.simple('l.length')]!) ..containsSubrange(astNodes[result.findNode.prefixed('l.length')]!) ..containsSubrange(astNodes[result.findNode.integerLiteral('2')]!); var l = ['a', 'b', 'c', 'd', 'e']; - check(runInterpreter([makeList(l)])).equals(3); + check(runInterpreter(result, [makeList(result, l)])).equals(3); check(l).deepEquals(['a', 'b', 'c']); } @@ -439,7 +451,7 @@ class C { } test(C c) => c.p ??= hook(123, '123'); '''); - analyze(result.findNode.functionDeclaration('test')); + analyze(result, result.findNode.functionDeclaration('test')); check(astNodes)[result.findNode.assignment("c.p ??= hook(123, '123')")] ..containsSubrange(astNodes[result.findNode.simple('c.p')]!) ..containsSubrange(astNodes[result.findNode.prefixed('c.p')]!) @@ -456,10 +468,10 @@ test(C c) => c.p ??= hook(123, '123'); 'c.p', '123', 'c.p=123', - ], () => check(runInterpreter([c])).equals(123)); + ], () => check(runInterpreter(result, [c])).equals(123)); check(p).equals(123); p = 456; - expectHooks(['c.p'], () => check(runInterpreter([c])).equals(456)); + expectHooks(['c.p'], () => check(runInterpreter(result, [c])).equals(456)); check(p).equals(456); } @@ -467,13 +479,13 @@ test(C c) => c.p ??= hook(123, '123'); var result = await resolveTestCodeWithDiagnostics(''' test(List l) => l.length = 3; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.assignment('l.length = 3')] ..containsSubrange(astNodes[result.findNode.simple('l.length')]!) ..containsSubrange(astNodes[result.findNode.prefixed('l.length')]!) ..containsSubrange(astNodes[result.findNode.integerLiteral('3')]!); var l = ['a', 'b', 'c', 'd', 'e']; - check(runInterpreter([makeList(l)])).equals(3); + check(runInterpreter(result, [makeList(result, l)])).equals(3); check(l).deepEquals(['a', 'b', 'c']); } @@ -481,7 +493,7 @@ test(List l) => l.length = 3; var result = await resolveTestCodeWithDiagnostics(''' test(List l) => (l).length -= 2; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.assignment('(l).length -= 2')] ..containsSubrange(astNodes[result.findNode.parenthesized('(l)')]!) ..containsSubrange( @@ -489,7 +501,7 @@ test(List l) => (l).length -= 2; ) ..containsSubrange(astNodes[result.findNode.integerLiteral('2')]!); var l = ['a', 'b', 'c', 'd', 'e']; - check(runInterpreter([makeList(l)])).equals(3); + check(runInterpreter(result, [makeList(result, l)])).equals(3); check(l).deepEquals(['a', 'b', 'c']); } @@ -501,7 +513,7 @@ class C { } test(C c) => (c).p ??= hook(123, '123'); '''); - analyze(result.findNode.functionDeclaration('test')); + analyze(result, result.findNode.functionDeclaration('test')); check(astNodes)[result.findNode.assignment("(c).p ??= hook(123, '123')")] ..containsSubrange(astNodes[result.findNode.parenthesized('(c)')]!) ..containsSubrange(astNodes[result.findNode.propertyAccess('(c).p')]!) @@ -518,10 +530,10 @@ test(C c) => (c).p ??= hook(123, '123'); 'c.p', '123', 'c.p=123', - ], () => check(runInterpreter([c])).equals(123)); + ], () => check(runInterpreter(result, [c])).equals(123)); check(p).equals(123); p = 456; - expectHooks(['c.p'], () => check(runInterpreter([c])).equals(456)); + expectHooks(['c.p'], () => check(runInterpreter(result, [c])).equals(456)); check(p).equals(456); } @@ -529,7 +541,7 @@ test(C c) => (c).p ??= hook(123, '123'); var result = await resolveTestCodeWithDiagnostics(''' test(List l) => (l).length = 3; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.assignment('(l).length = 3')] ..containsSubrange(astNodes[result.findNode.parenthesized('(l)')]!) ..containsSubrange( @@ -537,7 +549,7 @@ test(List l) => (l).length = 3; ) ..containsSubrange(astNodes[result.findNode.integerLiteral('3')]!); var l = ['a', 'b', 'c', 'd', 'e']; - check(runInterpreter([makeList(l)])).equals(3); + check(runInterpreter(result, [makeList(result, l)])).equals(3); check(l).deepEquals(['a', 'b', 'c']); } @@ -547,12 +559,12 @@ extension E on List { test() => length -= 2; } '''); - analyze(result.findNode.singleMethodDeclaration); + analyze(result, result.findNode.singleMethodDeclaration); check(astNodes)[result.findNode.assignment('length -= 2')] ..containsSubrange(astNodes[result.findNode.simple('length')]!) ..containsSubrange(astNodes[result.findNode.integerLiteral('2')]!); var l = ['a', 'b', 'c', 'd', 'e']; - check(runInterpreter([makeList(l)])).equals(3); + check(runInterpreter(result, [makeList(result, l)])).equals(3); check(l).deepEquals(['a', 'b', 'c']); } @@ -564,7 +576,7 @@ class C { test() => p ??= hook(123, '123'); } '''); - analyze(result.findNode.methodDeclaration('test')); + analyze(result, result.findNode.methodDeclaration('test')); check(astNodes)[result.findNode.assignment("p ??= hook(123, '123')")] ..containsSubrange(astNodes[result.findNode.simple('p ??=')]!) ..containsSubrange( @@ -580,10 +592,10 @@ class C { 'c.p', '123', 'c.p=123', - ], () => check(runInterpreter([c])).equals(123)); + ], () => check(runInterpreter(result, [c])).equals(123)); check(p).equals(123); p = 456; - expectHooks(['c.p'], () => check(runInterpreter([c])).equals(456)); + expectHooks(['c.p'], () => check(runInterpreter(result, [c])).equals(456)); check(p).equals(456); } @@ -593,12 +605,12 @@ extension E on List { test() => length = 3; } '''); - analyze(result.findNode.singleMethodDeclaration); + analyze(result, result.findNode.singleMethodDeclaration); check(astNodes)[result.findNode.assignment('length = 3')] ..containsSubrange(astNodes[result.findNode.simple('length')]!) ..containsSubrange(astNodes[result.findNode.integerLiteral('3')]!); var l = ['a', 'b', 'c', 'd', 'e']; - check(runInterpreter([makeList(l)])).equals(3); + check(runInterpreter(result, [makeList(result, l)])).equals(3); check(l).deepEquals(['a', 'b', 'c']); } @@ -612,16 +624,18 @@ extension E on List { var result = await resolveTestCodeWithDiagnostics(''' test(Future f) async => await f; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.awaitExpression('await')].containsSubrange( astNodes[result.findNode.simple('f;')]!, ); - var f = Instance(typeProvider.futureType(typeProvider.intType)); + var f = Instance( + result.typeProvider.futureType(result.typeProvider.intType), + ); _onAwait = (operand) { check(operand).identicalTo(f); return 123; }; - check(runInterpreter([f])).equals(123); + check(runInterpreter(result, [f])).equals(123); } test_binaryExpression_and() async { @@ -629,7 +643,7 @@ test(Future f) async => await f; external bool hook(bool b, String s); test(bool x, bool y) => hook(x, 'x') && hook(y, 'y'); '''); - analyze(result.findNode.functionDeclaration('test')); + analyze(result, result.findNode.functionDeclaration('test')); check(astNodes)[result.findNode.binary("hook(x, 'x') && hook(y, 'y')")] ..containsSubrange( astNodes[result.findNode.methodInvocation("hook(x, 'x')")]!, @@ -639,18 +653,18 @@ test(bool x, bool y) => hook(x, 'x') && hook(y, 'y'); ); expectHooks([ 'x', - ], () => check(runInterpreter([false, false])).equals(false)); + ], () => check(runInterpreter(result, [false, false])).equals(false)); expectHooks([ 'x', - ], () => check(runInterpreter([false, true])).equals(false)); + ], () => check(runInterpreter(result, [false, true])).equals(false)); expectHooks([ 'x', 'y', - ], () => check(runInterpreter([true, false])).equals(false)); + ], () => check(runInterpreter(result, [true, false])).equals(false)); expectHooks([ 'x', 'y', - ], () => check(runInterpreter([true, true])).equals(true)); + ], () => check(runInterpreter(result, [true, true])).equals(true)); } test_binaryExpression_binaryAnd() => checkBinaryOp('&'); @@ -665,15 +679,15 @@ test(bool x, bool y) => hook(x, 'x') && hook(y, 'y'); var result = await resolveTestCodeWithDiagnostics(''' test(Object? x, Object? y) => x == y; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.binary('x == y')] ..containsSubrange(astNodes[result.findNode.simple('x ==')]!) ..containsSubrange(astNodes[result.findNode.simple('y;')]!); - check(runInterpreter([null, null])).equals(true); - check(runInterpreter([null, 1])).equals(false); - check(runInterpreter([1, null])).equals(false); - check(runInterpreter([1, 2])).equals(false); - check(runInterpreter([1, 1])).equals(true); + check(runInterpreter(result, [null, null])).equals(true); + check(runInterpreter(result, [null, 1])).equals(false); + check(runInterpreter(result, [1, null])).equals(false); + check(runInterpreter(result, [1, 2])).equals(false); + check(runInterpreter(result, [1, 1])).equals(true); } test_binaryExpression_greaterThan() => checkBinaryOp('>'); @@ -685,7 +699,7 @@ test(Object? x, Object? y) => x == y; external Object? hook(Object? x, String s); test(Object? x, Object? y) => hook(x, 'x') ?? hook(y, 'y'); '''); - analyze(result.findNode.functionDeclaration('test')); + analyze(result, result.findNode.functionDeclaration('test')); check(astNodes)[result.findNode.binary("hook(x, 'x') ?? hook(y, 'y')")] ..containsSubrange( astNodes[result.findNode.methodInvocation("hook(x, 'x')")]!, @@ -696,13 +710,17 @@ test(Object? x, Object? y) => hook(x, 'x') ?? hook(y, 'y'); expectHooks([ 'x', 'y', - ], () => check(runInterpreter([null, null])).equals(null)); + ], () => check(runInterpreter(result, [null, null])).equals(null)); expectHooks([ 'x', 'y', - ], () => check(runInterpreter([null, 456])).equals(456)); - expectHooks(['x'], () => check(runInterpreter([123, null])).equals(123)); - expectHooks(['x'], () => check(runInterpreter([123, 456])).equals(123)); + ], () => check(runInterpreter(result, [null, 456])).equals(456)); + expectHooks([ + 'x', + ], () => check(runInterpreter(result, [123, null])).equals(123)); + expectHooks([ + 'x', + ], () => check(runInterpreter(result, [123, 456])).equals(123)); } test_binaryExpression_integerDivide() => checkBinaryOp('~/'); @@ -721,15 +739,15 @@ test(Object? x, Object? y) => hook(x, 'x') ?? hook(y, 'y'); var result = await resolveTestCodeWithDiagnostics(''' test(Object? x, Object? y) => x != y; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.binary('x != y')] ..containsSubrange(astNodes[result.findNode.simple('x !=')]!) ..containsSubrange(astNodes[result.findNode.simple('y;')]!); - check(runInterpreter([null, null])).equals(false); - check(runInterpreter([null, 1])).equals(true); - check(runInterpreter([1, null])).equals(true); - check(runInterpreter([1, 2])).equals(true); - check(runInterpreter([1, 1])).equals(false); + check(runInterpreter(result, [null, null])).equals(false); + check(runInterpreter(result, [null, 1])).equals(true); + check(runInterpreter(result, [1, null])).equals(true); + check(runInterpreter(result, [1, 2])).equals(true); + check(runInterpreter(result, [1, 1])).equals(false); } test_binaryExpression_or() async { @@ -737,7 +755,7 @@ test(Object? x, Object? y) => x != y; external bool hook(bool b, String s); test(bool x, bool y) => hook(x, 'x') || hook(y, 'y'); '''); - analyze(result.findNode.functionDeclaration('test')); + analyze(result, result.findNode.functionDeclaration('test')); check(astNodes)[result.findNode.binary("hook(x, 'x') || hook(y, 'y')")] ..containsSubrange( astNodes[result.findNode.methodInvocation("hook(x, 'x')")]!, @@ -748,13 +766,17 @@ test(bool x, bool y) => hook(x, 'x') || hook(y, 'y'); expectHooks([ 'x', 'y', - ], () => check(runInterpreter([false, false])).equals(false)); + ], () => check(runInterpreter(result, [false, false])).equals(false)); expectHooks([ 'x', 'y', - ], () => check(runInterpreter([false, true])).equals(true)); - expectHooks(['x'], () => check(runInterpreter([true, false])).equals(true)); - expectHooks(['x'], () => check(runInterpreter([true, true])).equals(true)); + ], () => check(runInterpreter(result, [false, true])).equals(true)); + expectHooks([ + 'x', + ], () => check(runInterpreter(result, [true, false])).equals(true)); + expectHooks([ + 'x', + ], () => check(runInterpreter(result, [true, true])).equals(true)); } test_binaryExpression_plus() => checkBinaryOp('+'); @@ -773,7 +795,7 @@ test(int i) { return i; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.block('123')] ..containsSubrange( astNodes[result.findNode.expressionStatement('i = 123')]!, @@ -784,7 +806,7 @@ test(int i) { ..containsSubrange( astNodes[result.findNode.returnStatement('return i')]!, ); - check(runInterpreter([1])).equals(456); + check(runInterpreter(result, [1])).equals(456); } test_blockFunctionBody() async { @@ -793,20 +815,20 @@ test() { return 123; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.blockFunctionBody('123')].containsSubrange( astNodes[result.findNode.block('123')]!, ); - check(runInterpreter([])).equals(123); + check(runInterpreter(result, [])).equals(123); } test_booleanLiteral() async { var result = await resolveTestCodeWithDiagnostics(''' test() => true; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes).containsNode(result.findNode.booleanLiteral('true')); - check(runInterpreter([])).equals(true); + check(runInterpreter(result, [])).equals(true); } test_breakStatement_fromDoLoop() async { @@ -818,10 +840,10 @@ test(int count, List result) { } while (count > 0); } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes).containsNode(result.findNode.breakStatement('break')); var values = []; - check(runInterpreter([5, makeList(values)])).equals(null); + check(runInterpreter(result, [5, makeList(result, values)])).equals(null); check(values).deepEquals([5, 4, 3]); } @@ -834,10 +856,10 @@ test(int count, List result) { } } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes).containsNode(result.findNode.breakStatement('break')); var values = []; - check(runInterpreter([5, makeList(values)])).equals(null); + check(runInterpreter(result, [5, makeList(result, values)])).equals(null); check(values).deepEquals([0, 1, 2]); } @@ -850,10 +872,10 @@ test(int count, List result) { } } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes).containsNode(result.findNode.breakStatement('break')); var values = []; - check(runInterpreter([5, makeList(values)])).equals(null); + check(runInterpreter(result, [5, makeList(result, values)])).equals(null); check(values).deepEquals([4, 3, 2]); } @@ -861,13 +883,13 @@ test(int count, List result) { var result = await resolveTestCodeWithDiagnostics(''' test(bool b) => b ? 1 : 2; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.conditionalExpression('b ? 1 : 2')] ..containsSubrange(astNodes[result.findNode.simple('b ?')]!) ..containsSubrange(astNodes[result.findNode.integerLiteral('1')]!) ..containsSubrange(astNodes[result.findNode.integerLiteral('2')]!); - check(runInterpreter([true])).equals(1); - check(runInterpreter([false])).equals(2); + check(runInterpreter(result, [true])).equals(1); + check(runInterpreter(result, [false])).equals(2); } test_continueStatement_inDoLoop() async { @@ -879,10 +901,10 @@ test(int count, List result) { } while (count > 0); } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes).containsNode(result.findNode.continueStatement('continue')); var values = []; - check(runInterpreter([5, makeList(values)])).equals(null); + check(runInterpreter(result, [5, makeList(result, values)])).equals(null); check(values).deepEquals([3, 1]); } @@ -895,10 +917,10 @@ test(int count, List result) { } } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes).containsNode(result.findNode.continueStatement('continue')); var values = []; - check(runInterpreter([5, makeList(values)])).equals(null); + check(runInterpreter(result, [5, makeList(result, values)])).equals(null); check(values).deepEquals([1, 3]); } @@ -911,10 +933,10 @@ test(int count, List result) { } } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes).containsNode(result.findNode.continueStatement('continue')); var values = []; - check(runInterpreter([5, makeList(values)])).equals(null); + check(runInterpreter(result, [5, makeList(result, values)])).equals(null); check(values).deepEquals([3, 1]); } @@ -926,16 +948,16 @@ test(int count, List result) { } while (count > 0); } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.doStatement('do')] ..containsSubrange(astNodes[result.findNode.block('result.add')]!) ..containsSubrange(astNodes[result.findNode.binary('count > 0')]!); var values = []; - check(runInterpreter([5, makeList(values)])).equals(null); + check(runInterpreter(result, [5, makeList(result, values)])).equals(null); check(values).deepEquals([5, 4, 3, 2, 1]); values.clear(); // Make sure the loop always runs at least once. - check(runInterpreter([0, makeList(values)])).equals(null); + check(runInterpreter(result, [0, makeList(result, values)])).equals(null); check(values).deepEquals([0]); } @@ -943,16 +965,16 @@ test(int count, List result) { var result = await resolveTestCodeWithDiagnostics(''' test() => 1.5; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes).containsNode(result.findNode.doubleLiteral('1.5')); - check(runInterpreter([])).equals(1.5); + check(runInterpreter(result, [])).equals(1.5); } test_expressionFunctionBody() async { var result = await resolveTestCodeWithDiagnostics(''' test() => 0; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.expressionFunctionBody('0')] .containsSubrange(astNodes[result.findNode.integerLiteral('0')]!); } @@ -964,10 +986,10 @@ test(int i) { return i; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.expressionStatement('i = 123')] .containsSubrange(astNodes[result.findNode.assignment('i = 123')]!); - check(runInterpreter([1])).equals(123); + check(runInterpreter(result, [1])).equals(123); } test_forStatement_forParts_withDeclaration() async { @@ -978,7 +1000,7 @@ test(int count, List result) { } } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.forStatement('for')] ..containsSubrange( astNodes[result.findNode.variableDeclarationList('var i = 0')]!, @@ -987,7 +1009,7 @@ test(int count, List result) { ..containsSubrange(astNodes[result.findNode.postfix('i++')]!) ..containsSubrange(astNodes[result.findNode.block('result.add')]!); var values = []; - check(runInterpreter([5, makeList(values)])).equals(null); + check(runInterpreter(result, [5, makeList(result, values)])).equals(null); check(values).deepEquals([0, 1, 2, 3, 4]); } @@ -1001,12 +1023,12 @@ test(bool b) { return result; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.ifStatement('if')] ..containsSubrange(astNodes[result.findNode.simple('b /*test*/')]!) ..containsSubrange(astNodes[result.findNode.block('result = 1')]!); - check(runInterpreter([true])).equals(1); - check(runInterpreter([false])).equals(null); + check(runInterpreter(result, [true])).equals(1); + check(runInterpreter(result, [false])).equals(null); } test_ifStatement_noElse_earlyReturn() async { @@ -1017,12 +1039,12 @@ test(bool b) { } } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.ifStatement('if')] ..containsSubrange(astNodes[result.findNode.simple('b /*test*/')]!) ..containsSubrange(astNodes[result.findNode.block('return 1')]!); - check(runInterpreter([true])).equals(1); - check(runInterpreter([false])).equals(null); + check(runInterpreter(result, [true])).equals(1); + check(runInterpreter(result, [false])).equals(null); } test_ifStatement_withElse() async { @@ -1037,13 +1059,13 @@ test(bool b) { return result; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.ifStatement('if')] ..containsSubrange(astNodes[result.findNode.simple('b /*test*/')]!) ..containsSubrange(astNodes[result.findNode.block('result = 1')]!) ..containsSubrange(astNodes[result.findNode.block('result = 2')]!); - check(runInterpreter([true])).equals(1); - check(runInterpreter([false])).equals(2); + check(runInterpreter(result, [true])).equals(1); + check(runInterpreter(result, [false])).equals(2); } test_ifStatement_withElse_earlyReturn() async { @@ -1056,61 +1078,61 @@ test(bool b) { } } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.ifStatement('if')] ..containsSubrange(astNodes[result.findNode.simple('b /*test*/')]!) ..containsSubrange(astNodes[result.findNode.block('return 1')]!) ..containsSubrange(astNodes[result.findNode.block('return 2')]!); - check(runInterpreter([true])).equals(1); - check(runInterpreter([false])).equals(2); + check(runInterpreter(result, [true])).equals(1); + check(runInterpreter(result, [false])).equals(2); } test_integerLiteral() async { var result = await resolveTestCodeWithDiagnostics(''' test() => 123; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes).containsNode(result.findNode.integerLiteral('123')); - check(runInterpreter([])).equals(123); + check(runInterpreter(result, [])).equals(123); } test_isExpression_inverted() async { var result = await resolveTestCodeWithDiagnostics(''' test(Object? o) => o is! String; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.isExpression('is')].containsSubrange( astNodes[result.findNode.simple('o is')]!, ); - check(runInterpreter([123])).equals(true); - check(runInterpreter(['123'])).equals(false); + check(runInterpreter(result, [123])).equals(true); + check(runInterpreter(result, ['123'])).equals(false); } test_isExpression_uninverted() async { var result = await resolveTestCodeWithDiagnostics(''' test(Object? o) => o is String; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.isExpression('is')].containsSubrange( astNodes[result.findNode.simple('o is')]!, ); - check(runInterpreter([123])).equals(false); - check(runInterpreter(['123'])).equals(true); + check(runInterpreter(result, [123])).equals(false); + check(runInterpreter(result, ['123'])).equals(true); } test_methodInvocation_identical() async { var result = await resolveTestCodeWithDiagnostics(''' test(Object? x, Object? y) => identical(x, y); '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.methodInvocation('identical(x, y)')] ..containsSubrange(astNodes[result.findNode.simple('x, y')]!) ..containsSubrange(astNodes[result.findNode.simple('y);')]!); var s1 = 's'; var s2 = String.fromCharCode(s1.codeUnitAt(0)); assert(!identical(s1, s2)); - check(runInterpreter([s1, s2])).equals(false); - check(runInterpreter([s1, s1])).equals(true); + check(runInterpreter(result, [s1, s2])).equals(false); + check(runInterpreter(result, [s1, s1])).equals(true); } test_methodInvocation_identical_decoy() async { @@ -1118,7 +1140,7 @@ test(Object? x, Object? y) => identical(x, y); external bool identical(Object? x, Object? y); test(Object? x, Object? y) => identical(x, y); // invocation '''); - analyze(result.findNode.functionDeclaration('test')); + analyze(result, result.findNode.functionDeclaration('test')); check(astNodes)[result.findNode.methodInvocation('identical(x, y)')] ..containsSubrange(astNodes[result.findNode.simple('x, y')]!) ..containsSubrange( @@ -1130,20 +1152,20 @@ test(Object? x, Object? y) => identical(x, y); // invocation _callHandlers['identical'] = binaryFunction( (x, y) => !identical(x, y), ); - check(runInterpreter([s1, s2])).equals(true); - check(runInterpreter([s1, s1])).equals(false); + check(runInterpreter(result, [s1, s2])).equals(true); + check(runInterpreter(result, [s1, s1])).equals(false); } test_methodInvocation_instanceMethod() async { var result = await resolveTestCodeWithDiagnostics(''' test(String s1, String s2) => s1.contains(s2); '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.methodInvocation('s1.contains(s2)')] ..containsSubrange(astNodes[result.findNode.simple('s1.contains')]!) ..containsSubrange(astNodes[result.findNode.simple('s2);')]!); - check(runInterpreter(['abcde', 'bcd'])).equals(true); - check(runInterpreter(['abc', 'abcde'])).equals(false); + check(runInterpreter(result, ['abcde', 'bcd'])).equals(true); + check(runInterpreter(result, ['abc', 'abcde'])).equals(false); } test_methodInvocation_instanceMethod_implicitThis() async { @@ -1153,7 +1175,7 @@ class C { test(int x) => f(x); // invocation } '''); - analyze(result.findNode.methodDeclaration('test')); + analyze(result, result.findNode.methodDeclaration('test')); check(astNodes)[result.findNode.methodInvocation('f(x)')].containsSubrange( astNodes[result.findNode.simple('x); // invocation')]!, ); @@ -1163,7 +1185,7 @@ class C { check(x).equals(123); return 456; }); - check(runInterpreter([c, 123])).equals(456); + check(runInterpreter(result, [c, 123])).equals(456); } test_methodInvocation_nullAware() async { @@ -1171,7 +1193,7 @@ class C { external String f(); test(String? s) => s?.contains(f()); '''); - analyze(result.findNode.functionDeclaration('test')); + analyze(result, result.findNode.functionDeclaration('test')); check(astNodes)[result.findNode.methodInvocation('s?.contains(f())')] ..containsSubrange(astNodes[result.findNode.simple('s?.contains')]!) ..containsSubrange(astNodes[result.findNode.methodInvocation('f())')]!); @@ -1184,15 +1206,15 @@ test(String? s) => s?.contains(f()); }); fCalled = false; fValue = 'bcd'; - check(runInterpreter(['abcde'])).equals(true); + check(runInterpreter(result, ['abcde'])).equals(true); check(fCalled).isTrue; fCalled = false; fValue = 'abcde'; - check(runInterpreter(['abc'])).equals(false); + check(runInterpreter(result, ['abc'])).equals(false); check(fCalled).isTrue; fCalled = false; fValue = 'irrelevant'; - check(runInterpreter([null])).equals(null); + check(runInterpreter(result, [null])).equals(null); check(fCalled).isFalse; } @@ -1200,11 +1222,11 @@ test(String? s) => s?.contains(f()); var result = await resolveTestCodeWithDiagnostics(''' test(String s) => int.parse(s); '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.methodInvocation('int.parse(s)')] .containsSubrange(astNodes[result.findNode.simple('s);')]!); check(astNodes).not((s) => s.containsNode(result.findNode.simple('int'))); - check(runInterpreter(['123'])).equals(123); + check(runInterpreter(result, ['123'])).equals(123); } test_methodInvocation_staticMethod_inScope() async { @@ -1214,7 +1236,7 @@ class C { test(int x) => f(x); // invocation } '''); - analyze(result.findNode.methodDeclaration('test')); + analyze(result, result.findNode.methodDeclaration('test')); check(astNodes)[result.findNode.methodInvocation('f(x)')].containsSubrange( astNodes[result.findNode.simple('x); // invocation')]!, ); @@ -1223,7 +1245,7 @@ class C { return 456; }); var c = Instance(result.findElement.class_('C').thisType); - check(runInterpreter([c, 123])).equals(456); + check(runInterpreter(result, [c, 123])).equals(456); } test_methodInvocation_topLevelFunction_nullary() async { @@ -1231,12 +1253,12 @@ class C { external int f(); test() => f(); // invocation '''); - analyze(result.findNode.functionDeclaration('test')); + analyze(result, result.findNode.functionDeclaration('test')); check( astNodes, ).containsNode(result.findNode.methodInvocation('f(); // invocation')); _callHandlers['f'] = nullaryFunction(() => 123); - check(runInterpreter([])).equals(123); + check(runInterpreter(result, [])).equals(123); } test_methodInvocation_topLevelFunction_oneNamedArgument() async { @@ -1244,7 +1266,7 @@ test() => f(); // invocation external int f(int x, {required int y}); test(int x, int y) => f(x, y: y); // invocation '''); - analyze(result.findNode.functionDeclaration('test')); + analyze(result, result.findNode.functionDeclaration('test')); check(astNodes)[result.findNode.methodInvocation('f(x, y: y)')] ..containsSubrange(astNodes[result.findNode.simple('x, y')]!) ..containsSubrange( @@ -1258,7 +1280,7 @@ test(int x, int y) => f(x, y: y); // invocation var y = namedArguments['y'] as int; return 10 * x + y; }; - check(runInterpreter([1, 2])).equals(12); + check(runInterpreter(result, [1, 2])).equals(12); } test_methodInvocation_topLevelFunction_positionalArguments() async { @@ -1266,14 +1288,14 @@ test(int x, int y) => f(x, y: y); // invocation external int f(int x, int y); test(int x, int y) => f(x, y); // invocation '''); - analyze(result.findNode.functionDeclaration('test')); + analyze(result, result.findNode.functionDeclaration('test')); check(astNodes)[result.findNode.methodInvocation('f(x, y)')] ..containsSubrange(astNodes[result.findNode.simple('x, y')]!) ..containsSubrange( astNodes[result.findNode.simple('y); // invocation')]!, ); _callHandlers['f'] = binaryFunction((x, y) => 10 * x + y); - check(runInterpreter([1, 2])).equals(12); + check(runInterpreter(result, [1, 2])).equals(12); } test_methodInvocation_topLevelFunction_twoNamedArguments() async { @@ -1281,7 +1303,7 @@ test(int x, int y) => f(x, y); // invocation external int f({required int x, required int y}); test(int x, int y) => f(y: y, x: x); '''); - analyze(result.findNode.functionDeclaration('test')); + analyze(result, result.findNode.functionDeclaration('test')); check(astNodes)[result.findNode.methodInvocation('f(y: y, x: x)')] ..containsSubrange(astNodes[result.findNode.simple('y, x')]!) ..containsSubrange(astNodes[result.findNode.simple('x);')]!); @@ -1293,7 +1315,7 @@ test(int x, int y) => f(y: y, x: x); var y = namedArguments['y'] as int; return 10 * x + y; }; - check(runInterpreter([1, 2])).equals(12); + check(runInterpreter(result, [1, 2])).equals(12); } test_methodInvocation_typeArguments_explicit() async { @@ -1301,72 +1323,76 @@ test(int x, int y) => f(y: y, x: x); external f(); test() => f(); '''); - analyze(result.findNode.functionDeclaration('test')); + analyze(result, result.findNode.functionDeclaration('test')); check( astNodes, ).containsNode(result.findNode.methodInvocation('f()')); _callHandlers['f'] = (callDescriptor, positinalArguments, namedArguments) { check(callDescriptor.typeArguments).length.equals(2); - check(callDescriptor.typeArguments[0]).equals(typeProvider.intType); - check(callDescriptor.typeArguments[1]).equals(typeProvider.stringType); + check( + callDescriptor.typeArguments[0], + ).equals(result.typeProvider.intType); + check( + callDescriptor.typeArguments[1], + ).equals(result.typeProvider.stringType); return null; }; - check(runInterpreter([])).equals(null); + check(runInterpreter(result, [])).equals(null); } test_multipleParameters_first() async { var result = await resolveTestCodeWithDiagnostics(''' test(int i, int j) => i; '''); - analyze(result.findNode.singleFunctionDeclaration); - check(runInterpreter([123, 456])).equals(123); + analyze(result, result.findNode.singleFunctionDeclaration); + check(runInterpreter(result, [123, 456])).equals(123); } test_multipleParameters_second() async { var result = await resolveTestCodeWithDiagnostics(''' test(int i, int j) => j; '''); - analyze(result.findNode.singleFunctionDeclaration); - check(runInterpreter([123, 456])).equals(456); + analyze(result, result.findNode.singleFunctionDeclaration); + check(runInterpreter(result, [123, 456])).equals(456); } test_noReturnAtEndOfFunction() async { var result = await resolveTestCodeWithDiagnostics(''' test() {} '''); - analyze(result.findNode.singleFunctionDeclaration); - check(runInterpreter([])).equals(null); + analyze(result, result.findNode.singleFunctionDeclaration); + check(runInterpreter(result, [])).equals(null); } test_nullLiteral() async { var result = await resolveTestCodeWithDiagnostics(''' test() => null; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes).containsNode(result.findNode.nullLiteral('null')); - check(runInterpreter([])).equals(null); + check(runInterpreter(result, [])).equals(null); } test_parenthesizedExpression() async { var result = await resolveTestCodeWithDiagnostics(''' test(int i) => (i); '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.parenthesized('(i)')].containsSubrange( astNodes[result.findNode.simple('i);')]!, ); - check(runInterpreter([123])).equals(123); + check(runInterpreter(result, [123])).equals(123); } test_parenthesizedExpression_stopsNullShorting() async { var result = await resolveTestCodeWithDiagnostics(''' test(List? list) => (list?.first).hashCode; '''); - analyze(result.findNode.singleFunctionDeclaration); - check(runInterpreter([null])).equals(null.hashCode); + analyze(result, result.findNode.singleFunctionDeclaration); + check(runInterpreter(result, [null])).equals(null.hashCode); check( - runInterpreter([ - makeList([123]), + runInterpreter(result, [ + makeList(result, [123]), ]), ).equals(123.hashCode); } @@ -1375,15 +1401,15 @@ test(List? list) => (list?.first).hashCode; var result = await resolveTestCodeWithDiagnostics(''' test(List? l) => l?.length--; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.postfix('l?.length--')] ..containsSubrange(astNodes[result.findNode.simple('l?.length')]!) ..containsSubrange( astNodes[result.findNode.propertyAccess('l?.length')]!, ); - check(runInterpreter([null])).equals(null); + check(runInterpreter(result, [null])).equals(null); var l = ['a', 'b', 'c', 'd', 'e']; - check(runInterpreter([makeList(l)])).equals(5); + check(runInterpreter(result, [makeList(result, l)])).equals(5); check(l).deepEquals(['a', 'b', 'c', 'd']); } @@ -1391,12 +1417,12 @@ test(List? l) => l?.length--; var result = await resolveTestCodeWithDiagnostics(''' test(List l) => l.length--; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.postfix('l.length--')] ..containsSubrange(astNodes[result.findNode.simple('l.length')]!) ..containsSubrange(astNodes[result.findNode.prefixed('l.length')]!); var l = ['a', 'b', 'c', 'd', 'e']; - check(runInterpreter([makeList(l)])).equals(5); + check(runInterpreter(result, [makeList(result, l)])).equals(5); check(l).deepEquals(['a', 'b', 'c', 'd']); } @@ -1404,14 +1430,14 @@ test(List l) => l.length--; var result = await resolveTestCodeWithDiagnostics(''' test(List l) => (l).length--; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.postfix('(l).length--')] ..containsSubrange(astNodes[result.findNode.parenthesized('(l)')]!) ..containsSubrange( astNodes[result.findNode.propertyAccess('(l).length')]!, ); var l = ['a', 'b', 'c', 'd', 'e']; - check(runInterpreter([makeList(l)])).equals(5); + check(runInterpreter(result, [makeList(result, l)])).equals(5); check(l).deepEquals(['a', 'b', 'c', 'd']); } @@ -1421,12 +1447,12 @@ extension E on List { test() => length--; } '''); - analyze(result.findNode.singleMethodDeclaration); + analyze(result, result.findNode.singleMethodDeclaration); check(astNodes)[result.findNode.postfix('length--')].containsSubrange( astNodes[result.findNode.simple('length')]!, ); var l = ['a', 'b', 'c', 'd', 'e']; - check(runInterpreter([makeList(l)])).equals(5); + check(runInterpreter(result, [makeList(result, l)])).equals(5); check(l).deepEquals(['a', 'b', 'c', 'd']); } @@ -1438,11 +1464,11 @@ test() { return i; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.postfix('i++')].containsSubrange( astNodes[result.findNode.simple('i++')]!, ); - check(runInterpreter([])).equals(124); + check(runInterpreter(result, [])).equals(124); } test_postfixExpression_increment_local_value() async { @@ -1452,11 +1478,11 @@ test() { return i++; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.postfix('i++')].containsSubrange( astNodes[result.findNode.simple('i++')]!, ); - check(runInterpreter([])).equals(123); + check(runInterpreter(result, [])).equals(123); } test_postfixExpression_increment_parameter_sideEffect() async { @@ -1466,37 +1492,37 @@ test(int i) { return i; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.postfix('i++')].containsSubrange( astNodes[result.findNode.simple('i++')]!, ); - check(runInterpreter([123])).equals(124); + check(runInterpreter(result, [123])).equals(124); } test_postfixExpression_increment_parameter_value() async { var result = await resolveTestCodeWithDiagnostics(''' test(int i) => i++; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.postfix('i++')].containsSubrange( astNodes[result.findNode.simple('i++')]!, ); - check(runInterpreter([123])).equals(123); + check(runInterpreter(result, [123])).equals(123); } test_prefixExpression_decrement_property_nullShorting() async { var result = await resolveTestCodeWithDiagnostics(''' test(List? l) => --l?.length; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.prefix('--l?.length')] ..containsSubrange(astNodes[result.findNode.simple('l?.length')]!) ..containsSubrange( astNodes[result.findNode.propertyAccess('l?.length')]!, ); - check(runInterpreter([null])).equals(null); + check(runInterpreter(result, [null])).equals(null); var l = ['a', 'b', 'c', 'd', 'e']; - check(runInterpreter([makeList(l)])).equals(4); + check(runInterpreter(result, [makeList(result, l)])).equals(4); check(l).deepEquals(['a', 'b', 'c', 'd']); } @@ -1504,12 +1530,12 @@ test(List? l) => --l?.length; var result = await resolveTestCodeWithDiagnostics(''' test(List l) => --l.length; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.prefix('--l.length')] ..containsSubrange(astNodes[result.findNode.simple('l.length')]!) ..containsSubrange(astNodes[result.findNode.prefixed('l.length')]!); var l = ['a', 'b', 'c', 'd', 'e']; - check(runInterpreter([makeList(l)])).equals(4); + check(runInterpreter(result, [makeList(result, l)])).equals(4); check(l).deepEquals(['a', 'b', 'c', 'd']); } @@ -1517,14 +1543,14 @@ test(List l) => --l.length; var result = await resolveTestCodeWithDiagnostics(''' test(List l) => --(l).length; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.prefix('--(l).length')] ..containsSubrange(astNodes[result.findNode.parenthesized('(l)')]!) ..containsSubrange( astNodes[result.findNode.propertyAccess('(l).length')]!, ); var l = ['a', 'b', 'c', 'd', 'e']; - check(runInterpreter([makeList(l)])).equals(4); + check(runInterpreter(result, [makeList(result, l)])).equals(4); check(l).deepEquals(['a', 'b', 'c', 'd']); } @@ -1534,12 +1560,12 @@ extension E on List { test() => --length; } '''); - analyze(result.findNode.singleMethodDeclaration); + analyze(result, result.findNode.singleMethodDeclaration); check(astNodes)[result.findNode.prefix('--length')].containsSubrange( astNodes[result.findNode.simple('length')]!, ); var l = ['a', 'b', 'c', 'd', 'e']; - check(runInterpreter([makeList(l)])).equals(4); + check(runInterpreter(result, [makeList(result, l)])).equals(4); check(l).deepEquals(['a', 'b', 'c', 'd']); } @@ -1551,11 +1577,11 @@ test() { return i; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.prefix('++i')].containsSubrange( astNodes[result.findNode.simple('i; // increment')]!, ); - check(runInterpreter([])).equals(124); + check(runInterpreter(result, [])).equals(124); } test_prefixExpression_increment_local_value() async { @@ -1565,11 +1591,11 @@ test() { return ++i; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.prefix('++i')].containsSubrange( astNodes[result.findNode.simple('i;')]!, ); - check(runInterpreter([])).equals(124); + check(runInterpreter(result, [])).equals(124); } test_prefixExpression_increment_parameter_sideEffect() async { @@ -1579,45 +1605,45 @@ test(int i) { return i; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.prefix('++i')].containsSubrange( astNodes[result.findNode.simple('i; // increment')]!, ); - check(runInterpreter([123])).equals(124); + check(runInterpreter(result, [123])).equals(124); } test_prefixExpression_increment_parameter_value() async { var result = await resolveTestCodeWithDiagnostics(''' test(int i) => ++i; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.prefix('++i')].containsSubrange( astNodes[result.findNode.simple('i;')]!, ); - check(runInterpreter([123])).equals(124); + check(runInterpreter(result, [123])).equals(124); } test_prefixExpression_not() async { var result = await resolveTestCodeWithDiagnostics(''' test(bool b) => !b; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.prefix('!b')].containsSubrange( astNodes[result.findNode.simple('b;')]!, ); - check(runInterpreter([true])).equals(false); - check(runInterpreter([false])).equals(true); + check(runInterpreter(result, [true])).equals(false); + check(runInterpreter(result, [false])).equals(true); } test_propertyAccess_allowsNullShorting() async { var result = await resolveTestCodeWithDiagnostics(''' test(List? list) => list?.first.hashCode; '''); - analyze(result.findNode.singleFunctionDeclaration); - check(runInterpreter([null])).equals(null); + analyze(result, result.findNode.singleFunctionDeclaration); + check(runInterpreter(result, [null])).equals(null); check( - runInterpreter([ - makeList([123]), + runInterpreter(result, [ + makeList(result, [123]), ]), ).equals(123.hashCode); } @@ -1626,17 +1652,17 @@ test(List? list) => list?.first.hashCode; var result = await resolveTestCodeWithDiagnostics(''' test(List? list) => list?.first?.hashCode; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check( astNodes, because: 'both null checks should use the same block', )[result.findNode.singleFunctionBody].instructions .withOpcode(Opcode.block) .hasLength(1); - check(runInterpreter([null])).equals(null); + check(runInterpreter(result, [null])).equals(null); check( - runInterpreter([ - makeList([123]), + runInterpreter(result, [ + makeList(result, [123]), ]), ).equals(123.hashCode); } @@ -1645,33 +1671,33 @@ test(List? list) => list?.first?.hashCode; var result = await resolveTestCodeWithDiagnostics(''' test(String? s) => s?.length; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.propertyAccess('s?.length')] .containsSubrange(astNodes[result.findNode.simple('s?.length')]!); - check(runInterpreter([null])).equals(null); - check(runInterpreter(['foo'])).equals(3); + check(runInterpreter(result, [null])).equals(null); + check(runInterpreter(result, ['foo'])).equals(3); } test_propertyGet_prefixedIdentifier() async { var result = await resolveTestCodeWithDiagnostics(''' test(int i) => i.isEven; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.prefixed('i.isEven')].containsSubrange( astNodes[result.findNode.simple('i.')]!, ); - check(runInterpreter([1])).equals(false); - check(runInterpreter([2])).equals(true); + check(runInterpreter(result, [1])).equals(false); + check(runInterpreter(result, [2])).equals(true); } test_propertyGet_propertyAccess() async { var result = await resolveTestCodeWithDiagnostics(''' test() => 'foo'.length; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.propertyAccess("'foo'.length")] .containsSubrange(astNodes[result.findNode.stringLiteral("'foo'")]!); - check(runInterpreter([])).equals(3); + check(runInterpreter(result, [])).equals(3); } test_propertyGet_simpleIdentifier() async { @@ -1680,9 +1706,9 @@ extension E on String { test() => length; } '''); - analyze(result.findNode.singleMethodDeclaration); + analyze(result, result.findNode.singleMethodDeclaration); check(astNodes).containsNode(result.findNode.simple('length')); - check(runInterpreter(['foo'])).equals(3); + check(runInterpreter(result, ['foo'])).equals(3); } test_returnStatement_noValue() async { @@ -1692,9 +1718,9 @@ test() { return 1; // ignore: dead_code } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes).containsNode(result.findNode.returnStatement('return;')); - check(runInterpreter([])).equals(null); + check(runInterpreter(result, [])).equals(null); } test_returnStatement_value() async { @@ -1704,10 +1730,10 @@ test() { return 1; // ignore: dead_code } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.returnStatement('return 123')] .containsSubrange(astNodes[result.findNode.integerLiteral('123')]!); - check(runInterpreter([])).equals(123); + check(runInterpreter(result, [])).equals(123); } test_simpleIdentifier_local() async { @@ -1717,53 +1743,53 @@ test() { return i; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes).containsNode(result.findNode.simple('i;')); - check(runInterpreter([])).equals(123); + check(runInterpreter(result, [])).equals(123); } test_simpleIdentifier_parameter() async { var result = await resolveTestCodeWithDiagnostics(''' test(int i) => i; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes).containsNode(result.findNode.simple('i;')); - check(runInterpreter([123])).equals(123); + check(runInterpreter(result, [123])).equals(123); } test_stringInterpolation_withBraces() async { var result = await resolveTestCodeWithDiagnostics(r''' test(int x) => 'x = ${x}'; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.stringInterpolation('x =')] ..containsSubrange(astNodes[result.findNode.interpolationString('x =')]!) ..containsSubrange( astNodes[result.findNode.interpolationExpression(r'${x}')]!, ); - check(runInterpreter([123])).equals('x = 123'); + check(runInterpreter(result, [123])).equals('x = 123'); } test_stringInterpolation_withoutBraces() async { var result = await resolveTestCodeWithDiagnostics(r''' test(int x) => 'x = $x'; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.stringInterpolation('x =')] ..containsSubrange(astNodes[result.findNode.interpolationString('x =')]!) ..containsSubrange( astNodes[result.findNode.interpolationExpression(r'$x')]!, ); - check(runInterpreter([123])).equals('x = 123'); + check(runInterpreter(result, [123])).equals('x = 123'); } test_stringLiteral() async { var result = await resolveTestCodeWithDiagnostics(r''' test() => 'foo'; '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes).containsNode(result.findNode.stringLiteral('foo')); - check(runInterpreter([])).equals('foo'); + check(runInterpreter(result, [])).equals('foo'); } test_thisExpression() async { @@ -1772,10 +1798,10 @@ class C { test() => this; } '''); - analyze(result.findNode.singleMethodDeclaration); + analyze(result, result.findNode.singleMethodDeclaration); check(astNodes).containsNode(result.findNode.this_('this')); var thisValue = Instance(result.findElement.class_('C').thisType); - check(runInterpreter([thisValue])).identicalTo(thisValue); + check(runInterpreter(result, [thisValue])).identicalTo(thisValue); } test_variableDeclarationList_singleVariable_initialized() async { @@ -1785,10 +1811,10 @@ test() { return i; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.variableDeclarationList('int i = 123')] .containsSubrange(astNodes[result.findNode.integerLiteral('123')]!); - check(runInterpreter([])).identicalTo(123); + check(runInterpreter(result, [])).identicalTo(123); } test_variableDeclarationList_singleVariable_uninitialized_nonNullable() async { @@ -1798,11 +1824,11 @@ test() { return 123; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.variableDeclarationList('int i')].not( (s) => s.instructions.any((s) => s.opcode.equals(Opcode.writeLocal)), ); - check(runInterpreter([])).identicalTo(123); + check(runInterpreter(result, [])).identicalTo(123); } test_variableDeclarationList_singleVariable_uninitialized_nullable() async { @@ -1812,11 +1838,11 @@ test() { return i; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check( astNodes, ).containsNode(result.findNode.variableDeclarationList('int? i')); - check(runInterpreter([])).identicalTo(null); + check(runInterpreter(result, [])).identicalTo(null); } test_variableDeclarationList_singleVariable_uninitialized_unsound() async { @@ -1828,11 +1854,11 @@ test() { // [diag.notAssignedPotentiallyNonNullableLocalVariable] The non-nullable local variable 'i' must be assigned before it can be used. } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.variableDeclarationList('int i')].not( (s) => s.instructions.any((s) => s.opcode.equals(Opcode.writeLocal)), ); - check(() => runInterpreter([])).throws() + check(() => runInterpreter(result, [])).throws() ..address.equals(astNodes[result.findNode.simple('i; // UNSOUND')]!.start) ..message.equals('Read of unset local'); } @@ -1844,11 +1870,11 @@ test() { return i; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.variableDeclarationList('int i = 123')] ..containsSubrange(astNodes[result.findNode.integerLiteral('123')]!) ..containsSubrange(astNodes[result.findNode.integerLiteral('456')]!); - check(runInterpreter([])).identicalTo(123); + check(runInterpreter(result, [])).identicalTo(123); } test_variableDeclarationList_twoVariables_second() async { @@ -1858,11 +1884,11 @@ test() { return j; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.variableDeclarationList('int i = 123')] ..containsSubrange(astNodes[result.findNode.integerLiteral('123')]!) ..containsSubrange(astNodes[result.findNode.integerLiteral('456')]!); - check(runInterpreter([])).identicalTo(456); + check(runInterpreter(result, [])).identicalTo(456); } test_variableDeclarationStatement() async { @@ -1871,12 +1897,12 @@ test() { int i = 123; // ignore: unused_local_variable } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.variableDeclarationStatement('int i = 123')] .containsSubrange( astNodes[result.findNode.variableDeclarationList('int i = 123')]!, ); - check(runInterpreter([])).identicalTo(null); + check(runInterpreter(result, [])).identicalTo(null); } test_whileStatement_simple() async { @@ -1887,12 +1913,12 @@ test(int count, List result) { } } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.whileStatement('while')] ..containsSubrange(astNodes[result.findNode.binary('count-- > 0')]!) ..containsSubrange(astNodes[result.findNode.block('result.add')]!); var values = []; - check(runInterpreter([5, makeList(values)])).equals(null); + check(runInterpreter(result, [5, makeList(result, values)])).equals(null); check(values).deepEquals([4, 3, 2, 1, 0]); } @@ -1902,7 +1928,7 @@ test(Object? o) sync* { yield o; } '''); - analyze(result.findNode.singleFunctionDeclaration); + analyze(result, result.findNode.singleFunctionDeclaration); check(astNodes)[result.findNode.yieldStatement('yield')].containsSubrange( astNodes[result.findNode.simple('o;')]!, ); @@ -1910,7 +1936,9 @@ test(Object? o) sync* { check(value).equals(123); hook(null, 'onYield'); }; - expectHooks(['onYield'], () => check(runInterpreter([123])).equals(null)); + expectHooks([ + 'onYield', + ], () => check(runInterpreter(result, [123])).equals(null)); } static CallHandler binaryFunction(Object? Function(T, U) f) => @@ -1943,16 +1971,16 @@ class AstToIRTestBase extends PubPackageResolutionTest { late final CodedIRContainer ir; late final Scopes scopes; - void analyze(Declaration declaration) { + void analyze(TestResolvedUnitResult result, Declaration declaration) { switch (declaration) { case FunctionDeclaration(): var declaredElement = declaration.declaredFragment!.element; ir = astToIR( declaredElement, declaration.functionExpression.body, - typeProvider: typeProvider, - typeSystem: typeSystem, - inheritanceManager: inheritanceManager, + typeProvider: result.typeProvider, + typeSystem: result.typeSystem, + inheritanceManager: result.inheritanceManager, eventListener: astNodes, ); case MethodDeclaration(): @@ -1960,9 +1988,9 @@ class AstToIRTestBase extends PubPackageResolutionTest { ir = astToIR( declaredElement, declaration.body, - typeProvider: typeProvider, - typeSystem: typeSystem, - inheritanceManager: inheritanceManager, + typeProvider: result.typeProvider, + typeSystem: result.typeSystem, + inheritanceManager: result.inheritanceManager, eventListener: astNodes, ); default: diff --git a/pkg/analyzer/test/src/workspace/blaze_test.dart b/pkg/analyzer/test/src/workspace/blaze_test.dart index 89227eeeffb..08cc0c32df6 100644 --- a/pkg/analyzer/test/src/workspace/blaze_test.dart +++ b/pkg/analyzer/test/src/workspace/blaze_test.dart @@ -181,11 +181,16 @@ language = struct( ) '''); - await resolveFileCode('$myPackageRootPath/lib/a.dart', ''); - _assertLanguageVersion(package: Version.parse('3.1.0'), override: null); + var result = await resolveFileCode('$myPackageRootPath/lib/a.dart', ''); + _assertLanguageVersion( + result, + package: Version.parse('3.1.0'), + override: null, + ); } - void _assertLanguageVersion({ + void _assertLanguageVersion( + TestResolvedUnitResult result, { required Version package, required Version? override, }) { diff --git a/pkg/analyzer/test/verify_diagnostics_test.dart b/pkg/analyzer/test/verify_diagnostics_test.dart index f0328c7117e..acee11d1b3e 100644 --- a/pkg/analyzer/test/verify_diagnostics_test.dart +++ b/pkg/analyzer/test/verify_diagnostics_test.dart @@ -466,8 +466,8 @@ class DocumentationValidator { ) async { var test = _SnippetTest(snippet); test.setUp(); - await test.resolveTestFile(); - var diagnostics = test.result.diagnostics; + var result = await test.resolveTestFile(); + var diagnostics = result.diagnostics; var filteredDiagnostics = []; var errorCount = 0; var unneededIgnores = snippet.ignores.toList();