test/tools/javac/lambda/MethodReference75.java

Tue, 29 Mar 2016 10:48:49 +0000

author
dbuck
date
Tue, 29 Mar 2016 10:48:49 +0000
changeset 3102
e74dd6df4d4c
permissions
-rw-r--r--

8143647: Javac compiles method reference that allows results in an IllegalAccessError
Summary: Lambda implementation method synthesized by javac should not mention inaccessible types.
Reviewed-by: mcimadamore

dbuck@3102 1 /*
dbuck@3102 2 * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
dbuck@3102 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
dbuck@3102 4 *
dbuck@3102 5 * This code is free software; you can redistribute it and/or modify it
dbuck@3102 6 * under the terms of the GNU General Public License version 2 only, as
dbuck@3102 7 * published by the Free Software Foundation.
dbuck@3102 8 *
dbuck@3102 9 * This code is distributed in the hope that it will be useful, but WITHOUT
dbuck@3102 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
dbuck@3102 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
dbuck@3102 12 * version 2 for more details (a copy is included in the LICENSE file that
dbuck@3102 13 * accompanied this code).
dbuck@3102 14 *
dbuck@3102 15 * You should have received a copy of the GNU General Public License version
dbuck@3102 16 * 2 along with this work; if not, write to the Free Software Foundation,
dbuck@3102 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
dbuck@3102 18 *
dbuck@3102 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
dbuck@3102 20 * or visit www.oracle.com if you need additional information or have any
dbuck@3102 21 * questions.
dbuck@3102 22 */
dbuck@3102 23
dbuck@3102 24 /*
dbuck@3102 25 * @test
dbuck@3102 26 * @bug 8143647
dbuck@3102 27 * @summary Javac compiles method reference that allows results in an IllegalAccessError
dbuck@3102 28 * @run main MethodReference75
dbuck@3102 29 */
dbuck@3102 30
dbuck@3102 31 import pkg.PublicDerived8143647;
dbuck@3102 32
dbuck@3102 33 public class MethodReference75 {
dbuck@3102 34 public static void main(String[] args) {
dbuck@3102 35 if (java.util.Arrays
dbuck@3102 36 .asList(new PublicDerived8143647())
dbuck@3102 37 .stream()
dbuck@3102 38 .map(PublicDerived8143647::getX)
dbuck@3102 39 .findFirst()
dbuck@3102 40 .get()
dbuck@3102 41 .equals("PackagePrivateBase"))
dbuck@3102 42 System.out.println("OK");
dbuck@3102 43 else
dbuck@3102 44 throw new AssertionError("Unexpected output");
dbuck@3102 45 }
dbuck@3102 46 }

mercurial