Skip to content

Commit e3d809f

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Migrate PrefixedIdentifierResolver.
Change-Id: Ia9104be728f7ddd08e1eb8591d5fa7ef9027e7ef Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/408501 Commit-Queue: Konstantin Shcheglov <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]> Reviewed-by: Paul Berry <[email protected]>
1 parent 7a22fea commit e3d809f

File tree

3 files changed

+25
-19
lines changed

3 files changed

+25
-19
lines changed

pkg/analyzer/lib/src/dart/resolver/prefixed_identifier_resolver.dart

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// ignore_for_file: analyzer_use_new_elements
6-
7-
import 'package:analyzer/dart/element/element.dart';
5+
import 'package:analyzer/dart/element/element2.dart';
86
import 'package:analyzer/dart/element/type.dart';
97
import 'package:analyzer/src/dart/ast/ast.dart';
108
import 'package:analyzer/src/dart/element/element.dart';
@@ -32,8 +30,8 @@ class PrefixedIdentifierResolver {
3230
_resolver.analyzeExpression(node.prefix, _resolver.operations.unknownType);
3331
_resolver.popRewrite();
3432

35-
var prefixElement = node.prefix.staticElement;
36-
if (prefixElement is! PrefixElement) {
33+
var prefixElement = node.prefix.element;
34+
if (prefixElement is! PrefixElement2) {
3735
var prefixType = node.prefix.staticType;
3836
// TODO(scheglov): It would be nice to rewrite all such cases.
3937
if (prefixType != null) {
@@ -58,12 +56,12 @@ class PrefixedIdentifierResolver {
5856
hasWrite: false,
5957
);
6058

61-
var element = result.readElement;
59+
var element = result.readElement2;
6260

6361
var identifier = node.identifier;
64-
identifier.staticElement = element;
62+
identifier.element = element;
6563

66-
if (element is ExtensionElement) {
64+
if (element is ExtensionElement2) {
6765
_setExtensionIdentifierType(node);
6866
return null;
6967
}
@@ -75,11 +73,11 @@ class PrefixedIdentifierResolver {
7573
}
7674

7775
DartType type = InvalidTypeImpl.instance;
78-
if (result.readElementRequested == null &&
79-
result.readElementRecovery != null) {
76+
if (result.readElementRequested2 == null &&
77+
result.readElementRecovery2 != null) {
8078
// Since the element came from error recovery logic, its type isn't
8179
// trustworthy; leave it as `dynamic`.
82-
} else if (element is InterfaceElement) {
80+
} else if (element is InterfaceElement2) {
8381
if (_isExpressionIdentifier(node)) {
8482
var type = _typeProvider.typeType;
8583
node.recordStaticType(type, resolver: _resolver);
@@ -88,12 +86,12 @@ class PrefixedIdentifierResolver {
8886
inferenceLogWriter?.recordExpressionWithNoType(node);
8987
}
9088
return null;
91-
} else if (element is DynamicElementImpl) {
89+
} else if (element is DynamicElementImpl2) {
9290
var type = _typeProvider.typeType;
9391
node.recordStaticType(type, resolver: _resolver);
9492
identifier.setPseudoExpressionStaticType(type);
9593
return null;
96-
} else if (element is TypeAliasElement) {
94+
} else if (element is TypeAliasElement2) {
9795
if (node.parent is NamedType) {
9896
// no type
9997
} else {
@@ -102,13 +100,13 @@ class PrefixedIdentifierResolver {
102100
identifier.setPseudoExpressionStaticType(type);
103101
}
104102
return null;
105-
} else if (element is MethodElement) {
103+
} else if (element is MethodElement2) {
106104
type = element.type;
107-
} else if (element is PropertyAccessorElement) {
105+
} else if (element is PropertyAccessorElement2) {
108106
type = result.getType!;
109-
} else if (element is ExecutableElement) {
107+
} else if (element is ExecutableElement2) {
110108
type = element.type;
111-
} else if (element is VariableElement) {
109+
} else if (element is VariableElement2) {
112110
type = element.type;
113111
} else if (result.functionTypeCallType != null) {
114112
type = result.functionTypeCallType!;

pkg/analyzer/lib/src/dart/resolver/property_element_resolver.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -954,6 +954,14 @@ class PropertyElementResolverResult {
954954
return readElement.asElement2;
955955
}
956956

957+
Element2? get readElementRecovery2 {
958+
return readElementRecovery.asElement2;
959+
}
960+
961+
Element2? get readElementRequested2 {
962+
return readElementRequested.asElement2;
963+
}
964+
957965
Element? get writeElement {
958966
return writeElementRequested ?? writeElementRecovery;
959967
}

pkg/analyzer/test/src/dart/resolution/prefixed_identifier_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -713,10 +713,10 @@ PrefixedIdentifier
713713
period: .
714714
identifier: SimpleIdentifier
715715
token: foo
716-
staticElement: <testLibraryFragment>::@class::A::@getter::foo
716+
staticElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
717717
element: <testLibraryFragment>::@class::A::@getter::foo#element
718718
staticType: int
719-
staticElement: <testLibraryFragment>::@class::A::@getter::foo
719+
staticElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
720720
element: <testLibraryFragment>::@class::A::@getter::foo#element
721721
staticType: int
722722
''');

0 commit comments

Comments
 (0)