test/tools/javac/lambda/LambdaExpr01.java

Tue, 12 Mar 2013 16:02:43 +0000

author
mcimadamore
date
Tue, 12 Mar 2013 16:02:43 +0000
changeset 1628
5ddecb91d843
parent 0
959103a6100f
permissions
-rw-r--r--

8009545: Graph inference: dependencies between inference variables should be set during incorporation
Summary: Move all transitivity checks into the incorporation round
Reviewed-by: jjg

     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  */
    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  */
    34 public class LambdaExpr01 {
    36     static int assertionCount = 0;
    38     static void assertTrue(boolean cond) {
    39         assertionCount++;
    40         if (!cond)
    41             throw new AssertionError();
    42     }
    44     interface S_int {
    45         int m();
    46     }
    48     interface S_Integer {
    49         Integer m();
    50     }
    52     interface S_int_int {
    53         int m(int i);
    54     }
    56     interface S_Integer_int {
    57         int m(Integer i);
    58     }
    60     interface S_int_Integer {
    61         Integer m(int i);
    62     }
    64     interface S_Integer_Integer {
    65         Integer m(Integer i);
    66     }
    68     static {
    69         S_int s_i = ()-> 3;
    70         assertTrue(3 == s_i.m());
    71         S_Integer s_I = ()-> 3;
    72         assertTrue(3 == s_I.m());
    73         S_int_int s_i_i = (int x)-> x+1;
    74         assertTrue(4 == s_i_i.m(3));
    75         S_int_Integer s_i_I = (int x)-> x+1;
    76         assertTrue(4 == s_i_I.m(3));
    77         S_Integer_int s_I_i = (Integer x) -> x.intValue() + 1;
    78         assertTrue(4 == s_I_i.m(3));
    79         S_Integer_Integer s_I_I = (Integer x) -> x.intValue() + 1;
    80         assertTrue(4 == s_I_I.m(3));
    81     }
    83     {
    84         S_int s_i = ()-> 3;
    85         assertTrue(3 == s_i.m());
    86         S_Integer s_I = ()-> 3;
    87         assertTrue(3 == s_I.m());
    88         S_int_int s_i_i = (int x)-> x+1;
    89         assertTrue(4 == s_i_i.m(3));
    90         S_int_Integer s_i_I = (int x)-> x+1;
    91         assertTrue(4 == s_i_I.m(3));
    92         S_Integer_int s_I_i = (Integer x) -> x.intValue() + 1;
    93         assertTrue(4 == s_I_i.m(3));
    94         S_Integer_Integer s_I_I = (Integer x) -> x.intValue() + 1;
    95         assertTrue(4 == s_I_I.m(3));
    96     }
    98     static void test1() {
    99         S_int s_i = ()-> 3;
   100         assertTrue(3 == s_i.m());
   101         S_Integer s_I = ()-> 3;
   102         assertTrue(3 == s_I.m());
   103         S_int_int s_i_i = (int x)-> x+1;
   104         assertTrue(4 == s_i_i.m(3));
   105         S_int_Integer s_i_I = (int x)-> x+1;
   106         assertTrue(4 == s_i_I.m(3));
   107         S_Integer_int s_I_i = (Integer x) -> x.intValue() + 1;
   108         assertTrue(4 == s_I_i.m(3));
   109         S_Integer_Integer s_I_I = (Integer x) -> x.intValue() + 1;
   110         assertTrue(4 == s_I_I.m(3));
   111     }
   113     void test2() {
   114         S_int s_i = ()-> 3;
   115         assertTrue(3 == s_i.m());
   116         S_Integer s_I = ()-> 3;
   117         assertTrue(3 == s_I.m());
   118         S_int_int s_i_i = (int x)-> x+1;
   119         assertTrue(4 == s_i_i.m(3));
   120         S_int_Integer s_i_I = (int x)-> x+1;
   121         assertTrue(4 == s_i_I.m(3));
   122         S_Integer_int s_I_i = (Integer x) -> x.intValue() + 1;
   123         assertTrue(4 == s_I_i.m(3));
   124         S_Integer_Integer s_I_I = (Integer x) -> x.intValue() + 1;
   125         assertTrue(4 == s_I_I.m(3));
   126     }
   128     public static void main(String[] args) {
   129         test1();
   130         new LambdaExpr01().test2();
   131         assertTrue(assertionCount == 24);
   132     }
   133 }

mercurial