Exposed visibility checking, a set of exposed visibility tests, some test fixes

Effective visibility mechanism introduced.
Local is considered as public, java protected as Kotlin protected, java package private as Kotlin private.
This commit is contained in:
Mikhail Glukhikh
2015-10-01 21:10:50 +03:00
committed by Mikhail Glukhikh
parent fa32aa2950
commit 0cc861f00b
73 changed files with 965 additions and 108 deletions
@@ -1,5 +1,5 @@
// FILE: Super.java
class Super {
public class Super {
void foo(Runnable r) {
}
}
@@ -9,8 +9,8 @@ public final class Sub : Super {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public/*package*/ open class Super {
public/*package*/ constructor Super()
public open class Super {
public constructor Super()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public/*package*/ open fun foo(/*0*/ r: java.lang.Runnable!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -1,6 +1,6 @@
// FILE: B.java
abstract class B implements A {
public abstract class B implements A {
public int size = 1;
}
@@ -9,8 +9,8 @@ public interface A {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public/*package*/ abstract class B : A {
public/*package*/ constructor B()
public abstract class B : A {
public constructor B()
public final var size: kotlin.Int
public abstract override /*1*/ /*fake_override*/ val size: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -16,29 +16,29 @@ class MyJavaClass {
//FILE:a.kt
package a
val mc = MyJavaClass()
<!EXPOSED_PROPERTY_TYPE!>val mc = MyJavaClass()<!>
val x = MyJavaClass.staticMethod()
val y = MyJavaClass.NestedClass.staticMethodOfNested()
val z = MyJavaClass.NestedClass()
<!EXPOSED_PROPERTY_TYPE!>val z = MyJavaClass.NestedClass()<!>
//FILE: b.kt
package b
import a.<!INVISIBLE_REFERENCE!>MyJavaClass<!>
val mc1 = <!INVISIBLE_MEMBER!>MyJavaClass<!>()
<!EXPOSED_PROPERTY_TYPE!>val mc1 = <!INVISIBLE_MEMBER!>MyJavaClass<!>()<!>
val x = MyJavaClass.<!INVISIBLE_MEMBER!>staticMethod<!>()
val y = MyJavaClass.NestedClass.<!INVISIBLE_MEMBER!>staticMethodOfNested<!>()
val z = MyJavaClass.<!INVISIBLE_MEMBER!>NestedClass<!>()
<!EXPOSED_PROPERTY_TYPE!>val z = MyJavaClass.<!INVISIBLE_MEMBER!>NestedClass<!>()<!>
//FILE: c.kt
package a.c
import a.<!INVISIBLE_REFERENCE!>MyJavaClass<!>
val mc1 = <!INVISIBLE_MEMBER!>MyJavaClass<!>()
<!EXPOSED_PROPERTY_TYPE!>val mc1 = <!INVISIBLE_MEMBER!>MyJavaClass<!>()<!>
val x = MyJavaClass.<!INVISIBLE_MEMBER!>staticMethod<!>()
val y = MyJavaClass.NestedClass.<!INVISIBLE_MEMBER!>staticMethodOfNested<!>()
val z = MyJavaClass.<!INVISIBLE_MEMBER!>NestedClass<!>()
<!EXPOSED_PROPERTY_TYPE!>val z = MyJavaClass.<!INVISIBLE_MEMBER!>NestedClass<!>()<!>
@@ -1,6 +1,6 @@
// FILE: B.java
abstract class B implements A {
public abstract class B implements A {
private int size = 1;
}
@@ -9,8 +9,8 @@ public interface A {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public/*package*/ abstract class B : A {
public/*package*/ constructor B()
public abstract class B : A {
public constructor B()
private final var size: kotlin.Int
public abstract override /*1*/ /*fake_override*/ val size: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -1,10 +1,10 @@
// FILE: Bad.java
class Bad<T extends Bad> {}
public class Bad<T extends Bad> {}
// FILE: X.java
class X {
public class X {
Bad foo() {return null;}
}
@@ -2,15 +2,15 @@ package
public fun foo(/*0*/ p: X): Bad<(raw) Bad<*>!>!
public/*package*/ open class Bad</*0*/ T : Bad<(raw) Bad<*>>!> {
public/*package*/ constructor Bad</*0*/ T : Bad<(raw) Bad<*>>!>()
public open class Bad</*0*/ T : Bad<(raw) Bad<*>>!> {
public constructor Bad</*0*/ T : Bad<(raw) Bad<*>>!>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public/*package*/ open class X {
public/*package*/ constructor X()
public open class X {
public constructor X()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public/*package*/ open fun foo(): Bad<(raw) Bad<*>!>!
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
+1 -1
View File
@@ -10,6 +10,6 @@ class K : J<String>(), ML<String>
import java.util.*;
class J<T> extends ML<T> {
public class J<T> extends ML<T> {
public List<T> foo() { return null; }
}
@@ -1,7 +1,7 @@
package
public/*package*/ open class J</*0*/ T : kotlin.Any!> : ML<T!> {
public/*package*/ constructor J</*0*/ T : kotlin.Any!>()
public open class J</*0*/ T : kotlin.Any!> : ML<T!> {
public constructor J</*0*/ T : kotlin.Any!>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ fun foo(): kotlin.MutableList<T!>
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int