/* * Copyright 2022 Google LLC * Copyright 2010-2022 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: RawTypesProcessor // EXPECTED: // barRaw // barRawField // barRawGet // barRawGetCompiled // fooRaw // fooRawField // fooRawGet // fooRawGetCompiled // p4 // p5 // END // MODULE: lib // FILE: dummy.kt // FILE: Api.java public interface Api {} // FILE: Foo.java public class Foo {} // FILE: Bar.java public class Bar {} // FILE: UsageCompiled.java public abstract class UsageCompiled { public static void usage( Foo fooWildcardCompiled, Foo fooWildcardExCompiled, Bar barWildcardCompiled, Bar barWildcardExCompiled, Foo fooRawCompiled, Bar barRawCompiled ) {} public abstract Foo fooWildcardGetCompiled(); public abstract Foo fooWildcardExGetCompiled(); public abstract Bar barWildcardGetCompiled(); public abstract Bar barWildcardExGetCompiled(); public abstract Foo fooRawGetCompiled(); public abstract Bar barRawGetCompiled(); } // MODULE: main(lib) // FILE: usage.kt fun usage( fooStar: Foo<*>, fooIn: Foo, fooOut: Foo, barStar: Bar<*>, ) = Unit val fooStarProp: Foo<*> val fooInProp: Foo val fooOutProp: Foo val barStarProp: Bar<*> // FILE: Usage.java public abstract class Usage { public Foo fooWildcardField; public Foo fooWildcardExField; public Bar barWildcardField; public Bar barWildcardExField; public Foo fooRawField; public Bar barRawField; public static void usage( Foo fooWildcard, Foo fooWildcardEx, Bar barWildcard, Bar barWildcardEx, Foo fooRaw, Bar barRaw ) {} public abstract Foo fooWildcardGet(); public abstract Foo fooWildcardExGet(); public abstract Bar barWildcardGet(); public abstract Bar barWildcardExGet(); public abstract Foo fooRawGet(); public abstract Bar barRawGet(); }