// 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. import "package:expect/expect.dart"; // Dart test program for testing default factories. abstract class Vehicle { factory Vehicle() = GoogleOne.Vehicle; // ^^^^^^^^^^^^^^^^^ // [analyzer] COMPILE_TIME_ERROR.REDIRECT_TO_INVALID_RETURN_TYPE // [cfe] The constructor function type 'GoogleOne Function()' isn't a subtype of 'Vehicle Function()'. } class Bike implements Vehicle, GoogleOne { Bike.redOne() {} } abstract class SpaceShip { factory SpaceShip() = GoogleOne; } class GoogleOne implements SpaceShip { GoogleOne.internal_() {} factory GoogleOne() { return new GoogleOne.internal_(); } factory GoogleOne.Vehicle() { return new Bike.redOne(); } } main() { Expect.equals(true, (new Bike.redOne()) is Bike); Expect.equals(true, (new SpaceShip()) is GoogleOne); var ensureItsCalled = new Vehicle(); }