blob: d2897b46569f23446225fe43312a8250d4c8a5e0 [file] [log] [blame]
/*
* Copyright (c) 2021, 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.
*/
/**
* @assertion With unsound null checking, evaluation proceeds as follows:
*
* First e is implicitly cast to bool if required (using
* LEGACY_SUBTYPE(e.runtimeType, bool))
* This cast may fail, and if so it is a TypeError.
* If the cast does not fail, then the result may still be null, and so the
* result must be checked against null.
* If the null check fails, it is an AssertionError, otherwise evaluation of the
* enclosing conditional proceeds as usual.
*
* @description Checks that it is a TypeError if runtime check fails
*
* @author sgrekhov@unipro.ru
*/
// Requirements=nnbd-weak
import "../../../Utils/expect.dart";
main() {
dynamic d = 42;
Expect.throws(() {
if(d) {}
}, (e) => e is TypeError);
d = new Object();
Expect.throws(() {
if(d) {}
}, (e) => e is TypeError);
}