// Copyright (c) 2012, 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. // Check type bounds when invoking a redirecting factory method abstract class Foo {} abstract class IA { factory IA() = A; // ^ // [cfe] The type 'T' doesn't extend 'Foo'. // ^ // [analyzer] COMPILE_TIME_ERROR.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS } class A implements IA { factory A() {} } main() { var result = new IA(); // ^ // [cfe] Type argument 'String' doesn't conform to the bound 'Foo' of the type variable 'T' on 'A'. }