| // 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 For all types of forms checks that return type of getter is |
| /// dynamic by expecting no static warnings. |
| /// @author ilya |
| |
| import "../../Utils/expect.dart"; |
| |
| //--library static variables |
| var x1; |
| var x2 = null; |
| const x3 = null; |
| //final x4; //can not be |
| final x5 = null; |
| |
| class C { |
| //--instance variables |
| var y1; |
| var y2 = null; |
| //const y3 = null; //can not be |
| final y4; |
| final y5 = null; |
| |
| //--class static variables |
| static var z1; |
| static var z2 = null; |
| static const z3 = null; |
| //static final z4; //can not be |
| static final z5 = null; |
| |
| C() : y4 = null; |
| } |
| |
| main() { |
| Expect.throws(() => x1.nonexistent()); |
| Expect.throws(() => x2.nonexistent()); |
| Expect.throws(() => x3.nonexistent()); |
| Expect.throws(() => x5.nonexistent()); |
| |
| C c = new C(); |
| |
| Expect.throws(() => c.y1.nonexistent()); |
| Expect.throws(() => c.y2.nonexistent()); |
| Expect.throws(() => c.y4.nonexistent()); |
| Expect.throws(() => c.y5.nonexistent()); |
| |
| Expect.throws(() => C.z1.nonexistent()); |
| Expect.throws(() => C.z2.nonexistent()); |
| Expect.throws(() => C.z3.nonexistent()); |
| Expect.throws(() => C.z5.nonexistent()); |
| } |