// 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 ); }