blob: 1d9981b0d1a315b8b76c50520889f1b44b4d60d3 [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;
main() {
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());
}
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';
}