/* * Copyright 2020 Google LLC * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // WITH_RUNTIME // TEST PROCESSOR: TypeParameterReferenceProcessor // EXPECTED: // LibFoo: false // SelfReferencing: false // kotlin.String: false // SelfReferencing.T: false // Foo.T1: true // Foo.bar.T2: false // foo.T3: false // T // List // T // MutableList<(T..T?)> // (SelfReferencingJava<(T..T?)>..SelfReferencingJava<(T..T?)>?) // (T1..T1?) // END // MODULE: lib // FILE: lib.kt interface LibFoo { val v: T val w: List } // FILE: LibSR.kt package lib; class SelfReferencing> // FILE: JavaLib.java import java.util.List; interface JavaLib { public T genericFun(); public List list(); } // MODULE: main(lib) // FILE: main.kt class SelfReferencing> class Foo { inner class Bar { val v: T1? } fun bar(p: T2) = 1 val libFoo: LibFoo } fun foo(p: T3) = 1 // FILE: SelfReferencingJava.java public class SelfReferencingJava> { } // FILE: BoundedTypeParameter.java public class BoundedTypeParameter { static T2 method(T1 input) { return null; } }