Skip to content

Commit edd875c

Browse files
scheglovCommit Queue
authored andcommitted
Issue 54362. Allow importing lower case named types.
Bug: #54362 Change-Id: I59359262bee28eb55d2e0220750f1d7628293d96 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/356661 Reviewed-by: Keerti Parthasarathy <keertip@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
1 parent b9b341f commit edd875c

File tree

2 files changed

+28
-11
lines changed

2 files changed

+28
-11
lines changed

pkg/analysis_server/lib/src/services/correction/dart/import_library.dart

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -150,18 +150,17 @@ class ImportLibrary extends MultiCorrectionProducer {
150150
@override
151151
String? nameOfType(AstNode node) {
152152
final parent = node.parent;
153-
if (node is NamedType) {
154-
final importPrefix = node.importPrefix;
155-
if (parent is ConstructorName && importPrefix != null) {
156-
return importPrefix.name.lexeme;
157-
}
158-
return node.name2.lexeme;
159-
} else if (node is PrefixedIdentifier) {
160-
if (parent is NamedType) {
161-
return node.prefix.name;
162-
}
153+
switch (node) {
154+
case NamedType():
155+
final importPrefix = node.importPrefix;
156+
if (parent is ConstructorName && importPrefix != null) {
157+
return importPrefix.name.lexeme;
158+
}
159+
return node.name2.lexeme;
160+
case SimpleIdentifier():
161+
return node.name;
163162
}
164-
return super.nameOfType(node);
163+
return null;
165164
}
166165

167166
void _importExtensionInLibrary(

pkg/analysis_server/test/src/services/correction/fix/import_library_project_test.dart

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -963,6 +963,24 @@ void f(Test t) {}
963963
''', target: b.path);
964964
}
965965

966+
Future<void> test_withClass_simpleIdentifier_lowerCase() async {
967+
newFile('$testPackageLibPath/lib.dart', '''
968+
class eX {}
969+
''');
970+
await resolveTestCode('''
971+
void f() {
972+
eX;
973+
}
974+
''');
975+
await assertHasFix('''
976+
import 'package:test/lib.dart';
977+
978+
void f() {
979+
eX;
980+
}
981+
''');
982+
}
983+
966984
Future<void> test_withExtension_pub_this() async {
967985
updateTestPubspecFile(r'''
968986
name: test

0 commit comments

Comments
 (0)