Skip to content

Commit 8f9cab4

Browse files
kallentuCommit Queue
authored andcommitted
[analysis_server] Dot shorthands: Go to type definition tests.
Tests for `Go to Type Definition` for dot shorthands. Passing. Part of the analysis server work. Bug: #59836 Change-Id: I265891c21ed1e3f0a01d1e75aa51df0265054392 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/432000 Commit-Queue: Kallen Tu <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent f18bd99 commit 8f9cab4

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

pkg/analysis_server/test/lsp/type_definition_test.dart

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,76 @@ final /*[1*/a^/*1]*/ = A();
4747
expect(result.targetRange, rangeOfString(code, 'class A {}'));
4848
}
4949

50+
Future<void> test_dotShorthand_class() async {
51+
var code = TestCode.parse('''
52+
void f() {
53+
A a = ./*[0*/gett^er/*0]*/;
54+
}
55+
56+
class /*[1*/A/*1]*/ {
57+
static A get getter => A();
58+
}
59+
''');
60+
61+
var ranges = code.ranges.ranges;
62+
var originRange = ranges[0];
63+
var targetRange = ranges[1];
64+
var result = await _getResult(code);
65+
expect(result.originSelectionRange, originRange);
66+
expect(result.targetUri, mainFileUri);
67+
expect(result.targetSelectionRange, targetRange);
68+
expect(
69+
result.targetRange,
70+
rangeOfPattern(code, RegExp(r'class A \{.*\}', dotAll: true)),
71+
);
72+
}
73+
74+
Future<void> test_dotShorthand_enum() async {
75+
var code = TestCode.parse('''
76+
void f() {
77+
A a = ./*[0*/on^e/*0]*/;
78+
}
79+
80+
enum /*[1*/A/*1]*/ { one }
81+
''');
82+
83+
var ranges = code.ranges.ranges;
84+
var originRange = ranges[0];
85+
var targetRange = ranges[1];
86+
var result = await _getResult(code);
87+
expect(result.originSelectionRange, originRange);
88+
expect(result.targetUri, mainFileUri);
89+
expect(result.targetSelectionRange, targetRange);
90+
expect(result.targetRange, rangeOfString(code, 'enum A { one }'));
91+
}
92+
93+
Future<void> test_dotShorthand_extensionType() async {
94+
var code = TestCode.parse('''
95+
void f() {
96+
A a = ./*[0*/gett^er/*0]*/;
97+
}
98+
99+
extension type /*[1*/A/*1]*/(int x) {
100+
static A get getter => A(1);
101+
}
102+
''');
103+
104+
var ranges = code.ranges.ranges;
105+
var originRange = ranges[0];
106+
var targetRange = ranges[1];
107+
var result = await _getResult(code);
108+
expect(result.originSelectionRange, originRange);
109+
expect(result.targetUri, mainFileUri);
110+
expect(result.targetSelectionRange, targetRange);
111+
expect(
112+
result.targetRange,
113+
rangeOfPattern(
114+
code,
115+
RegExp(r'extension type A\(int x\) \{.*\}', dotAll: true),
116+
),
117+
);
118+
}
119+
50120
Future<void> test_doubleLiteral() async {
51121
var code = TestCode.parse('''
52122
const a = [!12^.3!];

0 commit comments

Comments
 (0)