Fix for highlighting mixin names.
Change-Id: Idadb02aa1b86525fde307a5eddc8876f152d1b31
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/291045
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analysis_server/doc/api.html b/pkg/analysis_server/doc/api.html
index 3bea13f..338d07b 100644
--- a/pkg/analysis_server/doc/api.html
+++ b/pkg/analysis_server/doc/api.html
@@ -4791,7 +4791,7 @@
</dd><dt class="value">METHOD_STATIC</dt><dd>
<p>Deprecated - no longer sent.</p>
- </dd><dt class="value">PARAMETER</dt><dd>
+ </dd><dt class="value">MIXIN</dt><dt class="value">PARAMETER</dt><dd>
<p>Deprecated - no longer sent.</p>
</dd><dt class="value">SETTER_DECLARATION</dt><dd>
diff --git a/pkg/analysis_server/lib/src/computer/computer_highlights.dart b/pkg/analysis_server/lib/src/computer/computer_highlights.dart
index 084f22e..465839e 100644
--- a/pkg/analysis_server/lib/src/computer/computer_highlights.dart
+++ b/pkg/analysis_server/lib/src/computer/computer_highlights.dart
@@ -1146,6 +1146,7 @@
void visitMixinDeclaration(MixinDeclaration node) {
computer._addRegion_token(node.baseKeyword, HighlightRegionType.BUILT_IN);
computer._addRegion_token(node.mixinKeyword, HighlightRegionType.BUILT_IN);
+ computer._addRegion_token(node.name, HighlightRegionType.MIXIN);
super.visitMixinDeclaration(node);
}
diff --git a/pkg/analysis_server/test/analysis/notification_highlights2_test.dart b/pkg/analysis_server/test/analysis/notification_highlights2_test.dart
index f42b259..88f1a45 100644
--- a/pkg/analysis_server/test/analysis/notification_highlights2_test.dart
+++ b/pkg/analysis_server/test/analysis/notification_highlights2_test.dart
@@ -1433,14 +1433,6 @@
assertHasRegion(HighlightRegionType.KEYWORD, 'late');
}
- Future<void> test_KEYWORD_mixin() async {
- addTestFile('''
-mixin M {}
-''');
- await prepareHighlights();
- assertHasRegion(HighlightRegionType.BUILT_IN, 'mixin');
- }
-
Future<void> test_KEYWORD_required() async {
addTestFile('''
void f({required int x}) {}
@@ -1590,6 +1582,33 @@
assertHasRegion(HighlightRegionType.INSTANCE_METHOD_REFERENCE, 'add(null)');
}
+ Future<void> test_mixin() async {
+ var testCode = TestCode.parse(r'''
+mixin M on int {}
+''');
+ addTestFile(testCode.code);
+ await prepareHighlights();
+ assertHighlightText(testCode, -1, r'''
+0 + 5 |mixin| BUILT_IN
+6 + 1 |M| MIXIN
+8 + 2 |on| BUILT_IN
+11 + 3 |int| CLASS
+''');
+ }
+
+ Future<void> test_mixin_base() async {
+ var testCode = TestCode.parse(r'''
+base mixin M {}
+''');
+ addTestFile(testCode.code);
+ await prepareHighlights();
+ assertHighlightText(testCode, -1, r'''
+0 + 4 |base| BUILT_IN
+5 + 5 |mixin| BUILT_IN
+11 + 1 |M| MIXIN
+''');
+ }
+
Future<void> test_namedExpression_namedParameter() async {
addTestFile('''
void f({int a}) {}
diff --git a/pkg/analysis_server/test/integration/support/protocol_matchers.dart b/pkg/analysis_server/test/integration/support/protocol_matchers.dart
index d9f6da6..9c9c12d 100644
--- a/pkg/analysis_server/test/integration/support/protocol_matchers.dart
+++ b/pkg/analysis_server/test/integration/support/protocol_matchers.dart
@@ -843,6 +843,7 @@
/// METHOD_DECLARATION
/// METHOD_DECLARATION_STATIC
/// METHOD_STATIC
+/// MIXIN
/// PARAMETER
/// SETTER_DECLARATION
/// TOP_LEVEL_VARIABLE
@@ -926,6 +927,7 @@
'METHOD_DECLARATION',
'METHOD_DECLARATION_STATIC',
'METHOD_STATIC',
+ 'MIXIN',
'PARAMETER',
'SETTER_DECLARATION',
'TOP_LEVEL_VARIABLE',
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/HighlightRegionType.java b/pkg/analysis_server/tool/spec/generated/java/types/HighlightRegionType.java
index d6ab3ef..56cdb49 100644
--- a/pkg/analysis_server/tool/spec/generated/java/types/HighlightRegionType.java
+++ b/pkg/analysis_server/tool/spec/generated/java/types/HighlightRegionType.java
@@ -158,6 +158,8 @@
*/
public static final String METHOD_STATIC = "METHOD_STATIC";
+ public static final String MIXIN = "MIXIN";
+
/**
* Deprecated - no longer sent.
*/
diff --git a/pkg/analysis_server_client/lib/src/protocol/protocol_common.dart b/pkg/analysis_server_client/lib/src/protocol/protocol_common.dart
index 01225fe..877607a 100644
--- a/pkg/analysis_server_client/lib/src/protocol/protocol_common.dart
+++ b/pkg/analysis_server_client/lib/src/protocol/protocol_common.dart
@@ -1935,6 +1935,7 @@
/// METHOD_DECLARATION
/// METHOD_DECLARATION_STATIC
/// METHOD_STATIC
+/// MIXIN
/// PARAMETER
/// SETTER_DECLARATION
/// TOP_LEVEL_VARIABLE
@@ -2133,6 +2134,8 @@
static const HighlightRegionType METHOD_STATIC =
HighlightRegionType._('METHOD_STATIC');
+ static const HighlightRegionType MIXIN = HighlightRegionType._('MIXIN');
+
/// Deprecated - no longer sent.
static const HighlightRegionType PARAMETER =
HighlightRegionType._('PARAMETER');
@@ -2271,6 +2274,7 @@
METHOD_DECLARATION,
METHOD_DECLARATION_STATIC,
METHOD_STATIC,
+ MIXIN,
PARAMETER,
SETTER_DECLARATION,
TOP_LEVEL_VARIABLE,
@@ -2416,6 +2420,8 @@
return METHOD_DECLARATION_STATIC;
case 'METHOD_STATIC':
return METHOD_STATIC;
+ case 'MIXIN':
+ return MIXIN;
case 'PARAMETER':
return PARAMETER;
case 'SETTER_DECLARATION':
diff --git a/pkg/analyzer_plugin/doc/api.html b/pkg/analyzer_plugin/doc/api.html
index 82bc046..e2d7a05 100644
--- a/pkg/analyzer_plugin/doc/api.html
+++ b/pkg/analyzer_plugin/doc/api.html
@@ -1449,7 +1449,7 @@
</dd><dt class="value">METHOD_STATIC</dt><dd>
<p>Deprecated - no longer sent.</p>
- </dd><dt class="value">PARAMETER</dt><dd>
+ </dd><dt class="value">MIXIN</dt><dt class="value">PARAMETER</dt><dd>
<p>Deprecated - no longer sent.</p>
</dd><dt class="value">SETTER_DECLARATION</dt><dd>
diff --git a/pkg/analyzer_plugin/lib/protocol/protocol_common.dart b/pkg/analyzer_plugin/lib/protocol/protocol_common.dart
index 7f6bb07..4987b67 100644
--- a/pkg/analyzer_plugin/lib/protocol/protocol_common.dart
+++ b/pkg/analyzer_plugin/lib/protocol/protocol_common.dart
@@ -1935,6 +1935,7 @@
/// METHOD_DECLARATION
/// METHOD_DECLARATION_STATIC
/// METHOD_STATIC
+/// MIXIN
/// PARAMETER
/// SETTER_DECLARATION
/// TOP_LEVEL_VARIABLE
@@ -2133,6 +2134,8 @@
static const HighlightRegionType METHOD_STATIC =
HighlightRegionType._('METHOD_STATIC');
+ static const HighlightRegionType MIXIN = HighlightRegionType._('MIXIN');
+
/// Deprecated - no longer sent.
static const HighlightRegionType PARAMETER =
HighlightRegionType._('PARAMETER');
@@ -2271,6 +2274,7 @@
METHOD_DECLARATION,
METHOD_DECLARATION_STATIC,
METHOD_STATIC,
+ MIXIN,
PARAMETER,
SETTER_DECLARATION,
TOP_LEVEL_VARIABLE,
@@ -2416,6 +2420,8 @@
return METHOD_DECLARATION_STATIC;
case 'METHOD_STATIC':
return METHOD_STATIC;
+ case 'MIXIN':
+ return MIXIN;
case 'PARAMETER':
return PARAMETER;
case 'SETTER_DECLARATION':
diff --git a/pkg/analyzer_plugin/test/integration/support/protocol_matchers.dart b/pkg/analyzer_plugin/test/integration/support/protocol_matchers.dart
index 9bae54e..1d38dbd 100644
--- a/pkg/analyzer_plugin/test/integration/support/protocol_matchers.dart
+++ b/pkg/analyzer_plugin/test/integration/support/protocol_matchers.dart
@@ -420,6 +420,7 @@
/// METHOD_DECLARATION
/// METHOD_DECLARATION_STATIC
/// METHOD_STATIC
+/// MIXIN
/// PARAMETER
/// SETTER_DECLARATION
/// TOP_LEVEL_VARIABLE
@@ -503,6 +504,7 @@
'METHOD_DECLARATION',
'METHOD_DECLARATION_STATIC',
'METHOD_STATIC',
+ 'MIXIN',
'PARAMETER',
'SETTER_DECLARATION',
'TOP_LEVEL_VARIABLE',
diff --git a/pkg/analyzer_plugin/tool/spec/common_types_spec.html b/pkg/analyzer_plugin/tool/spec/common_types_spec.html
index ef7bc5f..e570bc4 100644
--- a/pkg/analyzer_plugin/tool/spec/common_types_spec.html
+++ b/pkg/analyzer_plugin/tool/spec/common_types_spec.html
@@ -834,6 +834,7 @@
<code>METHOD_STATIC</code>
<p>Deprecated - no longer sent.</p>
</value>
+ <value><code>MIXIN</code></value>
<value>
<code>PARAMETER</code>
<p>Deprecated - no longer sent.</p>