blob: 1e919ef05805f5d39a4d5daf43424c0312813e5f [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) {}
}