blob: 755004f4ce544929e908752d0e8f22f542ba40dd [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() {
Expect.throws(() { A.a.nonexistent(); }, (e) => e is NoSuchMethodError);
Expect.throws(() { A.b.nonexistent(); }, (e) => e is NoSuchMethodError);
Expect.throws(() { A.c.nonexistent(); }, (e) => e is NoSuchMethodError);
Expect.throws(() { A.d.nonexistent(); }, (e) => e is NoSuchMethodError);
}