| # Copyright (c) 2021, 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 modules compiled as outlines with constants. |
| # When compiling the "real" library (as non-outline) constant evaluation |
| # goes into more modules than in just the outline version. |
| |
| type: newworld |
| # Set to DDC for compiling modules as outline. |
| target: DDC |
| modules: |
| moduleC: |
| moduleC/lib.dart: | |
| const constC = true; |
| moduleC/.packages: | |
| moduleC:. |
| moduleB: |
| moduleB/lib.dart: | |
| import "package:moduleC/lib.dart"; |
| const constB = false || constC; |
| moduleB/.packages: | |
| moduleB:. |
| moduleC:../moduleC |
| worlds: |
| - entry: main.dart |
| fromComponent: true |
| sources: |
| main.dart: | |
| import 'package:moduleB/lib.dart'; |
| const constA = true && constB; |
| .packages: | |
| moduleB:moduleB |
| moduleC:moduleC |
| modules: |
| - moduleB |
| - moduleC |
| expectedLibraryCount: 3 |
| neededDillLibraries: |
| # Because the modules are complied as outlines they haven't had constants |
| # evaluated. As this is fully compiled it does evaluate constants and thus |
| # goes into both B and C. |
| - package:moduleB/lib.dart |
| - package:moduleC/lib.dart |
| expectedContent: |
| org-dartlang-test:///main.dart: |
| - Field constA |
| package:moduleB/lib.dart: |
| - Field constB |
| package:moduleC/lib.dart: |
| - Field constC |