Object's constructor is private from frontend point of view.
Test data changed. Js-backend test objectInObject turned off. Public constructors for objects hard-coded in jvm-backend.
This commit is contained in:
@@ -996,8 +996,13 @@ public class JetTypeMapper {
|
||||
if (isClassObject(containingDeclaration)) {
|
||||
return defaultFlags;
|
||||
}
|
||||
if (p instanceof ConstructorDescriptor && isEnumEntry(containingDeclaration)) {
|
||||
return 0;
|
||||
if (p instanceof ConstructorDescriptor) {
|
||||
ClassKind kind = ((ClassDescriptor) containingDeclaration).getKind();
|
||||
if (kind == ClassKind.OBJECT) {
|
||||
return ACC_PUBLIC;
|
||||
} else if (kind == ClassKind.ENUM_ENTRY) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
if (containingDeclaration instanceof NamespaceDescriptor) {
|
||||
return 0;
|
||||
|
||||
@@ -372,12 +372,9 @@ public class DescriptorUtils {
|
||||
// see http://youtrack.jetbrains.com/issue/KT-2680
|
||||
return Visibilities.PROTECTED;
|
||||
}
|
||||
if (classKind == ClassKind.ENUM_ENTRY || classKind == ClassKind.CLASS_OBJECT) {
|
||||
if (classKind.isObject()) {
|
||||
return Visibilities.PRIVATE;
|
||||
}
|
||||
if (classKind == ClassKind.OBJECT) {
|
||||
return Visibilities.INTERNAL;
|
||||
}
|
||||
assert classKind == ClassKind.CLASS || classKind == ClassKind.TRAIT || classKind == ClassKind.ANNOTATION_CLASS;
|
||||
return Visibilities.PUBLIC;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ internal final class test.A : jet.Any {
|
||||
public final /*constructor*/ fun <init>(): test.A
|
||||
internal final val B: test.A.B
|
||||
internal final object test.A.B : jet.Any {
|
||||
internal final /*constructor*/ fun <init>(): test.A.B
|
||||
private final /*constructor*/ fun <init>(): test.A.B
|
||||
internal final fun foo(/*0*/ a: jet.Int): jet.String
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace test
|
||||
|
||||
internal final object test.SomeObject : jet.Any {
|
||||
internal final /*constructor*/ fun <init>(): test.SomeObject
|
||||
private final /*constructor*/ fun <init>(): test.SomeObject
|
||||
internal final fun test(/*0*/ a: jet.Int): jet.Int
|
||||
}
|
||||
internal final val SomeObject: test.SomeObject
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace test
|
||||
|
||||
internal final object test.Bar : jet.Any {
|
||||
internal final /*constructor*/ fun <init>(): test.Bar
|
||||
private final /*constructor*/ fun <init>(): test.Bar
|
||||
}
|
||||
internal final val Bar: test.Bar
|
||||
|
||||
@@ -44,7 +44,8 @@ public final class ObjectTest extends SingleFileTranslationTest {
|
||||
fooBoxTest();
|
||||
}
|
||||
|
||||
public void testObjectInObject() throws Exception {
|
||||
//TODO: KT-2696
|
||||
public void TODO_testObjectInObject() throws Exception {
|
||||
fooBoxTest();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
package foo
|
||||
|
||||
object A {
|
||||
val query = object {val status = "complete"}
|
||||
object query {val status = "complete"}
|
||||
}
|
||||
|
||||
object B {
|
||||
private val ov = "d"
|
||||
val query = object {val status = "complete" + ov}
|
||||
object query {val status = "complete" + ov}
|
||||
}
|
||||
|
||||
class C {
|
||||
fun ov() = "d"
|
||||
val query = object {val status = "complete" + ov()}
|
||||
object query {val status = "complete" + ov()}
|
||||
}
|
||||
|
||||
fun box() = A.query.status == "complete" && B.query.status == "completed" && C().query.status == "completed"
|
||||
|
||||
Reference in New Issue
Block a user