blob: 1326c8f68f67adecba490887af99f7405e12b6f6 [file] [log] [blame]
// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package nesthostexample;
public class BasicNestHostWithInnerClassConstructors {
public String field;
private BasicNestHostWithInnerClassConstructors(String field) {
this.field = field;
}
private BasicNestHostWithInnerClassConstructors(int intVal) {
this.field = String.valueOf(intVal);
}
public static BasicNestedClass createNestedInstance(String field) {
return new BasicNestedClass(field);
}
public static class BasicNestedClass {
public String field;
private BasicNestedClass(String field) {
this.field = field;
}
private BasicNestedClass(Object unused, Object field, Object alsoUnused) {
this.field = field.toString() + "UnusedConstructor";
}
private BasicNestedClass(UnInstantiatedClass instance, UnInstantiatedClass otherInstance) {
this.field = "nothing";
}
public static BasicNestHostWithInnerClassConstructors createOuterInstance(String field) {
return new BasicNestHostWithInnerClassConstructors(field);
}
}
public static class UnInstantiatedClass {}
public static void main(String[] args) {
BasicNestHostWithInnerClassConstructors outer = BasicNestedClass.createOuterInstance("field");
BasicNestedClass inner =
BasicNestHostWithInnerClassConstructors.createNestedInstance("nest1SField");
BasicNestHostWithInnerClassConstructors noBridge =
new BasicNestHostWithInnerClassConstructors(1);
BasicNestedClass unusedParamConstructor =
new BasicNestedClass(new Object(), "innerField", new Object());
BasicNestedClass uninstantiatedParamConstructor = new BasicNestedClass(null, null);
System.out.println(outer.field);
System.out.println(inner.field);
System.out.println(noBridge.field);
System.out.println(unusedParamConstructor.field);
System.out.println(uninstantiatedParamConstructor.field);
}
}