blob: 3e55497031d2a7d72f2604e9e3f190681148136e [file] [log] [blame]
// Copyright (c) 2021, 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.
class A<T> {
A();
factory A.fact() => new A();
factory A.redirect() = A;
}
typedef B<T> = A<T>;
typedef C<T> = A<int>;
const a = A.new;
const b = A<int>.new;
const c = A.fact;
const d = A<int>.fact;
const e = A.redirect;
const f = A<int>.redirect;
const g = B.new;
const h = B<int>.new;
const i = B.fact;
const j = B<int>.fact;
const k = B.redirect;
const l = B<int>.redirect;
const m = C.new;
const n = C<int>.new;
const o = C.fact;
const p = C<int>.fact;
const q = C.redirect;
const r = C<int>.redirect;
test() {
var a = A.new;
var b = A<int>.new;
var c = A.fact;
var d = A<int>.fact;
var e = A.redirect;
var f = A<int>.redirect;
var g = B.new;
var h = B<int>.new;
var i = B.fact;
var j = B<int>.fact;
var k = B.redirect;
var l = B<int>.redirect;
var m = C.new;
var n = C<int>.new;
var o = C.fact;
var p = C<int>.fact;
var q = C.redirect;
var r = C<int>.redirect;
}
main() {}