Skip to content

Commit ae6a489

Browse files
jwrencommit-bot@chromium.org
authored andcommitted
New 'non-type member completions' relevance tests in the analysis server.
This test includes: a failing type parameter test, as well as a common completion bug with Flutter widget construction, this test shows that the new relavance logic does the right thing. When we add additional categories in completion metrics to split apart this group of completions, this test may be split as well, this name seemed appropriate for the time being. Change-Id: I67638a121528be5e9a20bebc022a576282db1867 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151631 Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Jaime Wren <[email protected]>
1 parent 60bb0d3 commit ae6a489

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
2+
// for details. All rights reserved. Use of this source code is governed by a
3+
// BSD-style license that can be found in the LICENSE file.
4+
5+
import 'package:analyzer_plugin/protocol/protocol_common.dart';
6+
import 'package:test_reflective_loader/test_reflective_loader.dart';
7+
8+
import 'completion_relevance.dart';
9+
10+
void main() {
11+
defineReflectiveSuite(() {
12+
defineReflectiveTests(NonTypeMemberRelevanceTest);
13+
});
14+
}
15+
16+
@reflectiveTest
17+
class NonTypeMemberRelevanceTest extends CompletionRelevanceTest {
18+
Future<void> test_contextType_constructorInvocation_before_type() async {
19+
await addTestFile('''
20+
class StrWrap {
21+
String string;
22+
StrWrap(this.string);
23+
}
24+
void foo(StrWrap s) {}
25+
void bar() {
26+
foo(^);
27+
}
28+
''');
29+
30+
var constructorInvocationSuggestion =
31+
suggestionWith(completion: 'StrWrap', element: ElementKind.CONSTRUCTOR);
32+
33+
var typeSuggestion =
34+
suggestionWith(completion: 'StrWrap', element: ElementKind.CLASS);
35+
36+
assertOrder([constructorInvocationSuggestion, typeSuggestion]);
37+
}
38+
39+
@failingTest
40+
Future<void> test_typeParameters() async {
41+
await addTestFile('''
42+
class Foo{}
43+
void foo<T>(List<T> bar) {
44+
List<^> baz;
45+
}
46+
''');
47+
48+
assertOrder(
49+
[suggestionWith(completion: 'T'), suggestionWith(completion: 'Foo')]);
50+
}
51+
}

pkg/analysis_server/test/services/completion/dart/relevance/test_all.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'bool_assignment_relevance_test.dart' as bool_assignments;
88
import 'deprecated_member_relevance_test.dart' as deprecated_members;
99
import 'instance_member_relevance_test.dart' as instance_member_relevance;
1010
import 'named_argument_relevance_test.dart' as named_argument_relevance;
11+
import 'non_type_member_relevance_test.dart' as non_type_member_relevance;
1112
import 'static_member_relevance_test.dart' as static_member_relevance;
1213

1314
void main() {
@@ -16,6 +17,7 @@ void main() {
1617
deprecated_members.main();
1718
instance_member_relevance.main();
1819
named_argument_relevance.main();
20+
non_type_member_relevance.main();
1921
static_member_relevance.main();
2022
});
2123
}

0 commit comments

Comments
 (0)