| # 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 const class with a initializer assert that would |
| # fail once evaluated. Everything should be fine as there is no usage. |
| # Add a new file with usage of it. An error should occur. |
| # Fix said file again and the error should go away. |
| # Any references to the constant shouldn't matter in this regard. |
| |
| type: newworld |
| worlds: |
| - entry: main.dart |
| sources: |
| main.dart: | |
| import 'lib.dart'; |
| main() { |
| foo(); |
| } |
| lib.dart: | |
| class Foo { |
| const Foo(int i) : assert(i > 0); |
| } |
| foo() { |
| new Foo(0); |
| } |
| expectedLibraryCount: 2 |
| errors: false |
| - entry: main.dart |
| errors: true |
| worldType: updated |
| invalidate: |
| - main.dart |
| sources: |
| main.dart: | |
| import 'lib.dart'; |
| import 'lib2.dart'; |
| import 'lib3.dart'; |
| main() { |
| foo(); |
| print(fooField2); |
| } |
| lib2.dart: | |
| import 'lib.dart'; |
| const fooField = const Foo(0); |
| lib3.dart: | |
| import 'lib2.dart'; |
| const fooField2 = fooField; |
| expectInitializeFromDill: false |
| expectedLibraryCount: 4 |
| - entry: main.dart |
| errors: false |
| worldType: updated |
| invalidate: |
| - lib2.dart |
| sources: |
| lib2.dart: | |
| import 'lib.dart'; |
| const fooField = const Foo(1); |
| expectInitializeFromDill: false |
| expectedLibraryCount: 4 |