blob: 457dca779c478f4028efffaab4eb7cd31f6c6f5c [file] [log] [blame]
// Copyright (c) 2019, 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.
/// @assertion The effect of a type alias of the form typedef id = T; declared in
/// a library L is to introduce the name id into the scope of L, bound to the
/// type T .
/// @description Checks that type alias of the form typedef id = T; introduces
/// the name id, bound to the type T .
/// @author sgrekhov@unipro.ru
import "../../../Utils/expect.dart";
class A {}
class C<T> {}
typedef AAlias = A;
typedef CAlias<T> = C<T>;
class X {
static void s() {
AAlias aa = new A();
Expect.isTrue(aa is A);
Expect.isTrue(aa is AAlias);
CAlias<String> ca = new C<String>();
Expect.isTrue(ca is C<String>);
Expect.isTrue(ca is CAlias<String>);
}
void m() {
AAlias aa = new A();
Expect.isTrue(aa is A);
Expect.isTrue(aa is AAlias);
CAlias<String> ca = new C<String>();
Expect.isTrue(ca is C<String>);
Expect.isTrue(ca is CAlias<String>);
}
}
test() {
AAlias aa = new A();
Expect.isTrue(aa is A);
Expect.isTrue(aa is AAlias);
CAlias<String> ca = new C<String>();
Expect.isTrue(ca is C<String>);
Expect.isTrue(ca is CAlias<String>);
}
main() {
AAlias aa = new A();
Expect.isTrue(aa is A);
Expect.isTrue(aa is AAlias);
CAlias<String> ca = new C<String>();
Expect.isTrue(ca is C<String>);
Expect.isTrue(ca is CAlias<String>);
test();
X.s();
new X().m();
}