# 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.

# Re-create https://github.com/flutter/flutter/issues/48804.

type: newworld
worlds:
  - entry: main.dart
    errors: false
    sources:
      main.dart: |
        import "lib.dart";
        typedef G<T> = Function(F<T>);
      lib.dart: |
        typedef F<T> = Function();
    expectedLibraryCount: 2
  - entry: main.dart
    errors: false
    expectInitializeFromDill: true
    invalidate:
      - main.dart
    sources:
      main.dart: |
        import "lib.dart";
        typedef G<T> = Function(F<T>);
        main() {
          print("Hello");
        }
    expectedLibraryCount: 2
