test/tools/javac/lambda/LambdaExpr02.java

changeset 0
959103a6100f
equal deleted inserted replaced
-1:000000000000 0:959103a6100f
1 /*
2 * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /*
25 * @test
26 * @bug 8003280
27 * @summary Add lambda tests
28 * basic test for simple lambda expressions in multiple scopes
29 * @author Brian Goetz
30 * @author Maurizio Cimadamore
31 * @run main LambdaExpr01
32 */
33
34 public class LambdaExpr02 {
35
36 static int assertionCount = 0;
37
38 static void assertTrue(boolean cond) {
39 assertionCount++;
40 if (!cond)
41 throw new AssertionError();
42 }
43
44 interface S_int {
45 int m();
46 }
47
48 interface S_Integer {
49 Integer m();
50 }
51
52 interface S_int_int {
53 int m(int i);
54 }
55
56 interface S_Integer_int {
57 int m(Integer i);
58 }
59
60 interface S_int_Integer {
61 Integer m(int i);
62 }
63
64 interface S_Integer_Integer {
65 Integer m(Integer i);
66 }
67
68 static {
69 S_int s_i = ()-> { return 3; };
70 assertTrue(3 == s_i.m());
71 S_Integer s_I = ()-> { return 3; };
72 assertTrue(3 == s_I.m());
73 S_int_int s_i_i = (int x) -> { return x + 1; };
74 assertTrue(4 == s_i_i.m(3));
75 S_int_Integer s_i_I = (int x) -> { return x + 1; };
76 assertTrue(4 == s_i_I.m(3));
77 S_Integer_int s_I_i = (Integer x) -> { return x.intValue() + 1; };
78 assertTrue(4 == s_I_i.m(3));
79 S_Integer_Integer s_I_I = (Integer x) -> { return x.intValue() + 1; };
80 assertTrue(4 == s_I_I.m(3));
81 }
82
83 {
84 S_int s_i = ()-> { return 3; };
85 assertTrue(3 == s_i.m());
86 S_Integer s_I = ()-> { return 3; };
87 assertTrue(3 == s_I.m());
88 S_int_int s_i_i = (int x) -> { return x + 1; };
89 assertTrue(4 == s_i_i.m(3));
90 S_int_Integer s_i_I = (int x) -> { return x + 1; };
91 assertTrue(4 == s_i_I.m(3));
92 S_Integer_int s_I_i = (Integer x) -> { return x.intValue() + 1; };
93 assertTrue(4 == s_I_i.m(3));
94 S_Integer_Integer s_I_I = (Integer x) -> { return x.intValue() + 1; };
95 assertTrue(4 == s_I_I.m(3));
96 }
97
98 static void test1() {
99 S_int s_i = ()-> { return 3; };
100 assertTrue(3 == s_i.m());
101 S_Integer s_I = ()-> { return 3; };
102 assertTrue(3 == s_I.m());
103 S_int_int s_i_i = (int x) -> { return x + 1; };
104 assertTrue(4 == s_i_i.m(3));
105 S_int_Integer s_i_I = (int x) -> { return x + 1; };
106 assertTrue(4 == s_i_I.m(3));
107 S_Integer_int s_I_i = (Integer x) -> { return x.intValue() + 1; };
108 assertTrue(4 == s_I_i.m(3));
109 S_Integer_Integer s_I_I = (Integer x) -> { return x.intValue() + 1; };
110 assertTrue(4 == s_I_I.m(3));
111 }
112
113 void test2() {
114 S_int s_i = ()-> { return 3; };
115 assertTrue(3 == s_i.m());
116 S_Integer s_I = ()-> { return 3; };
117 assertTrue(3 == s_I.m());
118 S_int_int s_i_i = (int x) -> { return x + 1; };
119 assertTrue(4 == s_i_i.m(3));
120 S_int_Integer s_i_I = (int x) -> { return x + 1; };
121 assertTrue(4 == s_i_I.m(3));
122 S_Integer_int s_I_i = (Integer x) -> { return x.intValue() + 1; };
123 assertTrue(4 == s_I_i.m(3));
124 S_Integer_Integer s_I_I = (Integer x) -> { return x.intValue() + 1; };
125 assertTrue(4 == s_I_I.m(3));
126 }
127
128 public static void main(String[] args) {
129 test1();
130 new LambdaExpr02().test2();
131 assertTrue(assertionCount == 24);
132 }
133 }

mercurial