jdk-24/test/langtools/tools/javac/lambda/T8129740/Universe.java.out
Maurizio Cimadamore 4ce8822b6c 8334037: Local class creation in lambda in pre-construction context crashes javac
8333313: NullPointerException in lambda instantiating an inner local class in prologue
8333766: Stack overflow with anonymous class in super() parameter
8334679: Wrong bug number in regression test for JDK-8334252

Co-authored-by: Archie Cobbs <acobbs@openjdk.org>
Reviewed-by: jlahoda, vromero
2024-06-26 09:12:02 +00:00

97 lines
4.6 KiB
Plaintext

class Universe {
public String name;
public int galaxiesCount;
public Universe(String name, int galaxiesCount) {
super();
this.name = name;
this.galaxiesCount = galaxiesCount;
}
public String toString() {
return "Universe" + name + " of " + galaxiesCount + " galaxies";
}
class Galaxy {
String name;
private int starsCount;
Galaxy(String name, int starsCount) {
super();
this.name = name;
this.starsCount = starsCount;
}
public String toString() {
return "galaxy " + name + " of " + starsCount + " solar systems";
}
int starsCount() {
return starsCount;
}
private String name() {
return name;
}
class SolarSystem {
String name;
int planetsCount;
SolarSystem(String name, int planetsCount) {
super();
this.name = name;
this.planetsCount = planetsCount;
}
public String toString() {
return "Solar System of " + name + " with " + planetsCount + " planets";
}
int planetsCount() {
return planetsCount;
}
SolarSystem copy(SolarSystem s) {
return s;
}
class Planet {
String name;
int moonsCount;
Planet(String name, int moonsCount, Runnable r) {
super();
this.name = name;
this.moonsCount = moonsCount;
r.run();
}
Planet(String name, int moonsCount) {
this(name, moonsCount, ()->{
String n = name;
StringBuffer buf = new StringBuffer();
buf.append("This planet belongs to the galaxy " + Galaxy.this.name + " with " + starsCount + " stars\n");
buf.append("This planet belongs to the galaxy " + Universe.Galaxy.this.name + " with " + starsCount() + " stars\n");
buf.append("This planet belongs to the galaxy " + Galaxy.this.name() + " with " + starsCount() + " stars\n");
buf.append("This planet belongs to the galaxy " + Universe.Galaxy.this.name() + " with " + (Universe.Galaxy.this).starsCount() + " stars\n");
buf.append("This planet belongs to the solar system " + SolarSystem.this.name + " with " + planetsCount + " planets\n");
buf.append("This planet belongs to the solar system " + Galaxy.SolarSystem.this.name + " with " + planetsCount() + " planets\n");
buf.append("This planet belongs to the solar system " + (SolarSystem.this).name + " with " + planetsCount + " planets\n");
buf.append("This planet belongs to the solar system " + Universe.Galaxy.SolarSystem.this.name + " with " + Universe.Galaxy.SolarSystem.this.planetsCount + " planets\n");
buf.append("This planet belongs to the solar system " + Universe.Galaxy.SolarSystem.this.name.toLowerCase().toUpperCase() + " with " + Universe.Galaxy.SolarSystem.this.planetsCount + " planets\n");
buf.append("This planet belongs to the solar system " + copy(Universe.Galaxy.SolarSystem.this).name.toLowerCase().toUpperCase() + " with " + Universe.Galaxy.SolarSystem.this.planetsCount + " planets\n");
if (!buf.toString().equals(output)) throw new AssertionError("Unexpected value\n" + buf);
});
}
static final String output = "This planet belongs to the galaxy Mily way with 23456789 stars\nThis planet belongs to the galaxy Mily way with 23456789 stars\nThis planet belongs to the galaxy Mily way with 23456789 stars\nThis planet belongs to the galaxy Mily way with 23456789 stars\nThis planet belongs to the solar system Sun with 9 planets\nThis planet belongs to the solar system Sun with 9 planets\nThis planet belongs to the solar system Sun with 9 planets\nThis planet belongs to the solar system Sun with 9 planets\nThis planet belongs to the solar system SUN with 9 planets\nThis planet belongs to the solar system SUN with 9 planets\n";
public String toString() {
return "Planet " + name + " with " + moonsCount + " moon(s)";
}
}
}
}
}