| // Copyright (c) 2012, 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. |
| |
| import "package:expect/expect.dart"; |
| |
| // When attempting to call a nonexistent static method, getter or setter, check |
| // that a NoSuchMethodError is thrown. |
| |
| class C {} |
| |
| class D { |
| get hest => 1; /// 04: continued |
| set hest(val) {} /// 05: continued |
| } |
| |
| get fisk => 2; /// 09: continued |
| set fisk(val) {} /// 10: continued |
| |
| expectNsme([void fun()]) { |
| if (fun != null) { |
| Expect.throws(fun, (e) => e is NoSuchMethodError); |
| } |
| } |
| |
| alwaysThrows() { |
| throw new NoSuchMethodError(null, const Symbol('foo'), [], {}); |
| } |
| |
| test01() { |
| C.hest = 1; /// 01: static type warning |
| } |
| |
| test02() { |
| C.hest; /// 02: static type warning |
| } |
| |
| test03() { |
| C.hest(); /// 03: static type warning |
| } |
| |
| test04() { |
| D.hest = 1; /// 04: static type warning |
| } |
| |
| test05() { |
| D.hest; /// 05: static type warning |
| } |
| |
| test06() { |
| fisk = 1; /// 06: static type warning |
| } |
| |
| test07() { |
| fisk; /// 07: static type warning |
| } |
| |
| test08() { |
| fisk(); /// 08: static type warning |
| } |
| |
| test09() { |
| fisk = 1; /// 09: static type warning |
| } |
| |
| test10() { |
| fisk; /// 10: static type warning |
| } |
| |
| main() { |
| expectNsme(alwaysThrows); |
| expectNsme( |
| test01 /// 01: continued |
| ); |
| expectNsme( |
| test02 /// 02: continued |
| ); |
| expectNsme( |
| test03 /// 03: continued |
| ); |
| expectNsme( |
| test04 /// 04: continued |
| ); |
| expectNsme( |
| test05 /// 05: continued |
| ); |
| expectNsme( |
| test06 /// 06: continued |
| ); |
| expectNsme( |
| test07 /// 07: continued |
| ); |
| expectNsme( |
| test08 /// 08: continued |
| ); |
| expectNsme( |
| test09 /// 09: continued |
| ); |
| expectNsme( |
| test10 /// 10: continued |
| ); |
| } |