/* | |
* 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 it is a compile error if id is not unique | |
* @author sgrekhov@unipro.ru | |
*/ | |
// SharedOptions=--enable-experiment=nonfunction-type-aliases | |
class A {} | |
class C<T> {} | |
typedef AAlias = A; | |
typedef CAlias<T> = C<T>; | |
typedef AAlias = A; //# 01: compile-time error | |
typedef AAlias = C<String>; //# 02: compile-time error | |
typedef CAlias<T> = C<T>; //# 03: compile-time error | |
typedef CAlias = C<String>; //# 04: compile-time error | |
typedef CAlias<T1, T2> = C<T1>; //# 05: compile-time error | |
main() { | |
} |