# Copyright (c) 2019, 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.md file. # Compile an application with a number of modules. # Try out "trickery" in the module dependencies to force needing more or less # dill libraries. type: newworld modules: module: module/lib1.dart: | import 'lib3.dart'; class Class1 { Class3a get c3a {} } module/lib2.dart: | import 'lib4.dart'; class Class2 { void cl4() { Class4 class4 = new Class4(); print(class4); } } module/lib3.dart: | class Class3a { Class3b get c3b {} } class Class3b { String str() {} } module/lib4.dart: | class Class4 {} module/.packages: | module:. worlds: - entry: compileme.dart fromComponent: true sources: compileme.dart: | import 'package:module/lib1.dart'; import 'package:module/lib2.dart'; main() { Class2 class2 = new Class2(); print(class2); } class Foo { Class1 class1() { Class1 class1 = new Class1(); class1.c3a.c3b.str(); return class1; } } .packages: | module:module modules: - module expectedLibraryCount: 5 neededDillLibraries: - package:module/lib1.dart - package:module/lib2.dart - package:module/lib3.dart expectedContent: org-dartlang-test:///compileme.dart: - Class Foo - Procedure main package:module/lib1.dart: - Class Class1 package:module/lib2.dart: - Class Class2 package:module/lib3.dart: - Class Class3a - Class Class3b package:module/lib4.dart: - Class Class4 - entry: compileme.dart fromComponent: true expectInitializeFromDill: false outlineOnly: true skipOutlineBodyCheck: true sources: compileme.dart: | import 'package:module/lib1.dart'; import 'package:module/lib2.dart'; main() { Class2 class2 = new Class2(); print(class2); } class Foo { Class1 class1() { Class1 class1 = new Class1(); class1.c3a.c3b.str(); return class1; } } .packages: | module:module modules: - module expectedLibraryCount: 5 neededDillLibraries: # This is the outline version. It doesn't use lib3.dart. - package:module/lib1.dart - package:module/lib2.dart expectedContent: org-dartlang-test:///compileme.dart: - Class Foo - Procedure main package:module/lib1.dart: - Class Class1 package:module/lib2.dart: - Class Class2 package:module/lib3.dart: - Class Class3a - Class Class3b package:module/lib4.dart: - Class Class4