# 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, change a file, but don't change the outline.
# Use late fields without lowering in extension.

type: newworld
forceLateLoweringForTesting: false
worlds:
  - entry: main.dart
    experiments: alternative-invalidation-strategy
    sources:
      main.dart: |
        late int? field1 = 42;
        late int? field2;
        late final int? field3 = 42;
        late final int? field4;
        class C {}
        extension on C {
          static late int? field5 = 42;
          static late int? field6;
          static late final int? field7 = 42;
          static late final int? field8;
        }
        main() {
          field1 = 43;
          field2 = 42;
        }
    expectedLibraryCount: 1
  - entry: main.dart
    experiments: alternative-invalidation-strategy
    worldType: updated
    expectInitializeFromDill: false
    invalidate:
      - main.dart
    sources:
      main.dart: |
        late int? field1 = 42;
        late int? field2;
        late final int? field3 = 42;
        late final int? field4;
        class C {}
        extension on C {
          static late int? field5 = 42;
          static late int? field6;
          static late final int? field7 = 42;
          static late final int? field8;
        }
        main() {
          field1 = 44;
          field2 = 43;
        }
    expectedLibraryCount: 1
    expectsRebuildBodiesOnly: true
