From bcaa755c4e297e9c52753f1e37dc647ccee3ea4f Mon Sep 17 00:00:00 2001 From: Stanislav Erokhin Date: Fri, 18 Dec 2015 18:54:37 +0300 Subject: [PATCH] Fix compilation. - rename isFinal extension property to avoid ambiguity with synthetic property in DeserializedClassTypeConstructor - add explicit parameter to lambda File.listFiles - return true from lambda Query.forEach --- .../org/jetbrains/kotlin/codegen/MutableClassDescriptor.java | 2 +- .../src/org/jetbrains/kotlin/codegen/state/typeMappingUtil.kt | 2 +- .../kotlin/jvm/compiler/MultiModuleJavaAnalysisCustomTest.kt | 4 ++-- .../load/java/lazy/descriptors/LazyJavaClassDescriptor.kt | 2 +- .../src/org/jetbrains/kotlin/descriptors/Modality.kt | 4 ++-- .../descriptors/DeserializedClassDescriptor.kt | 2 +- .../jetbrains/kotlin/idea/debugger/KotlinPositionManager.kt | 1 + .../idea/refactoring/changeSignature/KotlinChangeInfo.kt | 2 +- .../idea/refactoring/rename/RenameKotlinPropertyProcessor.kt | 1 + .../kotlin/idea/codeInsight/AbstractInspectionTest.kt | 2 +- .../jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt | 4 ++-- .../kotlin/jps/incremental/AbstractProtoComparisonTest.kt | 4 ++-- .../compiler/embeddable/CompilerEmbeddableSmokeTests.kt | 2 +- .../main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt | 4 ++-- .../lang/resolve/android/test/AbstractAndroidBoxTest.kt | 2 +- .../kotlin/lang/resolve/android/test/CompilerTestUtils.kt | 2 +- 16 files changed, 21 insertions(+), 19 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/MutableClassDescriptor.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/MutableClassDescriptor.java index c090824307f..67d6e212f16 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/MutableClassDescriptor.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/MutableClassDescriptor.java @@ -154,7 +154,7 @@ public class MutableClassDescriptor extends ClassDescriptorBase implements Class this.typeConstructor = TypeConstructorImpl.createForClass( this, Annotations.Companion.getEMPTY(), - ModalityKt.isFinal(this), + ModalityKt.isFinalClass(this), getName().asString(), typeParameters, supertypes diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/typeMappingUtil.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/typeMappingUtil.kt index d218fa64320..562a8434228 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/typeMappingUtil.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/typeMappingUtil.kt @@ -40,7 +40,7 @@ private fun KotlinType.canHaveSubtypesIgnoringNullability(): Boolean { when (descriptor) { is TypeParameterDescriptor -> return true - is ClassDescriptor -> if (!descriptor.isFinal) return true + is ClassDescriptor -> if (!descriptor.isFinalClass) return true } for ((parameter, argument) in constructor.parameters.zip(arguments)) { diff --git a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/MultiModuleJavaAnalysisCustomTest.kt b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/MultiModuleJavaAnalysisCustomTest.kt index d055bc6747f..c650e62075c 100644 --- a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/MultiModuleJavaAnalysisCustomTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/MultiModuleJavaAnalysisCustomTest.kt @@ -55,7 +55,7 @@ public class MultiModuleJavaAnalysisCustomTest : UsefulTestCase() { } fun testJavaEntitiesBelongToCorrectModule() { - val moduleDirs = File(PATH_TO_TEST_ROOT_DIR).listFiles { it.isDirectory() }!! + val moduleDirs = File(PATH_TO_TEST_ROOT_DIR).listFiles { it -> it.isDirectory() }!! val environment = createEnvironment(moduleDirs) val modules = setupModules(environment, moduleDirs) val resolverForProject = JvmAnalyzerFacade.setupResolverForProject( @@ -85,7 +85,7 @@ public class MultiModuleJavaAnalysisCustomTest : UsefulTestCase() { val modules = HashMap() for (dir in moduleDirs) { val name = dir.getName() - val kotlinFiles = KotlinTestUtils.loadToJetFiles(environment, dir.listFiles { it.extension == "kt" }?.toList().orEmpty()) + val kotlinFiles = KotlinTestUtils.loadToJetFiles(environment, dir.listFiles { it -> it.extension == "kt" }?.toList().orEmpty()) val javaFilesScope = object : DelegatingGlobalSearchScope(GlobalSearchScope.allScope(project)) { override fun contains(file: VirtualFile): Boolean { if (file !in myBaseScope!!) return false diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt index a37cb82a45b..1a6f51fc32e 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt @@ -206,7 +206,7 @@ class LazyJavaClassDescriptor( override fun getAnnotations() = Annotations.EMPTY - override fun isFinal(): Boolean = isFinal + override fun isFinal(): Boolean = isFinalClass override fun isDenotable() = true diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/Modality.kt b/core/descriptors/src/org/jetbrains/kotlin/descriptors/Modality.kt index fe0eff77140..d4cb99666d9 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/Modality.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/Modality.kt @@ -39,12 +39,12 @@ enum class Modality { } val CallableMemberDescriptor.isOverridable: Boolean - get() = modality != Modality.FINAL && (containingDeclaration as? ClassDescriptor)?.isFinal != true + get() = modality != Modality.FINAL && (containingDeclaration as? ClassDescriptor)?.isFinalClass != true val CallableMemberDescriptor.isOverridableOrOverrides: Boolean get() = isOverridable || DescriptorUtils.isOverride(this) -val ClassDescriptor.isFinal: Boolean +val ClassDescriptor.isFinalClass: Boolean get() = modality == Modality.FINAL && kind != ClassKind.ENUM_CLASS val ClassDescriptor.isFinalOrEnum: Boolean diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedClassDescriptor.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedClassDescriptor.kt index 3b94f558e4f..e13207d5171 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedClassDescriptor.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedClassDescriptor.kt @@ -181,7 +181,7 @@ public class DeserializedClassDescriptor( override fun getSupertypes() = supertypes() - override fun isFinal(): Boolean = isFinal + override fun isFinal(): Boolean = isFinalClass override fun isDenotable() = true diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/KotlinPositionManager.kt b/idea/src/org/jetbrains/kotlin/idea/debugger/KotlinPositionManager.kt index 5bd060385c3..8ae45adb803 100644 --- a/idea/src/org/jetbrains/kotlin/idea/debugger/KotlinPositionManager.kt +++ b/idea/src/org/jetbrains/kotlin/idea/debugger/KotlinPositionManager.kt @@ -511,6 +511,7 @@ public class KotlinPositionManager(private val myDebugProcess: DebugProcess) : M } } } + true } } result diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinChangeInfo.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinChangeInfo.kt index f59c4cdc07d..3d29917a4ac 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinChangeInfo.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinChangeInfo.kt @@ -210,7 +210,7 @@ public open class KotlinChangeInfo( for (caller in value) { add(caller) - OverridingMethodsSearch.search(caller.getRepresentativeLightMethod() ?: continue).forEach { add(it) } + OverridingMethodsSearch.search(caller.getRepresentativeLightMethod() ?: continue).forEach { add(it); true } } propagationTargetUsageInfos = result.toList() diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinPropertyProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinPropertyProcessor.kt index a0205b7aa30..b6a2d09bd59 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinPropertyProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinPropertyProcessor.kt @@ -171,6 +171,7 @@ public class RenameKotlinPropertyProcessor : RenamePsiElementProcessor() { } } } + true } } diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractInspectionTest.kt b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractInspectionTest.kt index 8d8fe253422..e85fa01df6d 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractInspectionTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractInspectionTest.kt @@ -70,7 +70,7 @@ public abstract class AbstractInspectionTest : KotlinLightCodeInsightFixtureTest with(myFixture) { setTestDataPath("${KotlinTestUtils.getHomeDirectory()}/$srcDir") - val afterFiles = srcDir.listFiles { it.name == "inspectionData" }?.single()?.listFiles { it.extension == "after" } ?: emptyArray() + val afterFiles = srcDir.listFiles { it -> it.name == "inspectionData" }?.single()?.listFiles { it -> it.extension == "after" } ?: emptyArray() val psiFiles = srcDir.walkTopDown().treeFilter { it.name != "inspectionData" }.mapNotNull { file -> if (file.isDirectory) { diff --git a/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt b/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt index 11d72201d7c..aad6117b245 100644 --- a/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt @@ -245,8 +245,8 @@ public abstract class AbstractIncrementalJpsTest( return modifications } - val haveFilesWithoutNumbers = testDataDir.listFiles { it.getName().matches(".+\\.($COMMANDS_AS_REGEX_PART)$".toRegex()) }?.isNotEmpty() ?: false - val haveFilesWithNumbers = testDataDir.listFiles { it.getName().matches(".+\\.($COMMANDS_AS_REGEX_PART)\\.\\d+$".toRegex()) }?.isNotEmpty() ?: false + val haveFilesWithoutNumbers = testDataDir.listFiles { it -> it.getName().matches(".+\\.($COMMANDS_AS_REGEX_PART)$".toRegex()) }?.isNotEmpty() ?: false + val haveFilesWithNumbers = testDataDir.listFiles { it -> it.getName().matches(".+\\.($COMMANDS_AS_REGEX_PART)\\.\\d+$".toRegex()) }?.isNotEmpty() ?: false if (haveFilesWithoutNumbers && haveFilesWithNumbers) { fail("Bad test data format: files ending with both unnumbered and numbered $COMMANDS_AS_MESSAGE_PART were found") diff --git a/jps-plugin/test/org/jetbrains/kotlin/jps/incremental/AbstractProtoComparisonTest.kt b/jps-plugin/test/org/jetbrains/kotlin/jps/incremental/AbstractProtoComparisonTest.kt index 07353e5ed9c..1b446159b37 100644 --- a/jps-plugin/test/org/jetbrains/kotlin/jps/incremental/AbstractProtoComparisonTest.kt +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/incremental/AbstractProtoComparisonTest.kt @@ -65,7 +65,7 @@ public abstract class AbstractProtoComparisonTest : UsefulTestCase() { } private fun compileFileAndGetClasses(testPath: String, testDir: File, prefix: String): List { - val files = File(testPath).listFiles { it.name.startsWith(prefix) }!! + val files = File(testPath).listFiles { it -> it.name.startsWith(prefix) }!! val sourcesDirectory = testDir.createSubDirectory("sources") val classesDirectory = testDir.createSubDirectory("$prefix.src") @@ -74,7 +74,7 @@ public abstract class AbstractProtoComparisonTest : UsefulTestCase() { } MockLibraryUtil.compileKotlin(sourcesDirectory.path, classesDirectory) - return File(classesDirectory, "test").listFiles() { it.name.endsWith(".class") }?.sortedBy { it.name }!! + return File(classesDirectory, "test").listFiles() { it -> it.name.endsWith(".class") }?.sortedBy { it.name }!! } private fun Printer.printDifference(oldClassFile: File, newClassFile: File) { diff --git a/libraries/tools/kotlin-compiler-embeddable/test/kotlin/org/jetbrains/kotlin/compiler/embeddable/CompilerEmbeddableSmokeTests.kt b/libraries/tools/kotlin-compiler-embeddable/test/kotlin/org/jetbrains/kotlin/compiler/embeddable/CompilerEmbeddableSmokeTests.kt index df46d6db6e1..6d86c75cbb7 100644 --- a/libraries/tools/kotlin-compiler-embeddable/test/kotlin/org/jetbrains/kotlin/compiler/embeddable/CompilerEmbeddableSmokeTests.kt +++ b/libraries/tools/kotlin-compiler-embeddable/test/kotlin/org/jetbrains/kotlin/compiler/embeddable/CompilerEmbeddableSmokeTests.kt @@ -36,7 +36,7 @@ public class CompilerSmokeTest { private val javaExecutable = File( File(System.getProperty("java.home"), "bin"), "java") - private val embeddableJar = File(".").listFiles { it.name.startsWith("kotlin-compiler-embeddable", ignoreCase = true) && it.name.endsWith(".jar", ignoreCase = true) }?.firstOrNull() + private val embeddableJar = File(".").listFiles { it -> it.name.startsWith("kotlin-compiler-embeddable", ignoreCase = true) && it.name.endsWith(".jar", ignoreCase = true) }?.firstOrNull() ?: throw FileNotFoundException("cannot find kotlin-compiler-embeddable*.jar in the directory " + File(".").absolutePath) @Test diff --git a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index a44e1372e06..b9356ea601d 100644 --- a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -62,7 +62,7 @@ abstract class AbstractKotlinCompile() : AbstractCo afterCompileHook(args) } - private fun getKotlinSources(): List = getSource().filter { it.isKotlinFile() } + private fun getKotlinSources(): List = (getSource() as Iterable).filter { it.isKotlinFile() } private fun File.isKotlinFile(): Boolean { return when (FilenameUtils.getExtension(getName()).toLowerCase()) { @@ -158,7 +158,7 @@ public open class KotlinCompile() : AbstractKotlinCompile it.name.startsWith("layout") && it.isDirectory }!!.map { "$path${it.name}/" } myEnvironment = createAndroidTestEnvironment(configuration, layoutPaths) } diff --git a/plugins/android-compiler-plugin/tests/org/jetbrains/kotlin/lang/resolve/android/test/CompilerTestUtils.kt b/plugins/android-compiler-plugin/tests/org/jetbrains/kotlin/lang/resolve/android/test/CompilerTestUtils.kt index 05ef16c064e..71f107e4a64 100644 --- a/plugins/android-compiler-plugin/tests/org/jetbrains/kotlin/lang/resolve/android/test/CompilerTestUtils.kt +++ b/plugins/android-compiler-plugin/tests/org/jetbrains/kotlin/lang/resolve/android/test/CompilerTestUtils.kt @@ -54,5 +54,5 @@ fun UsefulTestCase.createAndroidTestEnvironment(configuration: CompilerConfigura } fun getResPaths(path: String): List { - return File(path).listFiles { it.name.startsWith("res") && it.isDirectory }!!.map { "$path${it.name}/" } + return File(path).listFiles { it -> it.name.startsWith("res") && it.isDirectory }!!.map { "$path${it.name}/" } } \ No newline at end of file