// 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. // Dart test program for testing setting/getting of fields when // only getter/setter methods are specified. import "package:expect/expect.dart"; class First { First(int val) : a_ = val {} void testMethod() { a = 20; } static void testStaticMethod() { b = 20; } int get a { return a_; } void set a(int val) { a_ = a_ + val; } static int get b { return b_; } static void set b(int val) { b_ = val; } int a_; static int b_ = -1; } class Second { static int c = -1; int a_; Second(int value) : a_ = value {} void testMethod() { a = 20; } static void testStaticMethod() { int i; b = 20; i = d; // TODO(asiva): Turn these on once we have error handling. // i = b; // Should be an error. // d = 40; // Should be an error. } int get a { return a_; } void set a(int value) { a_ = a_ + value; } static void set b(int value) { Second.c = value; } static int get d { return Second.c; } } class Setter1Test { static testMain() { First obj1 = new First(10); Expect.equals(10, obj1.a); obj1.testMethod(); Expect.equals(30, obj1.a); First.b = 10; Expect.equals(10, First.b); First.testStaticMethod(); Expect.equals(20, First.b); Second obj = new Second(10); Expect.equals(10, obj.a); obj.testMethod(); Expect.equals(30, obj.a); Second.testStaticMethod(); Expect.equals(20, Second.c); Expect.equals(20, Second.d); } } main() { Setter1Test.testMain(); }