blob: 44f01abbd3b6494f73d40e8283d36f22c56a0332 [file] [log] [blame]
// Copyright (c) 2013, 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.
part of malformed_test;
/// [o] is either `null` or `new List<String>()`.
void testValue(var o) {
assert(o == null || o is List<String>);
test(true, () => o is Unresolved, "$o is Unresolved");
test(false, () => o is List<Unresolved>, "$o is List<Unresolved>");
test(true, () => o is! Unresolved, "$o is! Unresolved");
test(false, () => o is! List<Unresolved>, "$o is List<Unresolved>");
test(true, () => o as Unresolved, "$o as Unresolved");
test(false, () => o as List<Unresolved>, "$o as List<Unresolved>");
test(false, () {
try {} on Unresolved catch (e) {} catch (e) {}
}, "on Unresolved catch: Nothing thrown.");
test(true, () {
try {
throw o;
} on Unresolved catch (e) {} catch (e) {}
}, "on Unresolved catch ($o)");
test(false, () {
try {
throw o;
} on List<
String> catch (e) {} on NullThrownError catch (e) {} on Unresolved catch (e) {} catch (e) {}
}, "on List<String>/NullThrowError catch ($o)");
test(false, () {
try {
throw o;
} on List<
Unresolved> catch (e) {} on NullThrownError catch (e) {} on Unresolved catch (e) {} catch (e) {}
}, "on List<Unresolved>/NullThrowError catch ($o)");
test(o != null && inCheckedMode(), () {
Unresolved u = o;
}, "Unresolved u = $o;");
test(false, () {
List<Unresolved> u = o;
}, "List<Unresolved> u = $o;");
}