1*af87fb4bSXin Li /* 2*af87fb4bSXin Li * Copyright 2020 Google LLC 3*af87fb4bSXin Li * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. 4*af87fb4bSXin Li * 5*af87fb4bSXin Li * Licensed under the Apache License, Version 2.0 (the "License"); 6*af87fb4bSXin Li * you may not use this file except in compliance with the License. 7*af87fb4bSXin Li * You may obtain a copy of the License at 8*af87fb4bSXin Li * 9*af87fb4bSXin Li * http://www.apache.org/licenses/LICENSE-2.0 10*af87fb4bSXin Li * 11*af87fb4bSXin Li * Unless required by applicable law or agreed to in writing, software 12*af87fb4bSXin Li * distributed under the License is distributed on an "AS IS" BASIS, 13*af87fb4bSXin Li * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*af87fb4bSXin Li * See the License for the specific language governing permissions and 15*af87fb4bSXin Li * limitations under the License. 16*af87fb4bSXin Li */ 17*af87fb4bSXin Li 18*af87fb4bSXin Li // TEST PROCESSOR: VisibilityProcessor 19*af87fb4bSXin Li // EXPECTED: 20*af87fb4bSXin Li // publicFun: PUBLIC,visible in A, B, D: true, true, true 21*af87fb4bSXin Li // packageFun: JAVA_PACKAGE,visible in A, B, D: true, false, true 22*af87fb4bSXin Li // privateFun: PRIVATE,visible in A, B, D: false, false, false 23*af87fb4bSXin Li // protectedFun: PROTECTED,visible in A, B, D: true, false, true 24*af87fb4bSXin Li // <init>: PUBLIC,visible in A, B, D: true, true, true 25*af87fb4bSXin Li // javaPackageField: JAVA_PACKAGE,visible in A, B, D: true, false, true 26*af87fb4bSXin Li // x: INTERNAL,visible in A, B, D: false, false, false 27*af87fb4bSXin Li // y: PROTECTED,visible in A, B, D: true, false, true 28*af87fb4bSXin Li // y: PUBLIC,visible in A, B, D: true, true, true 29*af87fb4bSXin Li // LibEnumJava: valueOf: PUBLIC 30*af87fb4bSXin Li // LibEnumJava: values: PUBLIC 31*af87fb4bSXin Li // LibEnumJava: <init>: PRIVATE 32*af87fb4bSXin Li // LibEnum: valueOf: PUBLIC 33*af87fb4bSXin Li // LibEnum: values: PUBLIC 34*af87fb4bSXin Li // LibEnum: <init>: PRIVATE 35*af87fb4bSXin Li // Enum: <init>: PRIVATE 36*af87fb4bSXin Li // Enum: values: PUBLIC 37*af87fb4bSXin Li // Enum: valueOf: PUBLIC 38*af87fb4bSXin Li // KtEnum: <init>: PRIVATE 39*af87fb4bSXin Li // KtEnumWithVal: <init>: PRIVATE 40*af87fb4bSXin Li // END 41*af87fb4bSXin Li 42*af87fb4bSXin Li // MODULE: lib 43*af87fb4bSXin Li // FILE: JavaClass.java 44*af87fb4bSXin Li public class JavaClass { 45*af87fb4bSXin Li int javaPackageField; 46*af87fb4bSXin Li } 47*af87fb4bSXin Li 48*af87fb4bSXin Li // FILE: LibEnumJava.java 49*af87fb4bSXin Li public enum LibEnumJava { 50*af87fb4bSXin Li R(0),G(1),B(2); 51*af87fb4bSXin Li private final int v; 52*af87fb4bSXin Li LibEnumJava(int v) { 53*af87fb4bSXin Li this.v = v; 54*af87fb4bSXin Li } 55*af87fb4bSXin Li } 56*af87fb4bSXin Li 57*af87fb4bSXin Li // FILE: lib.kt 58*af87fb4bSXin Li open class KotlinClass { 59*af87fb4bSXin Li open internal val x: Int = 0 60*af87fb4bSXin Li open protected val y: Int = 0 61*af87fb4bSXin Li } 62*af87fb4bSXin Li 63*af87fb4bSXin Li enum class LibEnum(val value: Int) { 64*af87fb4bSXin Li A(0), B(1), C(2); 65*af87fb4bSXin Li } 66*af87fb4bSXin Li 67*af87fb4bSXin Li // MODULE: main(lib) 68*af87fb4bSXin Li // FILE: a.kt 69*af87fb4bSXin Li annotation class TestA 70*af87fb4bSXin Li annotation class TestB 71*af87fb4bSXin Li annotation class TestD 72*af87fb4bSXin Li 73*af87fb4bSXin Li @TestA 74*af87fb4bSXin Li class A : C() { 75*af87fb4bSXin Li } 76*af87fb4bSXin Li 77*af87fb4bSXin Li @TestD 78*af87fb4bSXin Li class D {} 79*af87fb4bSXin Li 80*af87fb4bSXin Li class KotlinSubClass : KotlinClass() { 81*af87fb4bSXin Li public override val y = 1 82*af87fb4bSXin Li } 83*af87fb4bSXin Li 84*af87fb4bSXin Li enum class KtEnum { 85*af87fb4bSXin Li A,B,C 86*af87fb4bSXin Li } 87*af87fb4bSXin Li 88*af87fb4bSXin Li enum class KtEnumWithVal(val a: Int) { 89*af87fb4bSXin Li A(0), B(1), C(2) 90*af87fb4bSXin Li } 91*af87fb4bSXin Li 92*af87fb4bSXin Li // FILE: C.java 93*af87fb4bSXin Li class C { <lambda>null94*af87fb4bSXin Li public int publicFun() { 95*af87fb4bSXin Li return 1; 96*af87fb4bSXin Li } 97*af87fb4bSXin Li 98*af87fb4bSXin Li int packageFun() { 99*af87fb4bSXin Li return 1; 100*af87fb4bSXin Li } 101*af87fb4bSXin Li <lambda>null102*af87fb4bSXin Li private int privateFun() { 103*af87fb4bSXin Li return 1; 104*af87fb4bSXin Li } 105*af87fb4bSXin Li <lambda>null106*af87fb4bSXin Li protected int protectedFun() { 107*af87fb4bSXin Li return 1; 108*af87fb4bSXin Li } 109*af87fb4bSXin Li } 110*af87fb4bSXin Li 111*af87fb4bSXin Li // FILE: Enum.java 112*af87fb4bSXin Li public enum Enum { 113*af87fb4bSXin Li Y,U,V; 114*af87fb4bSXin Li private final int v; 115*af87fb4bSXin Li Enum(int v) { 116*af87fb4bSXin Li this.v = v; 117*af87fb4bSXin Li } 118*af87fb4bSXin Li } 119*af87fb4bSXin Li // FILE: b.kt 120*af87fb4bSXin Li package somePackage 121*af87fb4bSXin Li 122*af87fb4bSXin Li import TestB 123*af87fb4bSXin Li 124*af87fb4bSXin Li @TestB 125*af87fb4bSXin Li class B 126