test/tools/javac/lambda/8071432/T8071432.java

Thu, 12 Feb 2015 10:16:19 +0530

author
vromero
date
Thu, 12 Feb 2015 10:16:19 +0530
changeset 2730
a513711d6171
permissions
-rw-r--r--

8069545: javac shouldn't check nested stuck lambdas during overload resolution
Summary: Nested lambdas should not be considered while overload resolution is in progress
Reviewed-by: mcimadamore
Contributed-by: vicente.romero@oracle.com, srikanth.adayapalam@oracle.com

vromero@2730 1 /*
vromero@2730 2 * @test /nodynamiccopyright/
vromero@2730 3 * @bug 8071432
vromero@2730 4 * @summary structural most specific and stuckness
vromero@2730 5 * @compile/fail/ref=T8071432.out -XDrawDiagnostics T8071432.java
vromero@2730 6 */
vromero@2730 7
vromero@2730 8 import java.util.Arrays;
vromero@2730 9 import java.util.Collection;
vromero@2730 10
vromero@2730 11 class T8071432 {
vromero@2730 12
vromero@2730 13 static class Point {
vromero@2730 14
vromero@2730 15 private double x, y;
vromero@2730 16
vromero@2730 17 public Point(double x, double y) {
vromero@2730 18 this.x = x;
vromero@2730 19 this.y = y;
vromero@2730 20 }
vromero@2730 21
vromero@2730 22 public double getX() {
vromero@2730 23 return x;
vromero@2730 24 }
vromero@2730 25
vromero@2730 26 public double getY() {
vromero@2730 27 return y;
vromero@2730 28 }
vromero@2730 29
vromero@2730 30 public double distance(Point p) {
vromero@2730 31 return Math.sqrt((this.x - p.x) * (this.x - p.x) +
vromero@2730 32 (this.y - p.y) * (this.y - p.y));
vromero@2730 33 }
vromero@2730 34
vromero@2730 35 public double distance() {
vromero@2730 36 return Math.sqrt(this.x * this.x + this.y * this.y);
vromero@2730 37 }
vromero@2730 38
vromero@2730 39 public String toString() {
vromero@2730 40 return "(" + x + ":" + y + ")";
vromero@2730 41 }
vromero@2730 42 }
vromero@2730 43
vromero@2730 44 public static void main(String[] args) {
vromero@2730 45 Collection<Point> c = Arrays.asList(new Point(1.0, 0.1));
vromero@2730 46 System.out.println("------- 1 ---------------");
vromero@2730 47 System.out.println(c.stream().reduce(0.0,
vromero@2730 48 (s, p) -> s += p.distance(), (d1, d2) -> 0));
vromero@2730 49 }
vromero@2730 50 }

mercurial