blob: a55cf1f4cb012b0e0f4192a65fd8e149f52d974e [file] [log] [blame]
/*
* Copyright (c) 2011, 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.
*/
/**
* @assertion A variable declaration of one of the forms
* var v;, var v = e; , const v = e;, final v; or final v = e;
* always induces an implicit getter function with signature
* get v
* @description Checks that the returned type of this implicit getter is the same as the
* static field's type (dynamic), by making sure there're no static warnings when invoking
* non-existing methods on the value returned by these getters.
* @static-clean
* @author rodionov
* @reviewer msyabro
*/
import "../../Utils/expect.dart";
class A {
static var a;
static var b = null;
static final c = null;
static const d = null;
}
main() {
try {
A.a.nonexistent();
Expect.fail("NoSuchMethodError expected");
} on NoSuchMethodError catch (e) {}
try {
A.b.nonexistent();
Expect.fail("NoSuchMethodError expected");
} on NoSuchMethodError catch (e) {}
try {
A.c.nonexistent();
Expect.fail("NoSuchMethodError expected");
} on NoSuchMethodError catch (e) {}
try {
A.d.nonexistent();
Expect.fail("NoSuchMethodError expected");
} on NoSuchMethodError catch (e) {}
}