Extension type. Request based test for rename, a fix for representation field.
Change-Id: Ic10550089272797724a0047a31fa040f4a293001
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/323706
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring.dart
index cbcba28..38fe412 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring.dart
@@ -493,6 +493,8 @@
nameNode = node.name;
} else if (node is NamedType) {
nameNode = node.name2;
+ } else if (node is RepresentationDeclaration) {
+ nameNode = node.fieldName;
} else if (node is SimpleFormalParameter) {
nameNode = node.name;
} else if (node is SimpleIdentifier) {
diff --git a/pkg/analysis_server/test/edit/refactoring_test.dart b/pkg/analysis_server/test/edit/refactoring_test.dart
index 0eaa487..71b46c4 100644
--- a/pkg/analysis_server/test/edit/refactoring_test.dart
+++ b/pkg/analysis_server/test/edit/refactoring_test.dart
@@ -2157,6 +2157,48 @@
''');
}
+ Future<void> test_extensionType_field_representation() {
+ addTestFile('''
+extension type E(int test) {}
+
+void f(E e) {
+ e.test;
+}
+''');
+ return assertSuccessfulRefactoring(() {
+ return sendRenameRequest('test) {}', 'newName');
+ }, '''
+extension type E(int newName) {}
+
+void f(E e) {
+ e.newName;
+}
+''');
+ }
+
+ Future<void> test_extensionType_method() {
+ addTestFile('''
+extension type E(int it) {
+ void test() {}
+}
+
+void f(E e) {
+ e.test();
+}
+''');
+ return assertSuccessfulRefactoring(() {
+ return sendRenameRequest('test() {}', 'newName');
+ }, '''
+extension type E(int it) {
+ void newName() {}
+}
+
+void f(E e) {
+ e.newName();
+}
+''');
+ }
+
Future<void> test_feedback() {
addTestFile('''
class Test {}
diff --git a/pkg/analysis_server/test/services/refactoring/legacy/rename_class_member_test.dart b/pkg/analysis_server/test/services/refactoring/legacy/rename_class_member_test.dart
index 8ac257b..b54b53f 100644
--- a/pkg/analysis_server/test/services/refactoring/legacy/rename_class_member_test.dart
+++ b/pkg/analysis_server/test/services/refactoring/legacy/rename_class_member_test.dart
@@ -1996,8 +1996,7 @@
Future<void> test_createChange_MethodElement() async {
await indexTestUnit('''
-enum E {
- v;
+extension type E(int it) {
void test() {}
void foo() {
test();
@@ -2018,8 +2017,7 @@
refactoring.newName = 'newName';
// validate change
return assertSuccessfulRefactoring('''
-enum E {
- v;
+extension type E(int it) {
void newName() {}
void foo() {
newName();