| // 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; |
| |
| main() { |
| 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; |
| } |