mirror of
https://github.com/flutter/packages.git
synced 2025-06-26 11:08:50 +08:00
[pigeon] added a test to assert circular references (#397)
This commit is contained in:
@ -378,6 +378,34 @@ void main() {
|
||||
}
|
||||
}
|
||||
|
||||
test('test circular references', () {
|
||||
final Pigeon dartle = Pigeon.setup();
|
||||
_withTempFile('compilationError.dart', (File file) {
|
||||
file.writeAsStringSync('''
|
||||
class Foo {
|
||||
Bar? bar;
|
||||
}
|
||||
|
||||
class Bar {
|
||||
Foo? foo;
|
||||
}
|
||||
|
||||
@HostApi()
|
||||
abstract class NotificationsHostApi {
|
||||
void doit(Foo foo);
|
||||
}
|
||||
''');
|
||||
final ParseResults results =
|
||||
dartle.parseFile(file.path, ignoresInvalidImports: true);
|
||||
expect(results.errors.length, 0);
|
||||
expect(results.root.classes.length, 2);
|
||||
final Class foo = results.root.classes
|
||||
.firstWhere((Class aClass) => aClass.name == 'Foo');
|
||||
expect(foo.fields.length, 1);
|
||||
expect(foo.fields[0].dataType, 'Bar');
|
||||
});
|
||||
});
|
||||
|
||||
test('test compilation error', () {
|
||||
final Pigeon dartle = Pigeon.setup();
|
||||
_withTempFile('compilationError.dart', (File file) {
|
||||
|
Reference in New Issue
Block a user