# Copyright (c) 2020, 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.

# Reproduce a crash.

type: newworld
trackWidgetCreation: true
target: DDC # basically needed for widget creation to be run
worlds:
  - entry: app/main.dart
    sources:
      .dart_tool/package_config.json: |
        {
          "configVersion": 2,
          "packages": [
            {
              "name": "flutter",
              "rootUri": "../flutter",
              "languageVersion": "2.12"
            }
          ]
        }
      app/main.dart: |
        import "package:flutter/src/widgets/framework.dart";
      flutter/src/widgets/framework.dart: |
        import "package:flutter/src/widgets/widget_inspector.dart";
        abstract class Widget {}
      flutter/src/widgets/widget_inspector.dart: |
        abstract class _HasCreationLocation {}
    expectedLibraryCount: 3
