mirror of
https://github.com/dart-lang/sdk
synced 2024-09-05 00:13:50 +00:00
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 <brianwilkerson@google.com> Commit-Queue: Jaime Wren <jwren@google.com>
This commit is contained in:
parent
60bb0d3a41
commit
ae6a489dfb
|
@ -0,0 +1,51 @@
|
|||
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart';
|
||||
import 'package:test_reflective_loader/test_reflective_loader.dart';
|
||||
|
||||
import 'completion_relevance.dart';
|
||||
|
||||
void main() {
|
||||
defineReflectiveSuite(() {
|
||||
defineReflectiveTests(NonTypeMemberRelevanceTest);
|
||||
});
|
||||
}
|
||||
|
||||
@reflectiveTest
|
||||
class NonTypeMemberRelevanceTest extends CompletionRelevanceTest {
|
||||
Future<void> test_contextType_constructorInvocation_before_type() async {
|
||||
await addTestFile('''
|
||||
class StrWrap {
|
||||
String string;
|
||||
StrWrap(this.string);
|
||||
}
|
||||
void foo(StrWrap s) {}
|
||||
void bar() {
|
||||
foo(^);
|
||||
}
|
||||
''');
|
||||
|
||||
var constructorInvocationSuggestion =
|
||||
suggestionWith(completion: 'StrWrap', element: ElementKind.CONSTRUCTOR);
|
||||
|
||||
var typeSuggestion =
|
||||
suggestionWith(completion: 'StrWrap', element: ElementKind.CLASS);
|
||||
|
||||
assertOrder([constructorInvocationSuggestion, typeSuggestion]);
|
||||
}
|
||||
|
||||
@failingTest
|
||||
Future<void> test_typeParameters() async {
|
||||
await addTestFile('''
|
||||
class Foo{}
|
||||
void foo<T>(List<T> bar) {
|
||||
List<^> baz;
|
||||
}
|
||||
''');
|
||||
|
||||
assertOrder(
|
||||
[suggestionWith(completion: 'T'), suggestionWith(completion: 'Foo')]);
|
||||
}
|
||||
}
|
|
@ -8,6 +8,7 @@ import 'bool_assignment_relevance_test.dart' as bool_assignments;
|
|||
import 'deprecated_member_relevance_test.dart' as deprecated_members;
|
||||
import 'instance_member_relevance_test.dart' as instance_member_relevance;
|
||||
import 'named_argument_relevance_test.dart' as named_argument_relevance;
|
||||
import 'non_type_member_relevance_test.dart' as non_type_member_relevance;
|
||||
import 'static_member_relevance_test.dart' as static_member_relevance;
|
||||
|
||||
void main() {
|
||||
|
@ -16,6 +17,7 @@ void main() {
|
|||
deprecated_members.main();
|
||||
instance_member_relevance.main();
|
||||
named_argument_relevance.main();
|
||||
non_type_member_relevance.main();
|
||||
static_member_relevance.main();
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue