blob: 524b24a546098c2fcb719dab4ba221352e1675aa [file] [log] [blame]
// Copyright (c) 2022, 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:test_reflective_loader/test_reflective_loader.dart';
import '../../../../client/completion_driver_test.dart';
void main() {
defineReflectiveSuite(() {
defineReflectiveTests(RecordTypeAnnotationTest);
});
}
@reflectiveTest
class RecordTypeAnnotationTest extends AbstractCompletionDriverTest {
@override
Future<void> setUp() async {
await super.setUp();
allowedIdentifiers = const {'buffer', 'stringBuffer'};
}
Future<void> test_named_comma_space_prefix_x_right() async {
await computeSuggestions('''
class A01 {}
class A02 {}
class B01 {}
({int foo01, A0^}) f() {}
''');
assertResponse(r'''
replacement
left: 2
suggestions
A01
kind: class
A02
kind: class
''');
}
Future<void> test_named_comma_space_prefix_x_space_name_right() async {
await computeSuggestions('''
class A01 {}
class A02 {}
class B01 {}
({int foo01, A0^ foo02}) f() {}
''');
assertResponse(r'''
replacement
left: 2
suggestions
A01
kind: class
A02
kind: class
''');
}
Future<void> test_named_comma_space_type_space_prefix_x_right() async {
await computeSuggestions('''
class A01 {}
class A02 {}
class B01 {}
({int foo01, StringBuffer str^}) f() {}
''');
assertResponse(r'''
replacement
left: 3
suggestions
stringBuffer
kind: identifier
''');
}
Future<void> test_named_comma_space_type_space_x_right() async {
await computeSuggestions('''
class A01 {}
class A02 {}
class B01 {}
({int foo01, StringBuffer ^}) f() {}
''');
assertResponse(r'''
suggestions
buffer
kind: identifier
stringBuffer
kind: identifier
''');
}
Future<void> test_named_comma_space_x_right() async {
await computeSuggestions('''
class A01 {}
class A02 {}
class B01 {}
({int foo01, ^}) f() {}
''');
assertResponse(r'''
suggestions
A01
kind: class
A02
kind: class
B01
kind: class
dynamic
kind: keyword
void
kind: keyword
''');
}
Future<void> test_named_comma_space_x_space_name_right() async {
await computeSuggestions('''
class A01 {}
class A02 {}
class B01 {}
({int foo01, ^ foo02}) f() {}
''');
assertResponse(r'''
suggestions
A01
kind: class
A02
kind: class
B01
kind: class
dynamic
kind: keyword
void
kind: keyword
''');
}
Future<void> test_outside_right_x() async {
await computeSuggestions('''
class A01 {}
class A02 {}
class B01 {}
(int, )^ f() {}
''');
assertResponse(r'''
suggestions
''');
}
Future<void> test_outside_x_left() async {
await computeSuggestions('''
class A01 {}
class A02 {}
class B01 {}
void f(int a, ^(int, ) b) {}
''');
assertResponse(r'''
suggestions
A01
kind: class
A02
kind: class
B01
kind: class
void
kind: keyword
dynamic
kind: keyword
''');
}
Future<void> test_positional_comma_space_prefix_x_right() async {
await computeSuggestions('''
class A01 {}
class A02 {}
class B01 {}
(int, A0^) f() {}
''');
assertResponse(r'''
replacement
left: 2
suggestions
A01
kind: class
A02
kind: class
''');
}
Future<void> test_positional_comma_space_prefix_x_space_name_right() async {
await computeSuggestions('''
class A01 {}
class A02 {}
class B01 {}
(int, A0^ foo) f() {}
''');
assertResponse(r'''
replacement
left: 2
suggestions
A01
kind: class
A02
kind: class
''');
}
Future<void> test_positional_comma_space_prefix_x_suffix_right() async {
await computeSuggestions('''
class A01 {}
class A02 {}
class B01 {}
(int, A0^foo) f() {}
''');
assertResponse(r'''
replacement
left: 2
right: 3
suggestions
A01
kind: class
A02
kind: class
''');
}
Future<void> test_positional_comma_space_x_right() async {
await computeSuggestions('''
class A01 {}
class A02 {}
class B01 {}
(int, ^) f() {}
''');
assertResponse(r'''
suggestions
A01
kind: class
A02
kind: class
B01
kind: class
dynamic
kind: keyword
void
kind: keyword
''');
}
Future<void> test_positional_comma_space_x_space_name_right() async {
await computeSuggestions('''
class A01 {}
class A02 {}
class B01 {}
(int, ^ foo) f() {}
''');
assertResponse(r'''
suggestions
A01
kind: class
A02
kind: class
B01
kind: class
dynamic
kind: keyword
void
kind: keyword
''');
}
Future<void> test_positional_comma_space_x_suffix_right() async {
await computeSuggestions('''
class A01 {}
class A02 {}
class B01 {}
(int, ^foo) f() {}
''');
assertResponse(r'''
replacement
right: 3
suggestions
A01
kind: class
A02
kind: class
B01
kind: class
dynamic
kind: keyword
void
kind: keyword
''');
}
}