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

main.dart.patch: |
  // Reproduce a crash when a class has a bad hierarchy
  <<<< {"messages":[],"hasCompileTimeError":1}
  typedef A(C c);
  ==== []
  typedef A(Class c);
  >>>>

  typedef B(A a);

  typedef C(B b);

  class Class {
  <<<<
  ====
    A a;
  >>>>
  }

  void testA(A a) {}

  void main() {
    testA(null);
  }
