a8720a6d9c
Requires VM and dart2js/dart2dart changes to work. Committed: https://code.google.com/p/dart/source/detail?r=14198 Committed: https://code.google.com/p/dart/source/detail?r=14254 Review URL: https://codereview.chromium.org//11231074 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14324 260f80e4-7a28-3924-810f-c04153c831b5
101 lines
1.7 KiB
Dart
101 lines
1.7 KiB
Dart
// 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.
|
|
|
|
// 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, '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
|
|
);
|
|
}
|