mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 01:45:06 +00:00
Fix highlighting local variable names in ForPartsWithDeclarations.
Change-Id: I60b9f054e46909f53e9a1c6cab58e109ae279f3d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/266442 Commit-Queue: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
parent
3bc3a84fd0
commit
c7ebfde808
|
@ -809,15 +809,6 @@ class _DartUnitHighlightsComputerVisitor extends RecursiveAstVisitor<void> {
|
|||
node.externalKeyword, HighlightRegionType.BUILT_IN);
|
||||
computer._addRegion_token(node.staticKeyword, HighlightRegionType.BUILT_IN);
|
||||
|
||||
for (final variable in node.fields.variables) {
|
||||
computer._addRegion_token(
|
||||
variable.name,
|
||||
node.isStatic
|
||||
? HighlightRegionType.STATIC_FIELD_DECLARATION
|
||||
: HighlightRegionType.INSTANCE_FIELD_DECLARATION,
|
||||
);
|
||||
}
|
||||
|
||||
super.visitFieldDeclaration(node);
|
||||
}
|
||||
|
||||
|
@ -1299,13 +1290,6 @@ class _DartUnitHighlightsComputerVisitor extends RecursiveAstVisitor<void> {
|
|||
computer._addRegion_token(
|
||||
node.externalKeyword, HighlightRegionType.BUILT_IN);
|
||||
|
||||
for (final variable in node.variables.variables) {
|
||||
computer._addRegion_token(
|
||||
variable.name,
|
||||
HighlightRegionType.TOP_LEVEL_VARIABLE_DECLARATION,
|
||||
);
|
||||
}
|
||||
|
||||
super.visitTopLevelVariableDeclaration(node);
|
||||
}
|
||||
|
||||
|
@ -1325,25 +1309,37 @@ class _DartUnitHighlightsComputerVisitor extends RecursiveAstVisitor<void> {
|
|||
}
|
||||
|
||||
@override
|
||||
void visitVariableDeclarationList(VariableDeclarationList node) {
|
||||
computer._addRegion_token(node.lateKeyword, HighlightRegionType.KEYWORD);
|
||||
computer._addRegion_token(node.keyword, HighlightRegionType.KEYWORD);
|
||||
super.visitVariableDeclarationList(node);
|
||||
}
|
||||
|
||||
@override
|
||||
void visitVariableDeclarationStatement(VariableDeclarationStatement node) {
|
||||
for (final variable in node.variables.variables) {
|
||||
final element = variable.declaredElement as LocalVariableElement;
|
||||
void visitVariableDeclaration(VariableDeclaration node) {
|
||||
var element = node.declaredElement;
|
||||
if (element is FieldElement) {
|
||||
computer._addRegion_token(
|
||||
variable.name,
|
||||
node.name,
|
||||
element.isStatic
|
||||
? HighlightRegionType.STATIC_FIELD_DECLARATION
|
||||
: HighlightRegionType.INSTANCE_FIELD_DECLARATION,
|
||||
);
|
||||
} else if (element is LocalVariableElement) {
|
||||
computer._addRegion_token(
|
||||
node.name,
|
||||
element.type is DynamicType
|
||||
? HighlightRegionType.DYNAMIC_LOCAL_VARIABLE_DECLARATION
|
||||
: HighlightRegionType.LOCAL_VARIABLE_DECLARATION,
|
||||
);
|
||||
} else if (element is TopLevelVariableElement) {
|
||||
computer._addRegion_token(
|
||||
node.name,
|
||||
HighlightRegionType.TOP_LEVEL_VARIABLE_DECLARATION,
|
||||
);
|
||||
}
|
||||
|
||||
super.visitVariableDeclarationStatement(node);
|
||||
super.visitVariableDeclaration(node);
|
||||
}
|
||||
|
||||
@override
|
||||
void visitVariableDeclarationList(VariableDeclarationList node) {
|
||||
computer._addRegion_token(node.lateKeyword, HighlightRegionType.KEYWORD);
|
||||
computer._addRegion_token(node.keyword, HighlightRegionType.KEYWORD);
|
||||
super.visitVariableDeclarationList(node);
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
@ -898,6 +898,33 @@ void f() {
|
|||
assertHasRegion(HighlightRegionType.EXTENSION, 'E(0)');
|
||||
}
|
||||
|
||||
Future<void> test_forPartsWithDeclarations() async {
|
||||
addTestFile('''
|
||||
void f() {
|
||||
for (var i = 0; i < 10; i++) {}
|
||||
}
|
||||
''');
|
||||
await prepareHighlights();
|
||||
assertHasRegion(HighlightRegionType.LOCAL_VARIABLE_DECLARATION, 'i = 0');
|
||||
assertHasRegion(HighlightRegionType.LOCAL_VARIABLE_REFERENCE, 'i < 10');
|
||||
assertHasRegion(HighlightRegionType.LOCAL_VARIABLE_REFERENCE, 'i++');
|
||||
}
|
||||
|
||||
Future<void> test_forPartsWithDeclarations_dynamic() async {
|
||||
addTestFile('''
|
||||
void f() {
|
||||
for (dynamic i = 0; i < 10; i++) {}
|
||||
}
|
||||
''');
|
||||
await prepareHighlights();
|
||||
assertHasRegion(
|
||||
HighlightRegionType.DYNAMIC_LOCAL_VARIABLE_DECLARATION, 'i = 0');
|
||||
assertHasRegion(
|
||||
HighlightRegionType.DYNAMIC_LOCAL_VARIABLE_REFERENCE, 'i < 10');
|
||||
assertHasRegion(
|
||||
HighlightRegionType.DYNAMIC_LOCAL_VARIABLE_REFERENCE, 'i++');
|
||||
}
|
||||
|
||||
Future<void> test_FUNCTION_TYPE_ALIAS() async {
|
||||
addTestFile('''
|
||||
typedef A();
|
||||
|
|
Loading…
Reference in a new issue