// Copyright (c) 2020, 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 {} typedef FArgument = Function(X); typedef FReturn = X Function(); typedef FBoth = X Function(X); typedef FNowhere = Function(); foo() { A aObject; // Error. A aNumNullable; // Error. A aIntNullable; // Error. A aNull; // Error. FArgument fArgumentObject; // Error. FArgument fArgumentNumNullable; // Error. FArgument fArgumentIntNullable; // Error. FArgument fArgumentNull; // Error. FReturn fReturnObject; // Error. FReturn fReturnNumNullable; // Error. FReturn fReturnIntNullable; // Error. FReturn fReturnNull; // Error. FBoth fBothObject; // Error. FBoth fBothNumNullable; // Error. FBoth fBothIntNullable; // Error. FBoth fBothNull; // Error. FNowhere fNowhereObject; // Error. FNowhere fNowhereNumNullable; // Error. FNowhere fNowhereIntNullable; // Error. FNowhere fNowhereNull; // Error. FArgument fArgumentObjectNullable; // Error. FArgument fArgumentDynamic; // Error. FArgument fArgumentVoid; // Error. A aObjectNullable; // Ok. A aDynamic; // Ok. A aVoid; // Ok. A aNum; // Ok. A aInt; // Ok. A aNever; // Ok. FArgument fArgumentNum; // Ok. FArgument fArgumentInt; // Ok. FArgument fArgumentNever; // Ok. FReturn fReturnObjectNullable; // Ok. FReturn fReturnDynamic; // Ok. FReturn fReturnVoid; // Ok. FReturn fReturnNum; // Ok. FReturn fReturnInt; // Ok. FReturn fReturnNever; // Ok. FBoth fBothObjectNullable; // Ok. FBoth fBothDynamic; // Ok. FBoth fBothVoid; // Ok. FBoth fBothNum; // Ok. FBoth fBothInt; // Ok. FBoth fBothNever; // Ok. FNowhere fNowhereObjectNullable; // Ok. FNowhere fNowhereDynamic; // Ok. FNowhere fNowhereVoid; // Ok. FNowhere fNowhereNum; // Ok. FNowhere fNowhereInt; // Ok. FNowhere fNowhereNever; // Ok. } main() {}