Skip to content

Commit 7b654a7

Browse files
srawlinsCommit Queue
authored andcommitted
analyzer: test various annotations with a declaring parameter
Work towards #62254 Change-Id: I697fe2fdf33c4c4bc5ae8c43e57673d86351f787 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/475423 Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Samuel Rawlins <srawlins@google.com>
1 parent 9782654 commit 7b654a7

3 files changed

Lines changed: 77 additions & 3 deletions

File tree

pkg/analyzer/test/src/diagnostics/invalid_use_of_protected_member_test.dart

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,19 +173,37 @@ class B extends A {
173173
import 'package:meta/meta.dart';
174174
class A {
175175
@protected
176-
int a = 0;
176+
int f = 0;
177+
}
178+
''');
179+
var lib2 = newFile('$testPackageLibPath/lib2.dart', r'''
180+
import 'lib1.dart';
181+
abstract class B {
182+
int m(A a) => a.f;
177183
}
184+
''');
185+
186+
await assertErrorsInFile2(lib1, []);
187+
await assertErrorsInFile2(lib2, [
188+
error(diag.invalidUseOfProtectedMember, 57, 1),
189+
]);
190+
}
191+
192+
test_field_outsideClassAndLibrary_originPrimaryConstructor() async {
193+
var lib1 = newFile('$testPackageLibPath/lib1.dart', r'''
194+
import 'package:meta/meta.dart';
195+
class A(@protected var int f);
178196
''');
179197
var lib2 = newFile('$testPackageLibPath/lib2.dart', r'''
180198
import 'lib1.dart';
181199
abstract class B {
182-
int b() => new A().a;
200+
int m(A a) => a.f;
183201
}
184202
''');
185203

186204
await assertErrorsInFile2(lib1, []);
187205
await assertErrorsInFile2(lib2, [
188-
error(diag.invalidUseOfProtectedMember, 60, 1),
206+
error(diag.invalidUseOfProtectedMember, 57, 1),
189207
]);
190208
}
191209

pkg/analyzer/test/src/diagnostics/invalid_use_of_visible_for_overriding_member_test.dart

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,47 @@ class Child extends Parent {
8989
''');
9090
}
9191

92+
test_field() async {
93+
newFile('$testPackageLibPath/a.dart', '''
94+
import 'package:meta/meta.dart';
95+
96+
class A {
97+
@visibleForOverriding
98+
int g = 0;
99+
}
100+
''');
101+
102+
await assertErrorsInCode(
103+
'''
104+
import 'a.dart';
105+
106+
int m(A a) {
107+
return a.g;
108+
}
109+
''',
110+
[error(diag.invalidUseOfVisibleForOverridingMember, 42, 1)],
111+
);
112+
}
113+
114+
test_field_originPrimaryConstructor() async {
115+
newFile('$testPackageLibPath/a.dart', '''
116+
import 'package:meta/meta.dart';
117+
118+
class A(@visibleForOverriding var int g);
119+
''');
120+
121+
await assertErrorsInCode(
122+
'''
123+
import 'a.dart';
124+
125+
int m(A a) {
126+
return a.g;
127+
}
128+
''',
129+
[error(diag.invalidUseOfVisibleForOverridingMember, 42, 1)],
130+
);
131+
}
132+
92133
test_getter() async {
93134
newFile('$testPackageLibPath/a.dart', '''
94135
import 'package:meta/meta.dart';

pkg/analyzer/test/src/diagnostics/unused_result_test.dart

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,21 @@ void main() {
456456
);
457457
}
458458

459+
test_field_result_unassigned_originPrimaryConstructor() async {
460+
await assertErrorsInCode(
461+
r'''
462+
import 'package:meta/meta.dart';
463+
464+
class A(@useResult var int foo);
465+
466+
void f(A a) {
467+
a.foo;
468+
}
469+
''',
470+
[error(diag.unusedResult, 86, 3)],
471+
);
472+
}
473+
459474
test_field_result_used_conditional_if_parens() async {
460475
await assertNoErrorsInCode(r'''
461476
import 'package:meta/meta.dart';

0 commit comments

Comments
 (0)