// 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 A type alias declares a name for a type expression. | |
/// <typeAlias> ::=<metadata> typedef <typeIdentifier> <typeParameters>?‘=’<type> | |
/// ‘;’ | |
/// | <metadata> typedef <functionTypeAlias> | |
/// <functionTypeAlias> ::= <functionPrefix> <formalParameterPart> ‘;’ | |
/// <functionPrefix> ::= <type>? <identifier> | |
/// @description Checks that type alias syntax works as expected. Test | |
/// function type alias with type parameters | |
/// @author sgrekhov@unipro.ru | |
import "../../../Utils/expect.dart"; | |
typedef void F1<T>(String s); | |
typedef F2<T>(String s, T i); | |
typedef F3<T extends num>(String s, T i); | |
test1(F2<int> f2) { | |
f2("Lily was here", 42); | |
} | |
test2(F3<double> f3) { | |
f3("Lily was here", 3.14); | |
} | |
main() { | |
F1<int> f = (String s) { | |
Expect.equals("123", s); | |
}; | |
f("123"); | |
f2(String s, int i) { | |
Expect.equals("Lily was here", s); | |
Expect.equals(42, i); | |
} | |
F3<double> f3 = (String s, double d) { | |
Expect.equals("Lily was here", s); | |
Expect.equals(3.14, d); | |
}; | |
test1(f2); | |
test2(f3); | |
} |