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