Version 2.17.0-150.0.dev
Merge commit '2b9656a23eb582861743384dc360f3287e7745d1' into 'dev'
diff --git a/pkg/analysis_server/test/analysis/notification_occurrences_test.dart b/pkg/analysis_server/test/analysis/notification_occurrences_test.dart
index e0cc0f7..5bf1c3b 100644
--- a/pkg/analysis_server/test/analysis/notification_occurrences_test.dart
+++ b/pkg/analysis_server/test/analysis/notification_occurrences_test.dart
@@ -109,6 +109,113 @@
assertHasOffset('vvv);');
}
+ Future<void> test_enum() async {
+ addTestFile('''
+enum E {
+ v;
+}
+
+void f(E e) {
+ E.v;
+}
+''');
+ await prepareOccurrences();
+ assertHasRegion('E e');
+ expect(testOccurrences.element.kind, ElementKind.ENUM);
+ expect(testOccurrences.element.name, 'E');
+ assertHasOffset('E e');
+ assertHasOffset('E.v');
+ }
+
+ Future<void> test_enum_constant() async {
+ addTestFile('''
+enum E {
+ v; // 0
+}
+
+void f() {
+ E.v; // 1
+}
+''');
+ await prepareOccurrences();
+ assertHasRegion('v; // 0');
+ expect(testOccurrences.element.kind, ElementKind.ENUM_CONSTANT);
+ expect(testOccurrences.element.name, 'v');
+ assertHasOffset('v; // 1');
+ }
+
+ Future<void> test_enum_field() async {
+ addTestFile('''
+enum E {
+ v;
+ final int foo = 0;
+}
+
+void f(E e) {
+ e.foo;
+}
+''');
+ await prepareOccurrences();
+ assertHasRegion('foo = 0');
+ expect(testOccurrences.element.kind, ElementKind.FIELD);
+ expect(testOccurrences.element.name, 'foo');
+ assertHasOffset('foo;');
+ }
+
+ Future<void> test_enum_getter() async {
+ addTestFile('''
+enum E {
+ v;
+ int get foo => 0;
+}
+
+void f(E e) {
+ e.foo;
+}
+''');
+ await prepareOccurrences();
+ assertHasRegion('foo => 0');
+ expect(testOccurrences.element.kind, ElementKind.FIELD);
+ expect(testOccurrences.element.name, 'foo');
+ assertHasOffset('foo;');
+ }
+
+ Future<void> test_enum_method() async {
+ addTestFile('''
+enum E {
+ v;
+ void foo() {}
+}
+
+void f(E e) {
+ e.foo();
+}
+''');
+ await prepareOccurrences();
+ assertHasRegion('foo() {}');
+ expect(testOccurrences.element.kind, ElementKind.METHOD);
+ expect(testOccurrences.element.name, 'foo');
+ assertHasOffset('foo();');
+ }
+
+ Future<void> test_enum_setter() async {
+ addTestFile('''
+enum E {
+ v;
+ set foo(int _) {}
+}
+
+void f(E e) {
+ e.foo = 0;
+}
+''');
+ await prepareOccurrences();
+ assertHasRegion('foo(int _) {}');
+ expect(testOccurrences.element.kind, ElementKind.FIELD);
+ expect(testOccurrences.element.name, 'foo');
+ assertHasOffset('foo = 0;');
+ }
+
Future<void> test_field() async {
addTestFile('''
class A {
diff --git a/pkg/analysis_server/test/src/flutter/flutter_outline_computer_test.dart b/pkg/analysis_server/test/src/flutter/flutter_outline_computer_test.dart
index e405c98..f59bb45 100644
--- a/pkg/analysis_server/test/src/flutter/flutter_outline_computer_test.dart
+++ b/pkg/analysis_server/test/src/flutter/flutter_outline_computer_test.dart
@@ -386,6 +386,35 @@
expect(container.codeLength, 15);
}
+ Future<void> test_enum() async {
+ var unitOutline = await _computeOutline('''
+import 'package:flutter/widgets.dart';
+
+enum E {
+ v;
+ Widget build(BuildContext context) {
+ return const Text('A');
+ }
+}
+''');
+
+ expect(_toText(unitOutline), r'''
+(D) E
+ (D) v
+ (D) build
+ Text
+''');
+ var E = unitOutline.children![0];
+ var build = E.children![1];
+ {
+ var textOutline = build.children![0];
+ var text = "const Text('A')";
+ var offset = testCode.indexOf(text);
+ expect(textOutline.offset, offset);
+ expect(textOutline.length, text.length);
+ }
+ }
+
Future<void> test_genericLabel_invocation() async {
var unitOutline = await _computeOutline(r'''
import 'package:flutter/widgets.dart';
diff --git a/tools/VERSION b/tools/VERSION
index 827ebec..dfc959b 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 17
PATCH 0
-PRERELEASE 149
+PRERELEASE 150
PRERELEASE_PATCH 0
\ No newline at end of file