From d7c77e522c51dd1e32f9c4aabdf062e373531cf2 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 16 May 2018 18:22:39 +0200 Subject: [PATCH] Do not render UnsafeVariance in tests on built-ins This fixes LoadBuiltInsTest which failed because UnsafeVariance was rendered in the lazy resolve result, but was not in the deserialized result (because it has SOURCE retention) --- .../AbstractBuiltInsWithJDKMembersTest.kt | 40 +++++++++---------- .../builtins/LoadBuiltinsTest.java | 21 +--------- 2 files changed, 20 insertions(+), 41 deletions(-) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/serialization/builtins/AbstractBuiltInsWithJDKMembersTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/serialization/builtins/AbstractBuiltInsWithJDKMembersTest.kt index a914be7078c..e0b238ba627 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/serialization/builtins/AbstractBuiltInsWithJDKMembersTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/serialization/builtins/AbstractBuiltInsWithJDKMembersTest.kt @@ -1,17 +1,6 @@ /* - * Copyright 2010-2017 JetBrains s.r.o. - * - * 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. + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.serialization.builtins @@ -32,14 +21,7 @@ import org.jetbrains.kotlin.test.util.RecursiveDescriptorComparator import java.io.File abstract class AbstractBuiltInsWithJDKMembersTest : KotlinTestWithEnvironment() { - private val configuration = RecursiveDescriptorComparator.RECURSIVE_ALL.includeMethodsOfKotlinAny(false).withRenderer( - DescriptorRenderer.withOptions { - withDefinedIn = false - overrideRenderingPolicy = OverrideRenderingPolicy.RENDER_OPEN_OVERRIDE - verbose = true - annotationArgumentsRenderingPolicy = AnnotationArgumentsRenderingPolicy.UNLESS_EMPTY - modifiers = DescriptorRendererModifier.ALL - }) + private val configuration = createComparatorConfiguration() override fun createEnvironment(): KotlinCoreEnvironment = createEnvironmentWithJdk(ConfigurationKind.JDK_ONLY, testJdkKind) @@ -59,4 +41,20 @@ abstract class AbstractBuiltInsWithJDKMembersTest : KotlinTestWithEnvironment() ) } } + + companion object { + @JvmStatic + fun createComparatorConfiguration(): RecursiveDescriptorComparator.Configuration { + return RecursiveDescriptorComparator.RECURSIVE_ALL.includeMethodsOfKotlinAny(false).withRenderer( + DescriptorRenderer.withOptions { + withDefinedIn = false + overrideRenderingPolicy = OverrideRenderingPolicy.RENDER_OPEN_OVERRIDE + verbose = true + annotationArgumentsRenderingPolicy = AnnotationArgumentsRenderingPolicy.UNLESS_EMPTY + modifiers = DescriptorRendererModifier.ALL + excludedTypeAnnotationClasses = setOf(FQ_NAMES.unsafeVariance) + } + ) + } + } } diff --git a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/LoadBuiltinsTest.java b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/LoadBuiltinsTest.java index e475ed026c4..4cddee696c1 100644 --- a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/LoadBuiltinsTest.java +++ b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/LoadBuiltinsTest.java @@ -18,7 +18,6 @@ package org.jetbrains.kotlin.serialization.builtins; import com.intellij.openapi.util.io.FileUtil; import com.intellij.util.containers.ContainerUtil; -import kotlin.Unit; import kotlin.collections.CollectionsKt; import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.builtins.BuiltInsLoaderImpl; @@ -35,10 +34,6 @@ import org.jetbrains.kotlin.descriptors.deserialization.PlatformDependentDeclara import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl; import org.jetbrains.kotlin.name.FqName; import org.jetbrains.kotlin.psi.KtFile; -import org.jetbrains.kotlin.renderer.AnnotationArgumentsRenderingPolicy; -import org.jetbrains.kotlin.renderer.DescriptorRenderer; -import org.jetbrains.kotlin.renderer.DescriptorRendererModifier; -import org.jetbrains.kotlin.renderer.OverrideRenderingPolicy; import org.jetbrains.kotlin.resolve.lazy.LazyResolveTestUtilsKt; import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyPackageDescriptor; import org.jetbrains.kotlin.storage.LockBasedStorageManager; @@ -62,20 +57,6 @@ public class LoadBuiltinsTest extends KotlinTestWithEnvironment { } public void testBuiltIns() throws Exception { - RecursiveDescriptorComparator.Configuration configuration = - RecursiveDescriptorComparator.RECURSIVE_ALL.includeMethodsOfKotlinAny(false).withRenderer( - DescriptorRenderer.Companion.withOptions( - options -> { - options.setWithDefinedIn(false); - options.setOverrideRenderingPolicy(OverrideRenderingPolicy.RENDER_OPEN_OVERRIDE); - options.setVerbose(true); - options.setAnnotationArgumentsRenderingPolicy(AnnotationArgumentsRenderingPolicy.UNLESS_EMPTY); - options.setModifiers(DescriptorRendererModifier.ALL); - return Unit.INSTANCE; - } - ) - ); - PackageFragmentProvider packageFragmentProvider = createBuiltInsPackageFragmentProvider(); List files = KotlinTestUtils.loadToJetFiles(getEnvironment(), ContainerUtil.concat( @@ -93,7 +74,7 @@ public class LoadBuiltinsTest extends KotlinTestWithEnvironment { PackageFragmentDescriptor deserialized = CollectionsKt.single(packageFragmentProvider.getPackageFragments(packageFqName)); RecursiveDescriptorComparator.validateAndCompareDescriptors( - fromLazyResolve, deserialized, configuration, + fromLazyResolve, deserialized, AbstractBuiltInsWithJDKMembersTest.createComparatorConfiguration(), new File("compiler/testData/builtin-classes/default/" + packageFqName.asString().replace('.', '-') + ".txt") ); }