3789983e89
Reviewed-by: darcy, ihse
707 lines
20 KiB
Java
707 lines
20 KiB
Java
/*
|
|
* Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License version 2 only, as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
* version 2 for more details (a copy is included in the LICENSE file that
|
|
* accompanied this code).
|
|
*
|
|
* You should have received a copy of the GNU General Public License version
|
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*
|
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
* or visit www.oracle.com if you need additional information or have any
|
|
* questions.
|
|
*/
|
|
|
|
/*
|
|
* @test
|
|
* @bug 4102566
|
|
* @summary Test access methods for assignment targets.
|
|
* @author William Maddox (maddox)
|
|
*
|
|
* @compile AccessMethodsLHS.java
|
|
* @run main AccessMethodsLHS
|
|
*/
|
|
|
|
public class AccessMethodsLHS {
|
|
|
|
static void fail(String msg) throws Exception {
|
|
throw new Exception("FAIL: " + msg);
|
|
}
|
|
|
|
static int arg = 123456;
|
|
|
|
private int i;
|
|
private double d;
|
|
|
|
private void m(int x) throws Exception {
|
|
System.out.println("called AccessMethodsLHS.m");
|
|
if (x != 123456)
|
|
AccessMethodsLHS.fail("bad argument");
|
|
}
|
|
|
|
public static class Bar {
|
|
private int i;
|
|
private double d;
|
|
private String s;
|
|
|
|
private void m(int x) throws Exception {
|
|
System.out.println("called AccessMethodsLHS.Bar.m");
|
|
if (x != 123456)
|
|
AccessMethodsLHS.fail("bad argument");
|
|
}
|
|
|
|
// Static members are permitted in a static inner class.
|
|
|
|
static private int si;
|
|
static private double sd;
|
|
static private String ss;
|
|
|
|
static private void sm(int x) throws Exception {
|
|
System.out.println("called AccessMethodsLHS.Bar.sm");
|
|
if (x != 123456)
|
|
AccessMethodsLHS.fail("bad argument");
|
|
}
|
|
}
|
|
|
|
public static class Baz {
|
|
private int i;
|
|
private double d;
|
|
private String s;
|
|
|
|
private void m(int x) throws Exception {
|
|
System.out.println("called Baz.m");
|
|
if (x != 123456)
|
|
AccessMethodsLHS.fail("bad argument");
|
|
}
|
|
|
|
// Compiler rejects static members here correctly.
|
|
|
|
// static private int si;
|
|
// static private double sd;
|
|
// static private String ss;
|
|
}
|
|
|
|
public class Quux {
|
|
void DoIt () throws Exception {
|
|
m(arg);
|
|
i = 1;
|
|
d = 1.0;
|
|
i += 5;
|
|
i--;
|
|
}
|
|
void DoMore(AccessMethodsLHS f) throws Exception {
|
|
f.m(arg);
|
|
}
|
|
}
|
|
|
|
public static class Quem {
|
|
void DoIt () {
|
|
// Illegal static refs to non-static vars
|
|
// i = 1;
|
|
// d = 1.0;
|
|
// i += 5;
|
|
// i--;
|
|
}
|
|
}
|
|
|
|
static int effects = 0;
|
|
|
|
static Bar iBar(Bar x) { effects++; return x; }
|
|
|
|
static Baz iBaz(Baz x) { effects++; return x; }
|
|
|
|
static void checkEffects(int i) throws Exception {
|
|
if (effects != 1) {
|
|
AccessMethodsLHS.fail("incorrect side-effect behavior (" + effects + "): " + i);
|
|
}
|
|
effects = 0;
|
|
}
|
|
|
|
static public void main(String args[]) throws Exception {
|
|
|
|
Bar b = new Bar();
|
|
Baz c = new Baz();
|
|
|
|
System.out.println("testing assignment");
|
|
|
|
AccessMethodsLHS f = new AccessMethodsLHS();
|
|
|
|
Quux q1 = f.new Quux();
|
|
q1.DoIt();
|
|
q1.DoMore(f);
|
|
|
|
Quem q2 = new Quem();
|
|
q2.DoIt();
|
|
|
|
// *** Static class, Non-static members ***
|
|
|
|
b.m(arg);
|
|
|
|
// Integer (1 word)
|
|
|
|
b.i = 5;
|
|
System.out.println(b.i);
|
|
if (b.i != 5)
|
|
AccessMethodsLHS.fail("simple assignment");
|
|
System.out.println(b.i);
|
|
|
|
|
|
if ((b.i += 10) != 15)
|
|
AccessMethodsLHS.fail("add-assign result");
|
|
System.out.println(b.i);
|
|
|
|
if (b.i != 15)
|
|
AccessMethodsLHS.fail("add-assign effect");
|
|
System.out.println(b.i);
|
|
|
|
b.s = "foo";
|
|
if (!(b.s += "bar").equals("foobar"))
|
|
AccessMethodsLHS.fail("concat-assign result");
|
|
System.out.println(b.s);
|
|
|
|
if (!b.s.equals("foobar"))
|
|
AccessMethodsLHS.fail("concat-assign effect");
|
|
System.out.println(b.s);
|
|
|
|
b.s = "foo";
|
|
b.s += "bar";
|
|
if (!b.s.equals("foobar"))
|
|
AccessMethodsLHS.fail("concat-assign effect (novalue)");
|
|
System.out.println(b.s);
|
|
|
|
b.i = 0;
|
|
b.i++;
|
|
if (b.i != 1)
|
|
AccessMethodsLHS.fail("post-increment effect");
|
|
System.out.println(b.i);
|
|
|
|
b.i = 5;
|
|
if (b.i++ != 5)
|
|
AccessMethodsLHS.fail("post-increment result");
|
|
if (b.i != 6)
|
|
AccessMethodsLHS.fail("post-increment effect (embedded)");
|
|
System.out.println(b.i);
|
|
|
|
b.i = 1;
|
|
--b.i;
|
|
if (b.i != 0)
|
|
AccessMethodsLHS.fail("pre-decrement effect");
|
|
|
|
b.i = 5;
|
|
if (--b.i != 4)
|
|
AccessMethodsLHS.fail("pre-decrement result");
|
|
if (b.i != 4)
|
|
AccessMethodsLHS.fail("pre-decrement effect (embedded)");
|
|
System.out.println(b.i);
|
|
|
|
// Double (2 word)
|
|
|
|
b.d = 5.0;
|
|
System.out.println(b.d);
|
|
if (b.d != 5.0)
|
|
AccessMethodsLHS.fail("simple assignment");
|
|
System.out.println(b.d);
|
|
|
|
if ((b.d += 10) != 15.0)
|
|
AccessMethodsLHS.fail("add-assign result");
|
|
System.out.println(b.d);
|
|
|
|
if (b.d != 15.0)
|
|
AccessMethodsLHS.fail("add-assign effect");
|
|
System.out.println(b.d);
|
|
|
|
b.d = 0.0;
|
|
b.d++;
|
|
if (b.d != 1.0)
|
|
AccessMethodsLHS.fail("post-increment effect");
|
|
System.out.println(b.d);
|
|
|
|
b.d = 5.0;
|
|
if (b.d++ != 5.0)
|
|
AccessMethodsLHS.fail("post-increment result");
|
|
if (b.d != 6.0)
|
|
AccessMethodsLHS.fail("post-increment effect (embedded)");
|
|
System.out.println(b.d);
|
|
|
|
b.d = 1.0;
|
|
--b.d;
|
|
if (b.d != 0.0)
|
|
AccessMethodsLHS.fail("pre-decrement effect");
|
|
|
|
b.d = 5.0;
|
|
if (--b.d != 4.0)
|
|
AccessMethodsLHS.fail("pre-decrement result");
|
|
if (b.d != 4.0)
|
|
AccessMethodsLHS.fail("pre-decrement effect (embedded)");
|
|
System.out.println(b.d);
|
|
|
|
// Integer (1 word) with side-effects in object reference
|
|
|
|
iBar(b).i = 5;
|
|
checkEffects(1);
|
|
System.out.println(b.i);
|
|
if (b.i != 5)
|
|
AccessMethodsLHS.fail("simple assignment");
|
|
|
|
System.out.println(b.i);
|
|
|
|
if ((iBar(b).i += 10) != 15)
|
|
AccessMethodsLHS.fail("add-assign result");
|
|
checkEffects(2);
|
|
System.out.println(b.i);
|
|
|
|
if (b.i != 15)
|
|
AccessMethodsLHS.fail("add-assign effect");
|
|
System.out.println(b.i);
|
|
|
|
b.i = 0;
|
|
iBar(b).i++;
|
|
checkEffects(3);
|
|
if (b.i != 1)
|
|
AccessMethodsLHS.fail("post-increment effect");
|
|
System.out.println(b.i);
|
|
|
|
b.i = 5;
|
|
if (iBar(b).i++ != 5)
|
|
AccessMethodsLHS.fail("post-increment result");
|
|
checkEffects(4);
|
|
if (b.i != 6)
|
|
AccessMethodsLHS.fail("post-increment effect (embedded)");
|
|
System.out.println(b.i);
|
|
|
|
b.i = 1;
|
|
--iBar(b).i;
|
|
checkEffects(5);
|
|
if (b.i != 0)
|
|
AccessMethodsLHS.fail("pre-decrement effect");
|
|
|
|
b.i = 5;
|
|
if (--iBar(b).i != 4)
|
|
AccessMethodsLHS.fail("pre-decrement result");
|
|
checkEffects(6);
|
|
if (b.i != 4)
|
|
AccessMethodsLHS.fail("pre-decrement effect (embedded)");
|
|
System.out.println(b.i);
|
|
|
|
|
|
// *** Static class, Static members ***
|
|
|
|
Bar.sm(arg);
|
|
|
|
// Integer (1 word)
|
|
|
|
Bar.si = 5;
|
|
System.out.println(Bar.si);
|
|
if (Bar.si != 5)
|
|
AccessMethodsLHS.fail("simple assignment");
|
|
System.out.println(Bar.si);
|
|
|
|
if ((Bar.si += 10) != 15)
|
|
AccessMethodsLHS.fail("add-assign result");
|
|
System.out.println(Bar.si);
|
|
|
|
if (Bar.si != 15)
|
|
AccessMethodsLHS.fail("add-assign effect");
|
|
System.out.println(Bar.si);
|
|
|
|
Bar.ss = "foo";
|
|
if (!(Bar.ss += "bar").equals("foobar"))
|
|
AccessMethodsLHS.fail("concat-assign result");
|
|
System.out.println(Bar.ss);
|
|
|
|
if (!Bar.ss.equals("foobar"))
|
|
AccessMethodsLHS.fail("concat-assign effect");
|
|
System.out.println(Bar.ss);
|
|
|
|
Bar.ss = "foo";
|
|
Bar.ss += "bar";
|
|
if (!Bar.ss.equals("foobar"))
|
|
AccessMethodsLHS.fail("concat-assign effect (novalue)");
|
|
System.out.println(Bar.ss);
|
|
|
|
Bar.si = 0;
|
|
Bar.si++;
|
|
if (Bar.si != 1)
|
|
AccessMethodsLHS.fail("post-increment effect");
|
|
System.out.println(Bar.si);
|
|
|
|
Bar.si = 5;
|
|
if (Bar.si++ != 5)
|
|
AccessMethodsLHS.fail("post-increment result");
|
|
if (Bar.si != 6)
|
|
AccessMethodsLHS.fail("post-increment effect (embedded)");
|
|
System.out.println(Bar.si);
|
|
|
|
Bar.si = 1;
|
|
--Bar.si;
|
|
if (Bar.si != 0)
|
|
AccessMethodsLHS.fail("pre-decrement effect");
|
|
|
|
Bar.si = 5;
|
|
if (--Bar.si != 4)
|
|
AccessMethodsLHS.fail("pre-decrement result");
|
|
if (Bar.si != 4)
|
|
AccessMethodsLHS.fail("pre-decrement effect (embedded)");
|
|
System.out.println(Bar.si);
|
|
|
|
// Double (2 word)
|
|
|
|
Bar.sd = 5.0;
|
|
System.out.println(Bar.sd);
|
|
if (Bar.sd != 5.0)
|
|
AccessMethodsLHS.fail("simple assignment");
|
|
System.out.println(Bar.sd);
|
|
|
|
if ((Bar.sd += 10) != 15.0)
|
|
AccessMethodsLHS.fail("add-assign result");
|
|
System.out.println(Bar.sd);
|
|
|
|
if (Bar.sd != 15.0)
|
|
AccessMethodsLHS.fail("add-assign effect");
|
|
System.out.println(Bar.sd);
|
|
|
|
Bar.sd = 0.0;
|
|
Bar.sd++;
|
|
if (Bar.sd != 1.0)
|
|
AccessMethodsLHS.fail("post-increment effect");
|
|
System.out.println(Bar.sd);
|
|
|
|
Bar.sd = 5.0;
|
|
if (Bar.sd++ != 5.0)
|
|
AccessMethodsLHS.fail("post-increment result");
|
|
if (Bar.sd != 6.0)
|
|
AccessMethodsLHS.fail("post-increment effect (embedded)");
|
|
System.out.println(Bar.sd);
|
|
|
|
Bar.sd = 1.0;
|
|
--Bar.sd;
|
|
if (Bar.sd != 0.0)
|
|
AccessMethodsLHS.fail("pre-decrement effect");
|
|
|
|
Bar.sd = 5.0;
|
|
if (--Bar.sd != 4.0)
|
|
AccessMethodsLHS.fail("pre-decrement result");
|
|
if (Bar.sd != 4.0)
|
|
AccessMethodsLHS.fail("pre-decrement effect (embedded)");
|
|
System.out.println(Bar.sd);
|
|
|
|
|
|
// *** Static class, Static members (invoked via object reference) ***
|
|
|
|
b.sm(arg);
|
|
|
|
iBar(b).sm(arg);
|
|
checkEffects(101);
|
|
|
|
// Integer (1 word)
|
|
|
|
b.si = 5;
|
|
System.out.println(b.si);
|
|
if (b.si != 5)
|
|
AccessMethodsLHS.fail("simple assignment");
|
|
System.out.println(b.si);
|
|
|
|
if ((b.si += 10) != 15)
|
|
AccessMethodsLHS.fail("add-assign result");
|
|
System.out.println(b.si);
|
|
|
|
if (b.si != 15)
|
|
AccessMethodsLHS.fail("add-assign effect");
|
|
System.out.println(b.si);
|
|
|
|
b.ss = "foo";
|
|
if (!(b.ss += "bar").equals("foobar"))
|
|
AccessMethodsLHS.fail("concat-assign result");
|
|
System.out.println(b.ss);
|
|
|
|
if (!b.ss.equals("foobar"))
|
|
AccessMethodsLHS.fail("concat-assign effect");
|
|
System.out.println(b.ss);
|
|
|
|
b.ss = "foo";
|
|
b.ss += "bar";
|
|
if (!b.ss.equals("foobar"))
|
|
AccessMethodsLHS.fail("concat-assign effect (novalue)");
|
|
System.out.println(b.ss);
|
|
|
|
b.si = 0;
|
|
b.si++;
|
|
if (b.si != 1)
|
|
AccessMethodsLHS.fail("post-increment effect");
|
|
System.out.println(b.si);
|
|
|
|
b.si = 5;
|
|
if (b.si++ != 5)
|
|
AccessMethodsLHS.fail("post-increment result");
|
|
if (b.si != 6)
|
|
AccessMethodsLHS.fail("post-increment effect (embedded)");
|
|
System.out.println(b.si);
|
|
|
|
b.si = 1;
|
|
--b.si;
|
|
if (b.si != 0)
|
|
AccessMethodsLHS.fail("pre-decrement effect");
|
|
|
|
b.si = 5;
|
|
if (--b.si != 4)
|
|
AccessMethodsLHS.fail("pre-decrement result");
|
|
if (b.si != 4)
|
|
AccessMethodsLHS.fail("pre-decrement effect (embedded)");
|
|
System.out.println(b.si);
|
|
|
|
// Double (2 word)
|
|
|
|
b.sd = 5.0;
|
|
System.out.println(b.sd);
|
|
if (b.sd != 5.0)
|
|
AccessMethodsLHS.fail("simple assignment");
|
|
System.out.println(b.sd);
|
|
|
|
if ((b.sd += 10) != 15.0)
|
|
AccessMethodsLHS.fail("add-assign result");
|
|
System.out.println(b.sd);
|
|
|
|
if (b.sd != 15.0)
|
|
AccessMethodsLHS.fail("add-assign effect");
|
|
System.out.println(b.sd);
|
|
|
|
b.sd = 0.0;
|
|
b.sd++;
|
|
if (b.sd != 1.0)
|
|
AccessMethodsLHS.fail("post-increment effect");
|
|
System.out.println(b.sd);
|
|
|
|
b.sd = 5.0;
|
|
if (b.sd++ != 5.0)
|
|
AccessMethodsLHS.fail("post-increment result");
|
|
if (b.sd != 6.0)
|
|
AccessMethodsLHS.fail("post-increment effect (embedded)");
|
|
System.out.println(b.sd);
|
|
|
|
b.sd = 1.0;
|
|
--b.sd;
|
|
if (b.sd != 0.0)
|
|
AccessMethodsLHS.fail("pre-decrement effect");
|
|
|
|
b.sd = 5.0;
|
|
if (--b.sd != 4.0)
|
|
AccessMethodsLHS.fail("pre-decrement result");
|
|
if (b.sd != 4.0)
|
|
AccessMethodsLHS.fail("pre-decrement effect (embedded)");
|
|
System.out.println(b.sd);
|
|
|
|
// Integer (1 word) with side-effects in object reference
|
|
|
|
iBar(b).si = 5;
|
|
checkEffects(7);
|
|
System.out.println(b.si);
|
|
if (b.si != 5)
|
|
AccessMethodsLHS.fail("simple assignment");
|
|
System.out.println(b.si);
|
|
|
|
if ((iBar(b).si += 10) != 15)
|
|
AccessMethodsLHS.fail("add-assign result");
|
|
checkEffects(8);
|
|
System.out.println(b.si);
|
|
|
|
if (b.si != 15)
|
|
AccessMethodsLHS.fail("add-assign effect");
|
|
System.out.println(b.si);
|
|
|
|
iBar(b).si = 0;
|
|
checkEffects(9);
|
|
iBar(b).si++;
|
|
checkEffects(10);
|
|
if (b.si != 1)
|
|
AccessMethodsLHS.fail("post-increment effect");
|
|
System.out.println(b.si);
|
|
|
|
b.si = 5;
|
|
if (iBar(b).si++ != 5)
|
|
AccessMethodsLHS.fail("post-increment result");
|
|
checkEffects(11);
|
|
if (b.si != 6)
|
|
AccessMethodsLHS.fail("post-increment effect (embedded)");
|
|
System.out.println(b.si);
|
|
|
|
b.si = 1;
|
|
--iBar(b).si;
|
|
checkEffects(12);
|
|
if (b.si != 0)
|
|
AccessMethodsLHS.fail("pre-decrement effect");
|
|
|
|
b.si = 5;
|
|
if (--iBar(b).si != 4)
|
|
AccessMethodsLHS.fail("pre-decrement result");
|
|
checkEffects(13);
|
|
if (b.si != 4)
|
|
AccessMethodsLHS.fail("pre-decrement effect (embedded)");
|
|
System.out.println(b.si);
|
|
|
|
|
|
// *** Non-static class, Non-static members ***
|
|
|
|
c.m(arg);
|
|
|
|
iBaz(c).m(arg);
|
|
checkEffects(102);
|
|
|
|
// Integer (1 word)
|
|
|
|
c.i = 5;
|
|
System.out.println(c.i);
|
|
if (c.i != 5)
|
|
AccessMethodsLHS.fail("simple assignment");
|
|
System.out.println(c.i);
|
|
|
|
if ((c.i += 10) != 15)
|
|
AccessMethodsLHS.fail("add-assign result");
|
|
System.out.println(c.i);
|
|
|
|
if (c.i != 15)
|
|
AccessMethodsLHS.fail("add-assign effect");
|
|
System.out.println(c.i);
|
|
|
|
c.s = "foo";
|
|
if (!(c.s += "bar").equals("foobar"))
|
|
AccessMethodsLHS.fail("concat-assign result");
|
|
System.out.println(c.s);
|
|
|
|
if (!c.s.equals("foobar"))
|
|
AccessMethodsLHS.fail("concat-assign effect");
|
|
System.out.println(c.s);
|
|
|
|
c.s = "foo";
|
|
c.s += "bar";
|
|
if (!c.s.equals("foobar"))
|
|
AccessMethodsLHS.fail("concat-assign effect (novalue)");
|
|
System.out.println(c.s);
|
|
|
|
c.i = 0;
|
|
c.i++;
|
|
if (c.i != 1)
|
|
AccessMethodsLHS.fail("post-increment effect");
|
|
System.out.println(c.i);
|
|
|
|
c.i = 5;
|
|
if (c.i++ != 5)
|
|
AccessMethodsLHS.fail("post-increment result");
|
|
if (c.i != 6)
|
|
AccessMethodsLHS.fail("post-increment effect (embedded)");
|
|
System.out.println(c.i);
|
|
|
|
c.i = 1;
|
|
--c.i;
|
|
if (c.i != 0)
|
|
AccessMethodsLHS.fail("pre-decrement effect");
|
|
|
|
c.i = 5;
|
|
if (--c.i != 4)
|
|
AccessMethodsLHS.fail("pre-decrement result");
|
|
if (c.i != 4)
|
|
AccessMethodsLHS.fail("pre-decrement effect (embedded)");
|
|
System.out.println(c.i);
|
|
|
|
// Double (2 word)
|
|
|
|
c.d = 5.0;
|
|
System.out.println(c.d);
|
|
if (c.d != 5.0)
|
|
AccessMethodsLHS.fail("simple assignment");
|
|
System.out.println(c.d);
|
|
|
|
if ((c.d += 10) != 15.0)
|
|
AccessMethodsLHS.fail("add-assign result");
|
|
System.out.println(c.d);
|
|
|
|
if (c.d != 15.0)
|
|
AccessMethodsLHS.fail("add-assign effect");
|
|
System.out.println(c.d);
|
|
|
|
c.d = 0.0;
|
|
c.d++;
|
|
if (c.d != 1.0)
|
|
AccessMethodsLHS.fail("post-increment effect");
|
|
System.out.println(c.d);
|
|
|
|
c.d = 5.0;
|
|
if (c.d++ != 5.0)
|
|
AccessMethodsLHS.fail("post-increment result");
|
|
if (c.d != 6.0)
|
|
AccessMethodsLHS.fail("post-increment effect (embedded)");
|
|
System.out.println(c.d);
|
|
|
|
c.d = 1.0;
|
|
--c.d;
|
|
if (c.d != 0.0)
|
|
AccessMethodsLHS.fail("pre-decrement effect");
|
|
|
|
c.d = 5.0;
|
|
if (--c.d != 4.0)
|
|
AccessMethodsLHS.fail("pre-decrement result");
|
|
if (c.d != 4.0)
|
|
AccessMethodsLHS.fail("pre-decrement effect (embedded)");
|
|
System.out.println(c.d);
|
|
|
|
// Double (2 word) with side-effects in object reference
|
|
|
|
iBaz(c).d = 5.0;
|
|
checkEffects(14);
|
|
System.out.println(c.d);
|
|
if (c.d != 5.0)
|
|
AccessMethodsLHS.fail("simple assignment");
|
|
System.out.println(c.d);
|
|
|
|
if ((iBaz(c).d += 10) != 15.0)
|
|
AccessMethodsLHS.fail("add-assign result");
|
|
checkEffects(15);
|
|
System.out.println(c.d);
|
|
|
|
if (c.d != 15.0)
|
|
AccessMethodsLHS.fail("add-assign effect");
|
|
System.out.println(c.d);
|
|
|
|
c.d = 0.0;
|
|
iBaz(c).d++;
|
|
checkEffects(16);
|
|
if (c.d != 1.0)
|
|
AccessMethodsLHS.fail("post-increment effect");
|
|
System.out.println(c.d);
|
|
|
|
c.d = 5.0;
|
|
if (iBaz(c).d++ != 5.0)
|
|
AccessMethodsLHS.fail("post-increment result");
|
|
checkEffects(17);
|
|
if (c.d != 6.0)
|
|
AccessMethodsLHS.fail("post-increment effect (embedded)");
|
|
System.out.println(c.d);
|
|
|
|
c.d = 1.0;
|
|
--iBaz(c).d;
|
|
checkEffects(18);
|
|
if (c.d != 0.0)
|
|
AccessMethodsLHS.fail("pre-decrement effect");
|
|
|
|
c.d = 5.0;
|
|
if (--iBaz(c).d != 4.0)
|
|
AccessMethodsLHS.fail("pre-decrement result");
|
|
checkEffects(19);
|
|
if (c.d != 4.0)
|
|
AccessMethodsLHS.fail("pre-decrement effect (embedded)");
|
|
System.out.println(c.d);
|
|
|
|
// All done.
|
|
|
|
System.out.println("done");
|
|
}
|
|
}
|