| // 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. |
| |
| library malformed_test; |
| |
| // This part includes the actual tests. |
| part 'malformed2_lib.dart'; //# 00: static type warning |
| |
| bool inCheckedMode() { |
| try { |
| var i = 42; |
| String s = i; |
| } on TypeError catch (e) { |
| return true; |
| } |
| return false; |
| } |
| |
| bool hasFailed = false; |
| |
| void fail(String message) { |
| try { |
| throw message; |
| } catch (e, s) { |
| print(e); |
| print(s); |
| } |
| hasFailed = true; |
| } |
| |
| void checkFailures() { |
| if (hasFailed) throw 'Test failed.'; |
| } |
| |
| test(bool expectTypeError, f(), [String message]) { |
| message = message != null ? ' for $message' : ''; |
| try { |
| f(); |
| if (expectTypeError) { |
| fail('Missing type error$message.'); |
| } |
| } on TypeError catch (e) { |
| if (expectTypeError) { |
| print('Type error$message: $e'); |
| } else { |
| fail('Unexpected type error$message: $e'); |
| } |
| } |
| } |
| |
| const Unresolved c1 = 0; //# 01: static type warning, checked mode compile-time error |
| |
| void main() { |
| print(c1); //# 01: continued |
| testValue(new List<String>()); //# 00: continued |
| testValue(null); //# 00: continued |
| checkFailures(); |
| } |