blob: f3f9390c594de10f2fa9f192e1fb2a11afbfcb48 [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.
// @dart = 2.9
import 'dart:async';
typedef Typedef();
typedef GenericTypedef<T> = void Function(T);
typedef GenericFunctionTypedef = void Function<T>(T);
typedef TypedefWithFutureOr = void Function<T>(FutureOr<T>);
const typedef = /*cfe.TypeLiteral(dynamic Function())*/ Typedef;
const genericTypedef =
/*cfe.TypeLiteral(void Function(dynamic))*/ GenericTypedef;
const genericFunctionTypedef =
/*cfe.TypeLiteral(void Function<T>(T))*/ GenericFunctionTypedef;
const typedefWithFutureOr =
/*cfe.TypeLiteral(void Function<T>(FutureOr<T>))*/ TypedefWithFutureOr;
const futureOr = /*cfe.TypeLiteral(FutureOr<dynamic>)*/ FutureOr;
const null_ = /*cfe.TypeLiteral(Null)*/ Null;
main() {
print(
/*analyzer.TypeLiteral(dynamic Function()*)*/
/*cfe.TypeLiteral(dynamic Function())*/
/*dart2js.TypeLiteral(()->dynamic)*/
typedef);
print(
/*analyzer.TypeLiteral(void Function(dynamic)*)*/
/*cfe.TypeLiteral(void Function(dynamic))*/
/*dart2js.TypeLiteral((dynamic)->void)*/
genericTypedef);
print(
/*analyzer.TypeLiteral(void Function<T>(T*)*)*/
/*cfe.TypeLiteral(void Function<T>(T))*/
/*dart2js.TypeLiteral((0)->void)*/
genericFunctionTypedef);
print(
/*analyzer.TypeLiteral(void Function<T>(FutureOr<T*>*)*)*/
/*cfe.TypeLiteral(void Function<T>(FutureOr<T>))*/
/*dart2js.TypeLiteral((FutureOr<0>)->void)*/
typedefWithFutureOr);
print(
/*analyzer.TypeLiteral(FutureOr<dynamic>*)*/
/*cfe.TypeLiteral(FutureOr<dynamic>)*/
/*dart2js.TypeLiteral(dynamic)*/
futureOr);
print(
/*analyzer.TypeLiteral(Null*)*/
/*cfe|dart2js.TypeLiteral(Null)*/
null_);
}