blob: 4f30ec5010f76483fc4c53019ef55334c1a7cfa3 [file] [log] [blame]
// 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.
// @dart=2.6
import 'never_opt_out_lib.dart';
Never optOutNever;
var inferredOptOutNever = optInNever;
genericMethod<T>() {}
class GenericClass<T> {}
main() {
optInNever = optOutNever;
Type typeNever = Never;
genericMethod<Never>();
new GenericClass<Never>();
Never localNever = null;
Null localNull = null;
var inferredLocalNever = optInNever;
localNever = localNever;
optOutNever = localNever;
optInNever = localNever;
localNull = localNever;
inferredOptOutNever = localNever;
inferredLocalNever = localNever;
localNever = optOutNever;
optOutNever = optOutNever;
optInNever = optOutNever;
localNull = optOutNever;
inferredOptOutNever = optOutNever;
inferredLocalNever = optOutNever;
localNever = optInNever;
optOutNever = optInNever;
optInNever = optInNever;
localNull = optInNever;
inferredOptOutNever = optInNever;
inferredLocalNever = optInNever;
localNever = localNull;
optOutNever = localNull;
optInNever = localNull;
localNull = localNull;
inferredOptOutNever = localNull;
inferredLocalNever = localNull;
localNever = inferredOptOutNever;
optOutNever = inferredOptOutNever;
optInNever = inferredOptOutNever;
localNull = inferredOptOutNever;
inferredOptOutNever = inferredOptOutNever;
inferredLocalNever = inferredOptOutNever;
localNever = inferredLocalNever;
optOutNever = inferredLocalNever;
optInNever = inferredLocalNever;
localNull = inferredLocalNever;
inferredOptOutNever = inferredLocalNever;
inferredLocalNever = inferredLocalNever;
throws(() => optOutNever = throwing());
throws(() => localNever = throwing());
throws(() => optOutNever = throwing());
throws(() => optInNever = throwing());
throws(() => inferredOptOutNever = throwing());
throws(() => inferredLocalNever = throwing());
var boundedGenericClass = new BoundedGenericClass();
throws(() {
var boundedGenericMethodResult1 = boundedGenericMethod1();
});
var boundedGenericMethodResult2 = boundedGenericMethod2();
dynamic dyn = null;
optInNever = dyn;
}
class B extends A {
Null neverField;
Null neverMethod(Null value) => value;
Null get neverProperty => null;
void set neverProperty(Null value) {}
Null nullField;
Null nullMethod(Null value) => value;
Null get nullProperty => null;
void set nullProperty(Null value) {}
}
class C extends A {
Never neverField;
Never neverMethod(Never value) => value;
Never get neverProperty => null;
void set neverProperty(Never value) {}
Never nullField;
Never nullMethod(Never value) => value;
Never get nullProperty => null;
void set nullProperty(Never value) {}
}
throws(void Function() f) {
try {
f();
} catch (_) {
return;
}
throw 'Expected exception';
}