[pigeon] added a test to assert circular references (#397)

This commit is contained in:
gaaclarke
2021-06-29 10:05:35 -07:00
committed by GitHub
parent 8388832a7a
commit 59160ba428

View File

@ -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) {