Files
sdk/pkg/front_end/testcases/nnbd/assignability.dart
T
Dmitry Stefantsov c85979a280 [cfe] Implement the NNBD variation of the assignability property
Change-Id: I802e5668952f918919bd4fda4fd0102623a20ae7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128544
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
2019-12-16 12:38:27 +00:00

343 lines
10 KiB
Dart

// 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.
class Tearoffable {
void call() {}
}
ok<
XnonNull extends Object,
YnonNull extends XnonNull,
XpotentiallyNull extends Object?,
YpotentiallyNull extends XpotentiallyNull>(
dynamic dynamicArg,
Object objectArg,
num numArg,
int intArg,
double doubleArg,
Function functionArg,
void Function() toVoidArg,
Tearoffable tearoffableArg,
XnonNull xNonNullArg,
XpotentiallyNull xPotentiallyNullArg,
YnonNull yNonNullArg,
YpotentiallyNull yPotentiallyNullArg) {
dynamic dynamicVar = dynamicArg;
dynamicVar = objectArg;
dynamicVar = numArg;
dynamicVar = intArg;
dynamicVar = doubleArg;
dynamicVar = functionArg;
dynamicVar = toVoidArg;
dynamicVar = tearoffableArg;
dynamicVar = xNonNullArg;
dynamicVar = xPotentiallyNullArg;
dynamicVar = yNonNullArg;
dynamicVar = yPotentiallyNullArg;
Object objectVar = dynamicArg;
objectVar = objectArg;
objectVar = numArg;
objectVar = intArg;
objectVar = functionArg;
objectVar = toVoidArg;
objectVar = tearoffableArg;
objectVar = xNonNullArg;
objectVar = yNonNullArg;
num numVar = dynamicArg;
numVar = numArg;
numVar = intArg;
numVar = doubleArg;
int intVar = dynamicArg;
intVar = intArg;
double doubleVar = dynamicArg;
doubleVar = doubleArg;
Function functionVar = dynamicArg;
functionVar = functionArg;
functionVar = toVoidArg;
functionVar = tearoffableArg;
void Function() toVoidVar = dynamicArg;
toVoidVar = toVoidArg;
toVoidVar = tearoffableArg;
Tearoffable tearoffableVar = dynamicArg;
tearoffableVar = tearoffableArg;
XnonNull xNonNullVar = dynamicArg;
xNonNullVar = xNonNullArg;
xNonNullVar = yNonNullArg;
YnonNull yNonNullVar = dynamicArg;
yNonNullVar = yNonNullArg;
XpotentiallyNull xPotentiallyNullVar = dynamicArg;
xPotentiallyNullVar = xPotentiallyNullArg;
xPotentiallyNullVar = yPotentiallyNullArg;
YpotentiallyNull yPotentiallyNullVar = dynamicArg;
yPotentiallyNullVar = yPotentiallyNullArg;
}
error<
XnonNull extends Object,
YnonNull extends XnonNull,
XpotentiallyNull extends Object?,
YpotentiallyNull extends XpotentiallyNull>(
Object objectArg,
Object? objectNullableArg,
num numArg,
num? numNullableArg,
int intArg,
int? intNullableArg,
double doubleArg,
double? doubleNullableArg,
Function functionArg,
Function? functionNullableArg,
void Function() toVoidArg,
void Function()? toVoidNullableArg,
Tearoffable tearoffableArg,
Tearoffable? tearoffableNullableArg,
XnonNull xNonNullArg,
XnonNull? xNonNullNullableArg,
XpotentiallyNull xPotentiallyNullArg,
XpotentiallyNull? xPotentiallyNullNullableArg,
YnonNull yNonNullArg,
YnonNull? yNonNullNullableArg,
YpotentiallyNull yPotentiallyNullArg,
YpotentiallyNull? yPotentiallyNullNullableArg) {
Object objectVar = objectNullableArg;
objectVar = numNullableArg;
objectVar = intNullableArg;
objectVar = doubleNullableArg;
objectVar = functionNullableArg;
objectVar = toVoidNullableArg;
objectVar = tearoffableNullableArg;
objectVar = xNonNullNullableArg;
objectVar = xPotentiallyNullArg;
objectVar = xPotentiallyNullNullableArg;
objectVar = yNonNullNullableArg;
objectVar = yPotentiallyNullArg;
objectVar = yPotentiallyNullNullableArg;
num numVar = objectArg;
numVar = objectNullableArg;
numVar = numNullableArg;
numVar = intNullableArg;
numVar = doubleNullableArg;
numVar = functionArg;
numVar = functionNullableArg;
numVar = toVoidArg;
numVar = toVoidNullableArg;
numVar = tearoffableArg;
numVar = tearoffableNullableArg;
numVar = xNonNullArg;
numVar = xNonNullNullableArg;
numVar = xPotentiallyNullArg;
numVar = xPotentiallyNullNullableArg;
numVar = yNonNullArg;
numVar = yNonNullNullableArg;
numVar = yPotentiallyNullArg;
numVar = yPotentiallyNullNullableArg;
int intVar = objectArg;
intVar = objectNullableArg;
intVar = numArg;
intVar = numNullableArg;
intVar = intNullableArg;
intVar = doubleArg;
intVar = doubleNullableArg;
intVar = functionArg;
intVar = functionNullableArg;
intVar = toVoidArg;
intVar = toVoidNullableArg;
intVar = tearoffableArg;
intVar = tearoffableNullableArg;
intVar = xNonNullArg;
intVar = xNonNullNullableArg;
intVar = xPotentiallyNullArg;
intVar = xPotentiallyNullNullableArg;
intVar = yNonNullArg;
intVar = yNonNullNullableArg;
intVar = yPotentiallyNullArg;
intVar = yPotentiallyNullNullableArg;
double doubleVar = objectArg;
doubleVar = objectNullableArg;
doubleVar = numArg;
doubleVar = numNullableArg;
doubleVar = intArg;
doubleVar = intNullableArg;
doubleVar = doubleNullableArg;
doubleVar = functionArg;
doubleVar = functionNullableArg;
doubleVar = toVoidArg;
doubleVar = toVoidNullableArg;
doubleVar = tearoffableArg;
doubleVar = tearoffableNullableArg;
doubleVar = xNonNullArg;
doubleVar = xNonNullNullableArg;
doubleVar = xPotentiallyNullArg;
doubleVar = xPotentiallyNullNullableArg;
doubleVar = yNonNullArg;
doubleVar = yNonNullNullableArg;
doubleVar = yPotentiallyNullArg;
doubleVar = yPotentiallyNullNullableArg;
Function functionVar = objectArg;
functionVar = objectNullableArg;
functionVar = numArg;
functionVar = numNullableArg;
functionVar = intArg;
functionVar = intNullableArg;
functionVar = doubleArg;
functionVar = doubleNullableArg;
functionVar = functionNullableArg;
functionVar = toVoidNullableArg;
functionVar = tearoffableNullableArg;
functionVar = xNonNullArg;
functionVar = xNonNullNullableArg;
functionVar = xPotentiallyNullArg;
functionVar = xPotentiallyNullNullableArg;
functionVar = yNonNullArg;
functionVar = yNonNullNullableArg;
functionVar = yPotentiallyNullArg;
functionVar = yPotentiallyNullNullableArg;
void Function() toVoidVar = objectArg;
toVoidVar = objectNullableArg;
toVoidVar = numArg;
toVoidVar = numNullableArg;
toVoidVar = intArg;
toVoidVar = intNullableArg;
toVoidVar = doubleArg;
toVoidVar = doubleNullableArg;
toVoidVar = functionArg;
toVoidVar = functionNullableArg;
toVoidVar = toVoidNullableArg;
toVoidVar = tearoffableNullableArg;
toVoidVar = xNonNullArg;
toVoidVar = xNonNullNullableArg;
toVoidVar = xPotentiallyNullArg;
toVoidVar = xPotentiallyNullNullableArg;
toVoidVar = yNonNullArg;
toVoidVar = yNonNullNullableArg;
toVoidVar = yPotentiallyNullArg;
toVoidVar = yPotentiallyNullNullableArg;
Tearoffable tearoffableVar = objectArg;
tearoffableVar = objectNullableArg;
tearoffableVar = numArg;
tearoffableVar = numNullableArg;
tearoffableVar = intArg;
tearoffableVar = intNullableArg;
tearoffableVar = doubleArg;
tearoffableVar = doubleNullableArg;
tearoffableVar = functionArg;
tearoffableVar = functionNullableArg;
tearoffableVar = toVoidArg;
tearoffableVar = toVoidNullableArg;
tearoffableVar = tearoffableNullableArg;
tearoffableVar = xNonNullArg;
tearoffableVar = xNonNullNullableArg;
tearoffableVar = xPotentiallyNullArg;
tearoffableVar = xPotentiallyNullNullableArg;
tearoffableVar = yNonNullArg;
tearoffableVar = yNonNullNullableArg;
tearoffableVar = yPotentiallyNullArg;
tearoffableVar = yPotentiallyNullNullableArg;
XnonNull xNonNullVar = objectArg;
xNonNullVar = objectNullableArg;
xNonNullVar = numArg;
xNonNullVar = numNullableArg;
xNonNullVar = intArg;
xNonNullVar = intNullableArg;
xNonNullVar = doubleArg;
xNonNullVar = doubleNullableArg;
xNonNullVar = functionArg;
xNonNullVar = functionNullableArg;
xNonNullVar = toVoidArg;
xNonNullVar = toVoidNullableArg;
xNonNullVar = tearoffableArg;
xNonNullVar = tearoffableNullableArg;
xNonNullVar = xNonNullNullableArg;
xNonNullVar = xPotentiallyNullArg;
xNonNullVar = xPotentiallyNullNullableArg;
xNonNullVar = yNonNullNullableArg;
xNonNullVar = yPotentiallyNullArg;
xNonNullVar = yPotentiallyNullNullableArg;
XpotentiallyNull xPotentiallyNullVar = objectArg;
xPotentiallyNullVar = objectNullableArg;
xPotentiallyNullVar = numArg;
xPotentiallyNullVar = numNullableArg;
xPotentiallyNullVar = intArg;
xPotentiallyNullVar = intNullableArg;
xPotentiallyNullVar = doubleArg;
xPotentiallyNullVar = doubleNullableArg;
xPotentiallyNullVar = functionArg;
xPotentiallyNullVar = functionNullableArg;
xPotentiallyNullVar = toVoidArg;
xPotentiallyNullVar = toVoidNullableArg;
xPotentiallyNullVar = tearoffableArg;
xPotentiallyNullVar = tearoffableNullableArg;
xPotentiallyNullVar = xNonNullArg;
xPotentiallyNullVar = xNonNullNullableArg;
xPotentiallyNullVar = xPotentiallyNullNullableArg;
xPotentiallyNullVar = yNonNullArg;
xPotentiallyNullVar = yNonNullNullableArg;
xPotentiallyNullVar = yPotentiallyNullNullableArg;
YnonNull yNonNullVar = objectArg;
yNonNullVar = objectNullableArg;
yNonNullVar = numArg;
yNonNullVar = numNullableArg;
yNonNullVar = intArg;
yNonNullVar = intNullableArg;
yNonNullVar = doubleArg;
yNonNullVar = doubleNullableArg;
yNonNullVar = functionArg;
yNonNullVar = functionNullableArg;
yNonNullVar = toVoidArg;
yNonNullVar = toVoidNullableArg;
yNonNullVar = tearoffableArg;
yNonNullVar = tearoffableNullableArg;
yNonNullVar = xNonNullArg;
yNonNullVar = xNonNullNullableArg;
yNonNullVar = xPotentiallyNullArg;
yNonNullVar = xPotentiallyNullNullableArg;
yNonNullVar = yNonNullNullableArg;
yNonNullVar = yPotentiallyNullArg;
yNonNullVar = yPotentiallyNullNullableArg;
YpotentiallyNull yPotentiallyNullVar = objectArg;
yPotentiallyNullVar = objectNullableArg;
yPotentiallyNullVar = numArg;
yPotentiallyNullVar = numNullableArg;
yPotentiallyNullVar = intArg;
yPotentiallyNullVar = intNullableArg;
yPotentiallyNullVar = doubleArg;
yPotentiallyNullVar = doubleNullableArg;
yPotentiallyNullVar = functionArg;
yPotentiallyNullVar = functionNullableArg;
yPotentiallyNullVar = toVoidArg;
yPotentiallyNullVar = toVoidNullableArg;
yPotentiallyNullVar = tearoffableArg;
yPotentiallyNullVar = tearoffableNullableArg;
yPotentiallyNullVar = xNonNullArg;
yPotentiallyNullVar = xNonNullNullableArg;
yPotentiallyNullVar = xPotentiallyNullArg;
yPotentiallyNullVar = xPotentiallyNullNullableArg;
yPotentiallyNullVar = yNonNullArg;
yPotentiallyNullVar = yNonNullNullableArg;
yPotentiallyNullVar = yPotentiallyNullNullableArg;
}
main() {}