// Copyright (c) 2013, 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

// Test that mixins don't interfere with type variable substitution.

import '../dynamic_type_helper.dart';

class B<T> {
  B(T x);
}

class M {}

class A<T> extends B<T> with M {
  A(T x) : super(x); // This line must be warning free.
}

class C<T> = B<T> with M;

main() {
  new A(null);
  new C<String>('');
  dynamic value = 0;
  checkDynamicTypeError(() => new C<String>(value));
}
