Elements. Migrate many analyzer resolution tests.
Change-Id: Ied261a783756c5954d4363c4298201b8fc25e560
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/396381
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
diff --git a/pkg/analyzer/analyzer_use_new_elements.txt b/pkg/analyzer/analyzer_use_new_elements.txt
index 9673f89..9187e72 100644
--- a/pkg/analyzer/analyzer_use_new_elements.txt
+++ b/pkg/analyzer/analyzer_use_new_elements.txt
@@ -238,25 +238,9 @@
test/src/dart/element/type_visitor_test.dart
test/src/dart/element/upper_lower_bound_test.dart
test/src/dart/micro/simple_file_resolver_test.dart
-test/src/dart/resolution/ast_rewrite_test.dart
-test/src/dart/resolution/class_alias_test.dart
-test/src/dart/resolution/class_test.dart
-test/src/dart/resolution/comment_test.dart
test/src/dart/resolution/constant_test.dart
test/src/dart/resolution/context_collection_resolution.dart
-test/src/dart/resolution/enum_test.dart
-test/src/dart/resolution/field_test.dart
-test/src/dart/resolution/for_element_test.dart
-test/src/dart/resolution/function_body_test.dart
-test/src/dart/resolution/function_declaration_test.dart
-test/src/dart/resolution/generic_function_type_test.dart
test/src/dart/resolution/generic_type_alias_test.dart
-test/src/dart/resolution/instance_member_inference_class_test.dart
-test/src/dart/resolution/instance_member_inference_mixin_test.dart
-test/src/dart/resolution/library_element_test.dart
-test/src/dart/resolution/library_export_test.dart
-test/src/dart/resolution/library_import_prefix_test.dart
-test/src/dart/resolution/local_function_test.dart
test/src/dart/resolution/local_variable_test.dart
test/src/dart/resolution/metadata_test.dart
test/src/dart/resolution/prefix_element_test.dart
diff --git a/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart b/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart
index 171adf9..6408515 100644
--- a/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart
@@ -719,8 +719,21 @@
}
''');
- var invocation = findNode.methodInvocation('foo();');
- assertElement(invocation, findElement.method('foo'));
+ var node = findNode.methodInvocation('foo();');
+ assertResolvedNodeText(node, r'''
+MethodInvocation
+ operator: ..
+ methodName: SimpleIdentifier
+ token: foo
+ staticElement: <testLibraryFragment>::@class::A::@method::foo
+ element: <testLibraryFragment>::@class::A::@method::foo#element
+ staticType: void Function()
+ argumentList: ArgumentList
+ leftParenthesis: (
+ rightParenthesis: )
+ staticInvokeType: void Function()
+ staticType: void
+''');
}
test_targetNull_class() async {
@@ -1427,8 +1440,31 @@
}
''');
- var invocation = findNode.methodInvocation('foo(0);');
- assertElement(invocation, findElement.method('foo'));
+ var node = findNode.methodInvocation('foo(0);');
+ assertResolvedNodeText(node, r'''
+MethodInvocation
+ target: SimpleIdentifier
+ token: A
+ staticElement: <testLibraryFragment>::@class::A
+ element: <testLibrary>::@class::A
+ staticType: null
+ operator: .
+ methodName: SimpleIdentifier
+ token: foo
+ staticElement: <testLibraryFragment>::@class::A::@method::foo
+ element: <testLibraryFragment>::@class::A::@method::foo#element
+ staticType: void Function(int)
+ argumentList: ArgumentList
+ leftParenthesis: (
+ arguments
+ IntegerLiteral
+ literal: 0
+ parameter: <testLibraryFragment>::@class::A::@method::foo::@parameter::a
+ staticType: int
+ rightParenthesis: )
+ staticInvokeType: void Function(int)
+ staticType: void
+''');
}
test_targetSimpleIdentifier_prefix_class() async {
@@ -1686,8 +1722,26 @@
}
''');
- var identifier = findNode.constructorReference('C.new');
- assertElement(identifier, findElement.unnamedConstructor('C'));
+ var node = findNode.constructorReference('C.new');
+ assertResolvedNodeText(node, r'''
+ConstructorReference
+ constructorName: ConstructorName
+ type: NamedType
+ name: C
+ element: <testLibraryFragment>::@class::C
+ element2: <testLibrary>::@class::C
+ type: null
+ period: .
+ name: SimpleIdentifier
+ token: new
+ staticElement: <testLibraryFragment>::@class::C::@constructor::new
+ element: <testLibraryFragment>::@class::C::@constructor::new#element
+ staticType: null
+ staticElement: <testLibraryFragment>::@class::C::@constructor::new
+ element: <testLibraryFragment>::@class::C::@constructor::new#element
+ parameter: <testLibraryFragment>::@setter::f::@parameter::_f
+ staticType: C Function()
+''');
}
// TODO(srawlins): Complete tests of all cases of rewriting (or not) a
diff --git a/pkg/analyzer/test/src/dart/resolution/class_alias_test.dart b/pkg/analyzer/test/src/dart/resolution/class_alias_test.dart
index 5774fc4..f273814 100644
--- a/pkg/analyzer/test/src/dart/resolution/class_alias_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/class_alias_test.dart
@@ -73,7 +73,7 @@
error(
CompileTimeErrorCode.FINAL_CLASS_EXTENDED_OUTSIDE_OF_LIBRARY, 27, 8),
]);
- var x = findElement.class_('X');
+ var x = findElement2.class_('X');
assertType(x.supertype, 'Object');
}
@@ -86,7 +86,7 @@
error(CompileTimeErrorCode.FINAL_CLASS_IMPLEMENTED_OUTSIDE_OF_LIBRARY, 66,
8),
]);
- var x = findElement.class_('X');
+ var x = findElement2.class_('X');
assertElementTypes(x.interfaces, ['A', 'B']);
}
@@ -98,7 +98,7 @@
''', [
error(CompileTimeErrorCode.CLASS_USED_AS_MIXIN, 59, 8),
]);
- var x = findElement.class_('X');
+ var x = findElement2.class_('X');
assertElementTypes(x.mixins, ['A', 'B']);
}
diff --git a/pkg/analyzer/test/src/dart/resolution/class_test.dart b/pkg/analyzer/test/src/dart/resolution/class_test.dart
index 1621c55..9add041 100644
--- a/pkg/analyzer/test/src/dart/resolution/class_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/class_test.dart
@@ -31,23 +31,23 @@
''');
assertElementTypes(
- findElement.class_('X1').allSupertypes,
+ findElement2.class_('X1').allSupertypes,
['Object', 'A'],
);
assertElementTypes(
- findElement.class_('X2').allSupertypes,
+ findElement2.class_('X2').allSupertypes,
['Object', 'B'],
);
assertElementTypes(
- findElement.class_('X3').allSupertypes,
+ findElement2.class_('X3').allSupertypes,
['Object', 'A', 'B'],
);
assertElementTypes(
- findElement.class_('X4').allSupertypes,
+ findElement2.class_('X4').allSupertypes,
['Object', 'A', 'B', 'C'],
);
assertElementTypes(
- findElement.class_('X5').allSupertypes,
+ findElement2.class_('X5').allSupertypes,
['Object', 'A', 'B', 'C', 'D', 'E'],
);
}
@@ -64,15 +64,15 @@
''');
assertElementTypes(
- findElement.class_('X1').allSupertypes,
+ findElement2.class_('X1').allSupertypes,
['Object', 'A<String>'],
);
assertElementTypes(
- findElement.class_('X2').allSupertypes,
+ findElement2.class_('X2').allSupertypes,
['Object', 'B<String, List<int>>'],
);
assertElementTypes(
- findElement.class_('X3').allSupertypes,
+ findElement2.class_('X3').allSupertypes,
['Object', 'B<int, double>', 'C<double>'],
);
}
@@ -91,7 +91,7 @@
]);
assertElementTypes(
- findElement.class_('X').allSupertypes,
+ findElement2.class_('X').allSupertypes,
['A', 'B', 'C'],
);
}
@@ -103,7 +103,7 @@
error(
CompileTimeErrorCode.FINAL_CLASS_EXTENDED_OUTSIDE_OF_LIBRARY, 16, 8),
]);
- var a = findElement.class_('A');
+ var a = findElement2.class_('A');
assertType(a.supertype, 'Object');
}
@@ -114,7 +114,7 @@
''', [
error(WarningCode.DEPRECATED_EXTENDS_FUNCTION, 32, 8),
]);
- var a = findElement.class_('A');
+ var a = findElement2.class_('A');
assertType(a.supertype, 'Object');
}
@@ -128,7 +128,7 @@
]);
assertElementTypes(
- findElement.class_('C').mixins,
+ findElement2.class_('C').mixins,
['A', 'B'],
);
}
@@ -144,7 +144,7 @@
]);
assertElementTypes(
- findElement.class_('C').mixins,
+ findElement2.class_('C').mixins,
['A', 'B'],
);
}
diff --git a/pkg/analyzer/test/src/dart/resolution/comment_test.dart b/pkg/analyzer/test/src/dart/resolution/comment_test.dart
index 134ee1c..2094ebe 100644
--- a/pkg/analyzer/test/src/dart/resolution/comment_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/comment_test.dart
@@ -1639,10 +1639,14 @@
foo(int p) {}
''');
- assertElement(
- findNode.simple('p]'),
- findElement.parameter('p'),
- );
+ var node = findNode.simple('p]');
+ assertResolvedNodeText(node, r'''
+SimpleIdentifier
+ token: p
+ staticElement: <testLibraryFragment>::@function::foo::@parameter::p
+ element: <testLibraryFragment>::@function::foo::@parameter::p#element
+ staticType: null
+''');
}
test_beforeFunction_expressionBody() async {
@@ -1717,7 +1721,14 @@
get g => null;
''');
- assertElement(findNode.simple('int]'), intElement);
+ var node = findNode.simple('int]');
+ assertResolvedNodeText(node, r'''
+SimpleIdentifier
+ token: int
+ staticElement: dart:core::<fragment>::@class::int
+ element: dart:core::@class::int
+ staticType: null
+''');
}
test_beforeMethod() async {
diff --git a/pkg/analyzer/test/src/dart/resolution/enum_test.dart b/pkg/analyzer/test/src/dart/resolution/enum_test.dart
index 2dfb9a9..91e3865 100644
--- a/pkg/analyzer/test/src/dart/resolution/enum_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/enum_test.dart
@@ -398,7 +398,7 @@
var v = [E1.a, E2.b];
''');
- var v = findElement.topVar('v');
+ var v = findElement2.topVar('v');
assertType(v.type, 'List<Enum>');
}
@@ -430,10 +430,10 @@
}
''');
- expect(findElement.field('a').isEnumConstant, isTrue);
- expect(findElement.field('b').isEnumConstant, isTrue);
+ expect(findElement2.field('a').isEnumConstant, isTrue);
+ expect(findElement2.field('b').isEnumConstant, isTrue);
- expect(findElement.field('values').isEnumConstant, isFalse);
+ expect(findElement2.field('values').isEnumConstant, isFalse);
}
test_method() async {
diff --git a/pkg/analyzer/test/src/dart/resolution/field_test.dart b/pkg/analyzer/test/src/dart/resolution/field_test.dart
index ca259d6..7e2baa2 100644
--- a/pkg/analyzer/test/src/dart/resolution/field_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/field_test.dart
@@ -223,10 +223,10 @@
var f = 0;
}
''');
- var getter = findElement.getter('f');
+ var getter = findElement2.getter('f');
expect(getter.session, result.session);
- var setter = findElement.setter('f');
+ var setter = findElement2.setter('f');
expect(setter.session, result.session);
}
@@ -236,7 +236,7 @@
var f = 0;
}
''');
- assertType(findElement.field('f').type, 'int');
+ assertType(findElement2.field('f').type, 'int');
}
test_type_inferred_Never() async {
@@ -245,7 +245,7 @@
var f = throw 42;
}
''');
- assertType(findElement.field('f').type, 'Never');
+ assertType(findElement2.field('f').type, 'Never');
}
test_type_inferred_noInitializer() async {
@@ -254,7 +254,7 @@
var f;
}
''');
- assertType(findElement.field('f').type, 'dynamic');
+ assertType(findElement2.field('f').type, 'dynamic');
}
test_type_inferred_null() async {
@@ -263,7 +263,7 @@
var f = null;
}
''');
- assertType(findElement.field('f').type, 'dynamic');
+ assertType(findElement2.field('f').type, 'dynamic');
}
test_type_scope() async {
diff --git a/pkg/analyzer/test/src/dart/resolution/for_element_test.dart b/pkg/analyzer/test/src/dart/resolution/for_element_test.dart
index ddc21ba..0e93ac0 100644
--- a/pkg/analyzer/test/src/dart/resolution/for_element_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/for_element_test.dart
@@ -24,19 +24,28 @@
test_withDeclaration_scope() async {
await assertNoErrorsInCode(r'''
main() {
- <int>[for (var i in [1, 2, 3]) i]; // 1
- <double>[for (var i in [1.1, 2.2, 3.3]) i]; // 2
+ <int>[for (var i in [1]) i]; // 1
+ <double>[for (var i in [1.1]) i]; // 2
}
''');
- assertElement(
- findNode.simple('i]; // 1'),
- findNode.declaredIdentifier('i in [1, 2').declaredElement!,
- );
- assertElement(
- findNode.simple('i]; // 2'),
- findNode.declaredIdentifier('i in [1.1').declaredElement!,
- );
+ var node_1 = findNode.simple('i]; // 1');
+ assertResolvedNodeText(node_1, r'''
+SimpleIdentifier
+ token: i
+ staticElement: i@26
+ element: i@26
+ staticType: int
+''');
+
+ var node_2 = findNode.simple('i]; // 2');
+ assertResolvedNodeText(node_2, r'''
+SimpleIdentifier
+ token: i
+ staticElement: i@65
+ element: i@65
+ staticType: double
+''');
}
test_withIdentifier_topLevelVariable() async {
@@ -46,10 +55,15 @@
<int>[for (v in [1, 2, 3]) v];
}
''');
- assertElement(
- findNode.simple('v];'),
- findElement.topGet('v'),
- );
+
+ var node = findNode.simple('v];');
+ assertResolvedNodeText(node, r'''
+SimpleIdentifier
+ token: v
+ staticElement: <testLibraryFragment>::@getter::v
+ element: <testLibraryFragment>::@getter::v#element
+ staticType: int
+''');
}
}
@@ -758,14 +772,23 @@
}
''');
- assertElement(
- findNode.simple('i]; // 1'),
- findNode.variableDeclaration('i = 1;').declaredElement!,
- );
- assertElement(
- findNode.simple('i]; // 2'),
- findNode.variableDeclaration('i = 1.1;').declaredElement!,
- );
+ var node_1 = findNode.simple('i]; // 1');
+ assertResolvedNodeText(node_1, r'''
+SimpleIdentifier
+ token: i
+ staticElement: i@26
+ element: i@26
+ staticType: int
+''');
+
+ var node_2 = findNode.simple('i]; // 2');
+ assertResolvedNodeText(node_2, r'''
+SimpleIdentifier
+ token: i
+ staticElement: i@78
+ element: i@78
+ staticType: double
+''');
}
}
diff --git a/pkg/analyzer/test/src/dart/resolution/function_body_test.dart b/pkg/analyzer/test/src/dart/resolution/function_body_test.dart
index 3ee2068..3bca095 100644
--- a/pkg/analyzer/test/src/dart/resolution/function_body_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/function_body_test.dart
@@ -124,8 +124,8 @@
await assertNoErrorsInCode(code);
var body = findNode.singleFunctionBody;
- var element = findElement.parameter('x');
- expect(body.isPotentiallyMutatedInScope(element), expected);
+ var element = findElement2.parameter('x');
+ expect(body.isPotentiallyMutatedInScope2(element), expected);
}
/// Assign that `v` in the only [FunctionBody] is not mutated.
@@ -133,7 +133,7 @@
await assertNoErrorsInCode(code);
var body = findNode.singleFunctionBody;
- var element = findElement.localVar('v');
- expect(body.isPotentiallyMutatedInScope(element), expected);
+ var element = findElement2.localVar('v');
+ expect(body.isPotentiallyMutatedInScope2(element), expected);
}
}
diff --git a/pkg/analyzer/test/src/dart/resolution/function_declaration_test.dart b/pkg/analyzer/test/src/dart/resolution/function_declaration_test.dart
index bf925ac..b961b62 100644
--- a/pkg/analyzer/test/src/dart/resolution/function_declaration_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/function_declaration_test.dart
@@ -125,10 +125,14 @@
}
''');
- assertElement(
- findNode.simple('foo + 1'),
- findElement.topGet('foo'),
- );
+ var node = findNode.simple('foo + 1');
+ assertResolvedNodeText(node, r'''
+SimpleIdentifier
+ token: foo
+ staticElement: <testLibraryFragment>::@getter::foo
+ element: <testLibraryFragment>::@getter::foo#element
+ staticType: int
+''');
}
test_formalParameterScope_type() async {
@@ -140,15 +144,23 @@
}
''');
- assertElement(
- findNode.namedType('a a'),
- findElement.class_('a'),
- );
+ var node_1 = findNode.namedType('a a');
+ assertResolvedNodeText(node_1, r'''
+NamedType
+ name: a
+ element: <testLibraryFragment>::@class::a
+ element2: <testLibrary>::@class::a
+ type: a
+''');
- assertElement(
- findNode.simple('a;'),
- findElement.parameter('a'),
- );
+ var node_2 = findNode.simple('a;');
+ assertResolvedNodeText(node_2, r'''
+SimpleIdentifier
+ token: a
+ staticElement: <testLibraryFragment>::@function::bar::@parameter::a
+ element: <testLibraryFragment>::@function::bar::@parameter::a#element
+ staticType: a
+''');
}
test_getter_formalParameters() async {
diff --git a/pkg/analyzer/test/src/dart/resolution/generic_function_type_test.dart b/pkg/analyzer/test/src/dart/resolution/generic_function_type_test.dart
index 4ae2a74..aa1faa5 100644
--- a/pkg/analyzer/test/src/dart/resolution/generic_function_type_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/generic_function_type_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/dart/ast/ast.dart';
-import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import 'context_collection_resolution.dart';
@@ -54,9 +53,23 @@
Function<@a T>()? x;
''');
+
var T = findNode.typeParameter('T');
- var annotation = T.declaredElement!.metadata[0];
- expect(annotation.element, findElement.topGet('a'));
+ assertResolvedNodeText(T, r'''
+TypeParameter
+ metadata
+ Annotation
+ atSign: @
+ name: SimpleIdentifier
+ token: a
+ staticElement: <testLibraryFragment>::@getter::a
+ element: <testLibraryFragment>::@getter::a#element
+ staticType: null
+ element: <testLibraryFragment>::@getter::a
+ element2: <testLibraryFragment>::@getter::a#element
+ name: T
+ declaredElement: T@27
+''');
}
/// Test that when multiple [GenericFunctionType]s are used in a
diff --git a/pkg/analyzer/test/src/dart/resolution/instance_member_inference_class_test.dart b/pkg/analyzer/test/src/dart/resolution/instance_member_inference_class_test.dart
index 5dbf31f..a689f6a 100644
--- a/pkg/analyzer/test/src/dart/resolution/instance_member_inference_class_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/instance_member_inference_class_test.dart
@@ -2,7 +2,7 @@
// 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/element2.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -26,7 +26,7 @@
int foo = 0;
}
''');
- var foo = findElement.field('foo', of: 'B');
+ var foo = findElement2.field('foo', of: 'B');
_assertFieldType(foo, 'int', isCovariant: true);
}
@@ -40,7 +40,7 @@
int foo = 0;
}
''');
- var foo = findElement.field('foo', of: 'B');
+ var foo = findElement2.field('foo', of: 'B');
_assertFieldType(foo, 'int', isCovariant: true);
}
@@ -54,7 +54,7 @@
var foo;
}
''');
- var foo = findElement.field('foo', of: 'B');
+ var foo = findElement2.field('foo', of: 'B');
_assertFieldType(foo, 'int');
}
@@ -68,7 +68,7 @@
var foo = 0;
}
''');
- var foo = findElement.field('foo', of: 'B');
+ var foo = findElement2.field('foo', of: 'B');
_assertFieldType(foo, 'num');
}
@@ -84,7 +84,7 @@
var foo;
}
''');
- var foo = findElement.field('foo', of: 'C');
+ var foo = findElement2.field('foo', of: 'C');
_assertFieldTypeDynamic(foo);
}
@@ -100,7 +100,7 @@
var foo;
}
''');
- var foo = findElement.field('foo', of: 'C');
+ var foo = findElement2.field('foo', of: 'C');
_assertFieldType(foo, 'int');
}
@@ -116,7 +116,7 @@
var foo;
}
''');
- var foo = findElement.field('foo', of: 'C');
+ var foo = findElement2.field('foo', of: 'C');
_assertFieldTypeDynamic(foo);
}
@@ -135,7 +135,7 @@
final foo;
}
''');
- var foo = findElement.field('foo', of: 'X');
+ var foo = findElement2.field('foo', of: 'X');
_assertFieldType(foo, 'int');
}
@@ -154,7 +154,7 @@
final foo;
}
''');
- var foo = findElement.field('foo', of: 'X');
+ var foo = findElement2.field('foo', of: 'X');
_assertFieldTypeDynamic(foo);
}
@@ -173,7 +173,7 @@
var foo;
}
''');
- var foo = findElement.field('foo', of: 'X');
+ var foo = findElement2.field('foo', of: 'X');
_assertFieldTypeDynamic(foo);
// TODO(scheglov): error?
}
@@ -193,7 +193,7 @@
var foo;
}
''');
- var foo = findElement.field('foo', of: 'X');
+ var foo = findElement2.field('foo', of: 'X');
_assertFieldType(foo, 'int');
}
@@ -212,7 +212,7 @@
var foo;
}
''');
- var foo = findElement.field('foo', of: 'X');
+ var foo = findElement2.field('foo', of: 'X');
_assertFieldTypeDynamic(foo);
}
@@ -231,7 +231,7 @@
var foo;
}
''');
- var foo = findElement.field('foo', of: 'X');
+ var foo = findElement2.field('foo', of: 'X');
_assertFieldTypeDynamic(foo);
}
@@ -247,7 +247,7 @@
var foo;
}
''');
- var foo = findElement.field('foo', of: 'C');
+ var foo = findElement2.field('foo', of: 'C');
_assertFieldType(foo, 'num');
}
@@ -263,7 +263,7 @@
var foo;
}
''');
- var foo = findElement.field('foo', of: 'C');
+ var foo = findElement2.field('foo', of: 'C');
_assertFieldTypeDynamic(foo);
}
@@ -279,7 +279,7 @@
get foo => throw 0;
}
''');
- var foo = findElement.getter('foo', of: 'C');
+ var foo = findElement2.getter('foo', of: 'C');
_assertGetterType(foo, 'int');
}
@@ -295,7 +295,7 @@
get foo => throw 0;
}
''');
- var foo = findElement.getter('foo', of: 'C');
+ var foo = findElement2.getter('foo', of: 'C');
_assertGetterTypeDynamic(foo);
}
@@ -311,7 +311,7 @@
get foo => throw 0;
}
''');
- var foo = findElement.getter('foo', of: 'C');
+ var foo = findElement2.getter('foo', of: 'C');
_assertGetterType(foo, 'int');
}
@@ -330,7 +330,7 @@
get foo => throw 0;
}
''');
- var foo = findElement.getter('foo', of: 'X');
+ var foo = findElement2.getter('foo', of: 'X');
_assertGetterType(foo, 'int');
}
@@ -349,7 +349,7 @@
get foo => throw 0;
}
''');
- var foo = findElement.getter('foo', of: 'X');
+ var foo = findElement2.getter('foo', of: 'X');
_assertGetterTypeDynamic(foo);
}
@@ -365,7 +365,7 @@
get foo => throw 0;
}
''');
- var foo = findElement.getter('foo', of: 'C');
+ var foo = findElement2.getter('foo', of: 'C');
_assertGetterType(foo, 'num');
}
@@ -381,7 +381,7 @@
get foo => throw 0;
}
''');
- var foo = findElement.getter('foo', of: 'C');
+ var foo = findElement2.getter('foo', of: 'C');
_assertGetterTypeDynamic(foo);
}
@@ -395,7 +395,7 @@
var foo = <String, int>{};
}
''');
- var foo = findElement.field('foo', of: 'B');
+ var foo = findElement2.field('foo', of: 'B');
_assertFieldType(foo, 'Map<String, int>');
}
@@ -419,8 +419,8 @@
void foo({int p}) {}
}
''');
- var p = findElement.method('foo', of: 'C').parameters[0];
- _assertParameter(p, type: 'int', isCovariant: true);
+ var p = findElement2.method('foo', of: 'C').formalParameters[0];
+ _assertFormalParameter(p, type: 'int', isCovariant: true);
}
test_method_parameter_covariant_positional() async {
@@ -435,8 +435,8 @@
void foo([int p]) {}
}
''');
- var p = findElement.method('foo', of: 'C').parameters[0];
- _assertParameter(p, type: 'int', isCovariant: true);
+ var p = findElement2.method('foo', of: 'C').formalParameters[0];
+ _assertFormalParameter(p, type: 'int', isCovariant: true);
}
test_method_parameter_covariant_required() async {
@@ -451,8 +451,8 @@
void foo(int p) {}
}
''');
- var p = findElement.method('foo', of: 'C').parameters[0];
- _assertParameter(p, type: 'int', isCovariant: true);
+ var p = findElement2.method('foo', of: 'C').formalParameters[0];
+ _assertFormalParameter(p, type: 'int', isCovariant: true);
}
test_method_parameter_named_multiple_combined() async {
@@ -467,7 +467,7 @@
void foo({p}) {}
}
''');
- var p = findElement.method('foo', of: 'C').parameters[0];
+ var p = findElement2.method('foo', of: 'C').formalParameters[0];
assertType(p.type, 'num');
}
@@ -483,7 +483,7 @@
void foo({p}) {}
}
''');
- var p = findElement.method('foo', of: 'C').parameters[0];
+ var p = findElement2.method('foo', of: 'C').formalParameters[0];
assertTypeDynamic(p.type);
}
@@ -499,7 +499,7 @@
void foo({p}) {}
}
''');
- var p = findElement.method('foo', of: 'C').parameters[0];
+ var p = findElement2.method('foo', of: 'C').formalParameters[0];
assertType(p.type, 'int');
}
@@ -515,7 +515,7 @@
void foo(p) {}
}
''');
- var p = findElement.method('foo', of: 'C').parameters[0];
+ var p = findElement2.method('foo', of: 'C').formalParameters[0];
assertTypeDynamic(p.type);
}
@@ -531,7 +531,7 @@
void foo(p) {}
}
''');
- var p = findElement.method('foo', of: 'C').parameters[0];
+ var p = findElement2.method('foo', of: 'C').formalParameters[0];
assertType(p.type, 'num');
}
@@ -549,7 +549,7 @@
void foo(p) {}
}
''');
- var p = findElement.method('foo', of: 'C').parameters[0];
+ var p = findElement2.method('foo', of: 'C').formalParameters[0];
assertType(p.type, 'Object?');
}
@@ -565,7 +565,7 @@
void foo(p) {}
}
''');
- var p = findElement.method('foo', of: 'C').parameters[0];
+ var p = findElement2.method('foo', of: 'C').formalParameters[0];
assertTypeDynamic(p.type);
}
@@ -581,7 +581,7 @@
void foo(p) {}
}
''');
- var p = findElement.method('foo', of: 'C').parameters[0];
+ var p = findElement2.method('foo', of: 'C').formalParameters[0];
assertType(p.type, 'int');
}
@@ -594,7 +594,7 @@
void foo(p) {}
}
''');
- var p = findElement.method('foo', of: 'C').parameters[0];
+ var p = findElement2.method('foo', of: 'C').formalParameters[0];
assertType(p.type, 'T');
}
@@ -610,7 +610,7 @@
void foo(p) {}
}
''');
- var p = findElement.method('foo', of: 'C').parameters[0];
+ var p = findElement2.method('foo', of: 'C').formalParameters[0];
assertType(p.type, 'int');
}
@@ -626,7 +626,7 @@
foo() => 0;
}
''');
- var foo = findElement.method('foo', of: 'C');
+ var foo = findElement2.method('foo', of: 'C');
assertType(foo.returnType, 'int');
}
@@ -642,7 +642,7 @@
foo() => 0;
}
''');
- var foo = findElement.method('foo', of: 'C');
+ var foo = findElement2.method('foo', of: 'C');
assertType(foo.returnType, 'int');
}
@@ -658,7 +658,7 @@
foo() => throw 0;
}
''');
- var foo = findElement.method('foo', of: 'C');
+ var foo = findElement2.method('foo', of: 'C');
assertTypeDynamic(foo.returnType);
}
@@ -674,7 +674,7 @@
foo() => 0;
}
''');
- var foo = findElement.method('foo', of: 'C');
+ var foo = findElement2.method('foo', of: 'C');
assertTypeDynamic(foo.returnType);
}
@@ -692,7 +692,7 @@
foo() => throw 0;
}
''');
- var foo = findElement.method('foo', of: 'C');
+ var foo = findElement2.method('foo', of: 'C');
assertType(foo.returnType, 'Object?');
}
@@ -708,7 +708,7 @@
foo() => 0;
}
''');
- var foo = findElement.method('foo', of: 'C');
+ var foo = findElement2.method('foo', of: 'C');
assertType(foo.returnType, 'int');
}
@@ -724,7 +724,7 @@
foo() => 0;
}
''');
- var foo = findElement.method('foo', of: 'C');
+ var foo = findElement2.method('foo', of: 'C');
assertType(foo.returnType, 'T');
}
@@ -740,7 +740,7 @@
foo() => 0;
}
''');
- var foo = findElement.method('foo', of: 'C');
+ var foo = findElement2.method('foo', of: 'C');
assertType(foo.returnType, 'int');
}
@@ -756,7 +756,7 @@
foo() {};
}
''');
- var foo = findElement.method('foo', of: 'C');
+ var foo = findElement2.method('foo', of: 'C');
assertType(foo.returnType, 'void');
}
@@ -769,7 +769,7 @@
foo() => 0;
}
''');
- var foo = findElement.method('foo', of: 'B');
+ var foo = findElement2.method('foo', of: 'B');
assertType(foo.returnType, 'int');
}
@@ -782,7 +782,7 @@
foo() => throw 0;
}
''');
- var foo = findElement.method('foo', of: 'B');
+ var foo = findElement2.method('foo', of: 'B');
assertType(foo.returnType, 'T');
}
@@ -798,7 +798,7 @@
set foo(int x) {}
}
''');
- var foo = findElement.setter('foo', of: 'C');
+ var foo = findElement2.setter('foo', of: 'C');
_assertSetterType(foo, 'int', isCovariant: true);
}
@@ -814,7 +814,7 @@
set foo(x) {}
}
''');
- var foo = findElement.setter('foo', of: 'C');
+ var foo = findElement2.setter('foo', of: 'C');
_assertSetterType(foo, 'int');
}
@@ -830,7 +830,7 @@
set foo(x) {}
}
''');
- var foo = findElement.setter('foo', of: 'C');
+ var foo = findElement2.setter('foo', of: 'C');
_assertSetterTypeDynamic(foo);
}
@@ -849,7 +849,7 @@
set foo(x) {}
}
''');
- var foo = findElement.setter('foo', of: 'X');
+ var foo = findElement2.setter('foo', of: 'X');
_assertSetterType(foo, 'num');
}
@@ -868,7 +868,7 @@
set foo(x) {}
}
''');
- var foo = findElement.setter('foo', of: 'X');
+ var foo = findElement2.setter('foo', of: 'X');
_assertSetterTypeDynamic(foo);
}
@@ -884,7 +884,7 @@
set foo(x) {}
}
''');
- var foo = findElement.setter('foo', of: 'C');
+ var foo = findElement2.setter('foo', of: 'C');
_assertSetterType(foo, 'num');
}
@@ -900,7 +900,7 @@
set foo(x) {}
}
''');
- var foo = findElement.setter('foo', of: 'C');
+ var foo = findElement2.setter('foo', of: 'C');
_assertSetterTypeDynamic(foo);
}
@@ -913,47 +913,37 @@
set foo(x) {}
}
''');
- var foo = findElement.setter('foo', of: 'B');
+ var foo = findElement2.setter('foo', of: 'B');
_assertSetterType(foo, 'dynamic');
}
void _assertFieldType(
- FieldElement field,
+ FieldElement2 field,
String type, {
bool isCovariant = false,
}) {
expect(field.isSynthetic, isFalse);
- _assertGetterType(field.getter, type);
+ _assertGetterType(field.getter2, type);
- var setter = field.setter;
+ var setter = field.setter2;
if (setter != null) {
_assertSetterType(setter, type, isCovariant: isCovariant);
}
}
- void _assertFieldTypeDynamic(FieldElement field) {
+ void _assertFieldTypeDynamic(FieldElement2 field) {
expect(field.isSynthetic, isFalse);
- _assertGetterTypeDynamic(field.getter);
+ _assertGetterTypeDynamic(field.getter2);
if (!field.isFinal) {
- _assertSetterTypeDynamic(field.setter);
+ _assertSetterTypeDynamic(field.setter2);
}
}
- void _assertGetterType(PropertyAccessorElement? accessor, String expected) {
- accessor!;
- assertType(accessor.returnType, expected);
- }
-
- void _assertGetterTypeDynamic(PropertyAccessorElement? accessor) {
- accessor!;
- assertTypeDynamic(accessor.returnType);
- }
-
- void _assertParameter(
- ParameterElement element, {
+ void _assertFormalParameter(
+ FormalParameterElement element, {
String? type,
bool isCovariant = false,
}) {
@@ -961,18 +951,28 @@
expect(element.isCovariant, isCovariant);
}
+ void _assertGetterType(GetterElement? accessor, String expected) {
+ accessor!;
+ assertType(accessor.returnType, expected);
+ }
+
+ void _assertGetterTypeDynamic(GetterElement? accessor) {
+ accessor!;
+ assertTypeDynamic(accessor.returnType);
+ }
+
void _assertSetterType(
- PropertyAccessorElement accessor,
+ SetterElement accessor,
String expected, {
bool isCovariant = false,
}) {
- var parameter = accessor.parameters.single;
+ var parameter = accessor.formalParameters.single;
assertType(parameter.type, expected);
expect(parameter.isCovariant, isCovariant);
}
- void _assertSetterTypeDynamic(PropertyAccessorElement? accessor) {
+ void _assertSetterTypeDynamic(SetterElement? accessor) {
accessor!;
- assertTypeDynamic(accessor.parameters.single.type);
+ assertTypeDynamic(accessor.formalParameters.single.type);
}
}
diff --git a/pkg/analyzer/test/src/dart/resolution/instance_member_inference_mixin_test.dart b/pkg/analyzer/test/src/dart/resolution/instance_member_inference_mixin_test.dart
index a9a312f..4471a50 100644
--- a/pkg/analyzer/test/src/dart/resolution/instance_member_inference_mixin_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/instance_member_inference_mixin_test.dart
@@ -34,7 +34,7 @@
void foo({p}) {}
}
''');
- var p = findElement.method('foo', of: 'M').parameters[0];
+ var p = findElement2.method('foo', of: 'M').formalParameters[0];
assertType(p.type, 'num');
}
@@ -50,7 +50,7 @@
void foo({p}) {}
}
''');
- var p = findElement.method('foo', of: 'M').parameters[0];
+ var p = findElement2.method('foo', of: 'M').formalParameters[0];
assertTypeDynamic(p.type);
}
@@ -66,7 +66,7 @@
void foo({p}) {}
}
''');
- var p = findElement.method('foo', of: 'M').parameters[0];
+ var p = findElement2.method('foo', of: 'M').formalParameters[0];
assertType(p.type, 'int');
}
@@ -82,7 +82,7 @@
void foo(p) {}
}
''');
- var p = findElement.method('foo', of: 'M').parameters[0];
+ var p = findElement2.method('foo', of: 'M').formalParameters[0];
assertTypeDynamic(p.type);
}
@@ -98,7 +98,7 @@
void foo(p) {}
}
''');
- var p = findElement.method('foo', of: 'M').parameters[0];
+ var p = findElement2.method('foo', of: 'M').formalParameters[0];
assertType(p.type, 'num');
}
@@ -116,7 +116,7 @@
void foo(p) {}
}
''');
- var p = findElement.method('foo', of: 'M').parameters[0];
+ var p = findElement2.method('foo', of: 'M').formalParameters[0];
assertType(p.type, 'Object?');
}
@@ -132,7 +132,7 @@
void foo(p) {}
}
''');
- var p = findElement.method('foo', of: 'M').parameters[0];
+ var p = findElement2.method('foo', of: 'M').formalParameters[0];
assertTypeDynamic(p.type);
}
@@ -148,7 +148,7 @@
void foo(p) {}
}
''');
- var p = findElement.method('foo', of: 'M').parameters[0];
+ var p = findElement2.method('foo', of: 'M').formalParameters[0];
assertType(p.type, 'int');
}
@@ -161,7 +161,7 @@
void foo(p) {}
}
''');
- var p = findElement.method('foo', of: 'M').parameters[0];
+ var p = findElement2.method('foo', of: 'M').formalParameters[0];
assertType(p.type, 'T');
}
@@ -177,7 +177,7 @@
void foo(p) {}
}
''');
- var p = findElement.method('foo', of: 'M').parameters[0];
+ var p = findElement2.method('foo', of: 'M').formalParameters[0];
assertType(p.type, 'int');
}
@@ -193,7 +193,7 @@
foo() => 0;
}
''');
- var foo = findElement.method('foo', of: 'M');
+ var foo = findElement2.method('foo', of: 'M');
assertType(foo.returnType, 'int');
}
@@ -209,7 +209,7 @@
foo() => 0;
}
''');
- var foo = findElement.method('foo', of: 'M');
+ var foo = findElement2.method('foo', of: 'M');
assertType(foo.returnType, 'int');
}
@@ -225,7 +225,7 @@
foo() => throw 0;
}
''');
- var foo = findElement.method('foo', of: 'M');
+ var foo = findElement2.method('foo', of: 'M');
assertTypeDynamic(foo.returnType);
}
@@ -241,7 +241,7 @@
foo() => 0;
}
''');
- var foo = findElement.method('foo', of: 'M');
+ var foo = findElement2.method('foo', of: 'M');
assertTypeDynamic(foo.returnType);
}
@@ -259,7 +259,7 @@
foo() => throw 0;
}
''');
- var foo = findElement.method('foo', of: 'M');
+ var foo = findElement2.method('foo', of: 'M');
assertType(foo.returnType, 'Object?');
}
@@ -275,7 +275,7 @@
foo() => 0;
}
''');
- var foo = findElement.method('foo', of: 'M');
+ var foo = findElement2.method('foo', of: 'M');
assertType(foo.returnType, 'int');
}
@@ -291,7 +291,7 @@
foo() => 0;
}
''');
- var foo = findElement.method('foo', of: 'M');
+ var foo = findElement2.method('foo', of: 'M');
assertType(foo.returnType, 'T');
}
@@ -307,7 +307,7 @@
foo() => 0;
}
''');
- var foo = findElement.method('foo', of: 'M');
+ var foo = findElement2.method('foo', of: 'M');
assertType(foo.returnType, 'int');
}
@@ -323,7 +323,7 @@
foo() {};
}
''');
- var foo = findElement.method('foo', of: 'M');
+ var foo = findElement2.method('foo', of: 'M');
assertType(foo.returnType, 'void');
}
@@ -336,7 +336,7 @@
foo() => 0;
}
''');
- var foo = findElement.method('foo', of: 'B');
+ var foo = findElement2.method('foo', of: 'B');
assertType(foo.returnType, 'int');
}
@@ -349,7 +349,7 @@
foo() => throw 0;
}
''');
- var foo = findElement.method('foo', of: 'B');
+ var foo = findElement2.method('foo', of: 'B');
assertType(foo.returnType, 'T');
}
}
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 32c5201..175ac53 100644
--- a/pkg/analyzer/test/src/dart/resolution/library_element_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/library_element_test.dart
@@ -155,7 +155,7 @@
}
void _assertFeatureSet(List<Feature> expected) {
- var featureSet = result.libraryElement.featureSet;
+ var featureSet = result.libraryElement2.featureSet;
var actual = ExperimentStatus.knownFeatures.values
.where(featureSet.isEnabled)
@@ -168,7 +168,7 @@
required Version package,
required Version? override,
}) async {
- var element = result.libraryElement;
+ var element = result.libraryElement2;
expect(element.languageVersion.package, package);
expect(element.languageVersion.override, override);
}
@@ -182,7 +182,7 @@
''');
expect(
- result.libraryElement.toString(),
+ result.libraryElement2.toString(),
'library package:test/test.dart',
);
}
@@ -193,7 +193,7 @@
''');
expect(
- result.libraryElement.toString(),
+ result.libraryElement2.toString(),
'library package:test/test.dart',
);
}
@@ -204,7 +204,7 @@
''');
expect(
- result.libraryElement.toString(),
+ result.libraryElement2.toString(),
'library package:test/test.dart',
);
}
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 a79c059..0b12ec9 100644
--- a/pkg/analyzer/test/src/dart/resolution/library_export_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/library_export_test.dart
@@ -442,9 +442,9 @@
await resolveTestCode(r'''
export 'a.dart';
''');
- var exportNamespace = result.libraryElement.exportNamespace;
- expect(exportNamespace.get('f'), isNotNull);
- expect(exportNamespace.get('f='), isNotNull);
+ var exportNamespace = result.libraryElement2.exportNamespace;
+ expect(exportNamespace.get2('f'), isNotNull);
+ expect(exportNamespace.get2('f='), isNotNull);
}
test_inLibrary_noRelativeUri() async {
diff --git a/pkg/analyzer/test/src/dart/resolution/library_import_prefix_test.dart b/pkg/analyzer/test/src/dart/resolution/library_import_prefix_test.dart
index 82b8d69..06111f4 100644
--- a/pkg/analyzer/test/src/dart/resolution/library_import_prefix_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/library_import_prefix_test.dart
@@ -127,9 +127,14 @@
}
''');
- var pRef = findNode.simple('p.max');
- assertElement(pRef, findElement.prefix('p'));
- assertTypeNull(pRef);
+ var node = findNode.simple('p.max');
+ assertResolvedNodeText(node, r'''
+SimpleIdentifier
+ token: p
+ staticElement: <testLibraryFragment>::@prefix::p
+ element: <testLibraryFragment>::@prefix2::p
+ staticType: null
+''');
}
test_asPrefix_prefixedIdentifier() async {
@@ -141,9 +146,14 @@
}
''');
- var pRef = findNode.simple('p.Future');
- assertElement(pRef, findElement.prefix('p'));
- assertTypeNull(pRef);
+ var node = findNode.simple('p.Future');
+ assertResolvedNodeText(node, r'''
+SimpleIdentifier
+ token: p
+ staticElement: <testLibraryFragment>::@prefix::p
+ element: <testLibraryFragment>::@prefix2::p
+ staticType: null
+''');
}
test_wildcardResolution() async {
diff --git a/pkg/analyzer/test/src/dart/resolution/local_function_test.dart b/pkg/analyzer/test/src/dart/resolution/local_function_test.dart
index 8e434ad..b4ad84e 100644
--- a/pkg/analyzer/test/src/dart/resolution/local_function_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/local_function_test.dart
@@ -23,11 +23,27 @@
g();
}
''');
- var element = findElement.localFunction('g');
- expect(element.name, 'g');
- expect(element.nameOffset, 8);
- assertElement(findNode.methodInvocation('g();'), element);
+ var element = findElement2.localFunction('g');
+ var fragment = element.firstFragment;
+ expect(fragment.name2, 'g');
+ expect(fragment.nameOffset2, 8);
+ expect(element.name3, 'g');
+
+ var node = findNode.methodInvocation('g();');
+ assertResolvedNodeText(node, r'''
+MethodInvocation
+ methodName: SimpleIdentifier
+ token: g
+ staticElement: g@8
+ element: g@8
+ staticType: Null Function()
+ argumentList: ArgumentList
+ leftParenthesis: (
+ rightParenthesis: )
+ staticInvokeType: Null Function()
+ staticType: Null
+''');
}
test_element_ifStatement() async {
@@ -40,9 +56,11 @@
error(WarningCode.UNUSED_ELEMENT, 23, 1),
]);
var node = findNode.functionDeclaration('g() {}');
- var element = node.declaredElement!;
- expect(element.name, 'g');
- expect(element.nameOffset, 23);
+ var fragment = node.declaredFragment!;
+ var element = fragment.element;
+ expect(fragment.name2, 'g');
+ expect(fragment.nameOffset2, 23);
+ expect(element.name3, 'g');
}
test_element_switchCase() async {
@@ -56,11 +74,27 @@
}
}
''');
- var element = findElement.localFunction('g');
- expect(element.name, 'g');
- expect(element.nameOffset, 44);
- assertElement(findNode.methodInvocation('g();'), element);
+ var element = findElement2.localFunction('g');
+ var fragment = element.firstFragment;
+ expect(fragment.name2, 'g');
+ expect(fragment.nameOffset2, 44);
+ expect(element.name3, 'g');
+
+ var node = findNode.methodInvocation('g();');
+ assertResolvedNodeText(node, r'''
+MethodInvocation
+ methodName: SimpleIdentifier
+ token: g
+ staticElement: g@44
+ element: g@44
+ staticType: Null Function()
+ argumentList: ArgumentList
+ leftParenthesis: (
+ rightParenthesis: )
+ staticInvokeType: Null Function()
+ staticType: Null
+''');
}
test_element_switchCase_language219() async {
@@ -75,10 +109,26 @@
}
}
''');
- var element = findElement.localFunction('g');
- expect(element.name, 'g');
- expect(element.nameOffset, 60);
- assertElement(findNode.methodInvocation('g();'), element);
+ var element = findElement2.localFunction('g');
+ var fragment = element.firstFragment;
+ expect(fragment.name2, 'g');
+ expect(fragment.nameOffset2, 60);
+ expect(element.name3, 'g');
+
+ var node = findNode.methodInvocation('g();');
+ assertResolvedNodeText(node, r'''
+MethodInvocation
+ methodName: SimpleIdentifier
+ token: g
+ staticElement: g@60
+ element: g@60
+ staticType: Null Function()
+ argumentList: ArgumentList
+ leftParenthesis: (
+ rightParenthesis: )
+ staticInvokeType: Null Function()
+ staticType: Null
+''');
}
}