// Copyright (c) 2014, 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 file.

// @dart = 2.9

// Check that metadata on a class 'Super' using subtypes of 'Super' are not
// considered as cyclic inheritance or lead to crashes.

@Sub1(0) //# 01: ok
class Super {
  final field;
  @Sub2(1) //# 02: ok
  const Super(this.field);
}

class Sub1 extends Super {
  const Sub1(var field) : super(field);
}

class Sub2 extends Super {
  const Sub2(var field) : super(field);
}

void main() {
  print(new Super(1));
}
