# 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