Skip to content

Commit a7666c4

Browse files
scheglovcommit-bot@chromium.org
authored andcommitted
Identifiers with ExtensionElement don't have types.
[email protected] Change-Id: I9134982c56006467314e335d1ca1c8f3982ac4dd Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/114557 Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 605709a commit a7666c4

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

pkg/analyzer/lib/src/generated/static_type_analyzer.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -839,6 +839,11 @@ class StaticTypeAnalyzer extends SimpleAstVisitor<void> {
839839
void visitPrefixedIdentifier(PrefixedIdentifier node) {
840840
SimpleIdentifier prefixedIdentifier = node.identifier;
841841
Element staticElement = prefixedIdentifier.staticElement;
842+
843+
if (staticElement is ExtensionElement) {
844+
return;
845+
}
846+
842847
DartType staticType = _dynamicType;
843848
if (staticElement is ClassElement) {
844849
if (_isNotTypeLiteral(node)) {
@@ -1072,6 +1077,11 @@ class StaticTypeAnalyzer extends SimpleAstVisitor<void> {
10721077
@override
10731078
void visitSimpleIdentifier(SimpleIdentifier node) {
10741079
Element element = node.staticElement;
1080+
1081+
if (element is ExtensionElement) {
1082+
return;
1083+
}
1084+
10751085
DartType staticType = _dynamicType;
10761086
if (element is ClassElement) {
10771087
if (_isNotTypeLiteral(node)) {

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,10 @@ f(prefix.A a) {
382382
@required String expectedExtendedType,
383383
}) {
384384
expect(override.staticElement, expectedElement);
385+
386+
assertTypeNull(override);
387+
assertTypeNull(override.extensionName);
388+
385389
assertElementTypeStrings(
386390
override.typeArgumentTypes,
387391
expectedTypeArguments,

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -556,6 +556,10 @@ f(C c) => E(c).a;
556556

557557
void validateOverride({List<DartType> typeArguments}) {
558558
expect(extensionOverride.extensionName.staticElement, extension);
559+
560+
expect(extensionOverride.staticType, isNull);
561+
expect(extensionOverride.extensionName.staticType, isNull);
562+
559563
if (typeArguments == null) {
560564
expect(extensionOverride.typeArguments, isNull);
561565
} else {

0 commit comments

Comments
 (0)