blob: ca1a5f1f5d289db742803d0fc2547396ec256d16 [file] [log] [blame]
# 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: |
// @dart=2.9
import 'lib.dart';
main() {
foo();
}
lib.dart: |
// @dart=2.9
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: |
// @dart=2.9
import 'lib.dart';
import 'lib2.dart';
import 'lib3.dart';
main() {
foo();
print(fooField2);
}
lib2.dart: |
// @dart=2.9
import 'lib.dart';
const fooField = const Foo(0);
lib3.dart: |
// @dart=2.9
import 'lib2.dart';
const fooField2 = fooField;
expectInitializeFromDill: false
expectedLibraryCount: 4
- entry: main.dart
errors: false
worldType: updated
invalidate:
- lib2.dart
sources:
lib2.dart: |
// @dart=2.9
import 'lib.dart';
const fooField = const Foo(1);
expectInitializeFromDill: false
expectedLibraryCount: 4