@@ -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 ('''
52122const a = [!12^.3!];
0 commit comments