# 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 two new files each with usage of it. An error should occur each place. # Fix one and the error should still occur in the other. # Fix the other but re-introduce the first and the error should still occur. # Fix both and the error should go away. 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 'lib.dart'; const fooField2 = const Foo(0); expectInitializeFromDill: false expectedLibraryCount: 4 - entry: main.dart errors: true worldType: updated invalidate: - lib2.dart sources: lib2.dart: | import 'lib.dart'; const fooField = const Foo(1); expectInitializeFromDill: false expectedLibraryCount: 4 - entry: main.dart errors: true worldType: updated invalidate: - lib2.dart - lib3.dart sources: lib2.dart: | import 'lib.dart'; const fooField = const Foo(0); lib3.dart: | import 'lib.dart'; const fooField2 = const Foo(1); expectInitializeFromDill: false expectedLibraryCount: 4 - entry: main.dart errors: false worldType: updated invalidate: - lib2.dart - lib3.dart sources: lib2.dart: | import 'lib.dart'; const fooField = const Foo(1); lib3.dart: | import 'lib.dart'; const fooField2 = const Foo(1); expectInitializeFromDill: false expectedLibraryCount: 4