summaryrefslogtreecommitdiff
path: root/libjava/testsuite/libjava.lang/err5.java
blob: f9e95b635048da29f1b365672544a0e5c8b5080a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*--------------------------------------------------------------------------*/
/* file_name  : err5.java                                              */
/*            :                                                             */
/* Cause      : Evaluation order of method argument is not correct.         */
/*            :                                                             */
/* Message    : NG                                                          */
/*            : a:[1]-->[2]                                                 */
/*            : b:[3]-->[3]                                                 */
/*            : c:[2]-->[2]                                                 */
/*            :                                                             */
/* Note       : JLS 15.6 Evaluation Order                                   */
/*                 S15.6.4 Argument Lists are Evaluated Left-to-Right(p309) */
/*             [Each argument expression appears to be fully evaluated      */
/*              before any part of any argument expression to its right.]   */
/*--------------------------------------------------------------------------*/

public class err5 {
  public static void main(String[] args) {
    int x = 1;

    err5 obj = new err5();
    obj.print(x, x = 3, x = 2);
  }

  void print(int a, int b, int c) {
    if ( a == 1 && b == 3 && c == 2 ) {
      System.out.println("OK");
    } else {
      System.out.println("NG");
      System.out.println("a:[1]-->["+a+"]");
      System.out.println("b:[3]-->["+b+"]");
      System.out.println("c:[2]-->["+c+"]");
    }
  }
}