From 233e8e58e8a0a73f4e4ea188ab69a8850fd9034e Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 14 Dec 2015 12:21:03 +0300 Subject: [PATCH] Code cleanup: get rid of unnecessary !! / as, fake warning comments and issues --- .../cfg/pseudocode/instructions/eval/accessInstructions.kt | 1 + .../cfg/pseudocode/instructions/eval/operationInstructions.kt | 2 ++ .../jetbrains/kotlin/idea/refactoring/fqName/fqNameUtil.kt | 1 + .../src/org/jetbrains/kotlin/idea/core/KotlinNameSuggester.kt | 2 +- .../idea/findUsages/KotlinElementDescriptionProvider.kt | 1 + .../idea/intentions/ConvertFunctionToPropertyIntention.kt | 1 + .../idea/intentions/ConvertPropertyToFunctionIntention.kt | 1 + .../kotlin/idea/quickfix/SuperClassNotInitialized.kt | 2 +- .../kotlin/idea/codeInsight/AbstractOverrideImplementTest.kt | 2 +- .../jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.kt | 2 +- js/js.libraries/src/dom/Builder.kt | 4 ++-- libraries/stdlib/src/kotlin/collections/Maps.kt | 2 +- 12 files changed, 14 insertions(+), 7 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/eval/accessInstructions.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/eval/accessInstructions.kt index 7c3f0ecb9db..2361352ceaa 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/eval/accessInstructions.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/eval/accessInstructions.kt @@ -103,6 +103,7 @@ public class WriteValueInstruction( public val rValue: PseudoValue ) : AccessValueInstruction(assignment, lexicalScope, target, receiverValues) { override val inputValues: List + // as is necessary: see KT-10384 get() = (receiverValues.keySet() as Collection) + rValue override fun accept(visitor: InstructionVisitor) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/eval/operationInstructions.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/eval/operationInstructions.kt index 60d34d8e0bb..38e4c9620ed 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/eval/operationInstructions.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/eval/operationInstructions.kt @@ -60,6 +60,8 @@ public class CallInstruction private constructor( override val receiverValues: Map, public val arguments: Map ) : OperationInstruction(element, lexicalScope, (receiverValues.keySet() as Collection) + arguments.keySet()), InstructionWithReceivers { + // as is necessary above: see KT-10384 + public constructor ( element: KtElement, lexicalScope: LexicalScope, diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/refactoring/fqName/fqNameUtil.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/refactoring/fqName/fqNameUtil.kt index f47209fb6aa..f5a5852b254 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/refactoring/fqName/fqNameUtil.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/refactoring/fqName/fqNameUtil.kt @@ -33,6 +33,7 @@ public fun PsiElement.getKotlinFqName(): FqName? { return when (element) { is PsiPackage -> FqName(element.getQualifiedName()) is PsiClass -> element.getQualifiedName()?.let { FqName(it) } + // as is necessary because of unresolved ambiguity: KT-3996 is PsiMember -> (element as PsiMember).getName()?.let { name -> val prefix = element.getContainingClass()?.getQualifiedName() FqName(if (prefix != null) "$prefix.$name" else name) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinNameSuggester.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinNameSuggester.kt index c4d1a370263..c001bd2c092 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinNameSuggester.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinNameSuggester.kt @@ -315,7 +315,7 @@ public object KotlinNameSuggester { private fun MutableCollection.addName(name: String?, validator: (String) -> Boolean) { if (name == null) return val correctedName = when { - isIdentifier(name) -> name!! + isIdentifier(name) -> name name == "class" -> "clazz" else -> return } diff --git a/idea/src/org/jetbrains/kotlin/idea/findUsages/KotlinElementDescriptionProvider.kt b/idea/src/org/jetbrains/kotlin/idea/findUsages/KotlinElementDescriptionProvider.kt index 74fef07f14e..1e311fa6131 100644 --- a/idea/src/org/jetbrains/kotlin/idea/findUsages/KotlinElementDescriptionProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/findUsages/KotlinElementDescriptionProvider.kt @@ -57,6 +57,7 @@ public class KotlinElementDescriptionProvider : ElementDescriptionProvider { if (targetElement !is PsiNamedElement || targetElement !is KtElement) return null + // as is necessary because of ambiguity: see KT-3996 val name = (targetElement as PsiNamedElement).getName() return when(location) { diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionToPropertyIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionToPropertyIntention.kt index 7f121005a1c..c460d4f7f91 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionToPropertyIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionToPropertyIntention.kt @@ -132,6 +132,7 @@ public class ConvertFunctionToPropertyIntention : SelfTargetingIntention> = substitutedConstructors.map { diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractOverrideImplementTest.kt b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractOverrideImplementTest.kt index c3b222ab368..1d9fdc0e3de 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractOverrideImplementTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractOverrideImplementTest.kt @@ -149,7 +149,7 @@ public abstract class AbstractOverrideImplementTest : KotlinLightCodeInsightFixt if (candidateToOverride == null) { throw IllegalStateException("no chooserObjects to override with name $memberToOverride found") } - candidateToOverride!! + candidateToOverride } performGenerateCommand(classOrObject, listOf(singleToOverride)) diff --git a/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.kt b/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.kt index 0aa3005fd30..c50274e0e94 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.kt @@ -202,7 +202,7 @@ public object KotlinCompilerRunner { K2JS_COMPILER -> CompileService.TargetPlatform.JS else -> throw IllegalArgumentException("Unknown compiler type $compilerClassName") } - val res = KotlinCompilerClient.incrementalCompile(connection.daemon!!, connection.sessionId, targetPlatform, argsArray, services, compilerOut, daemonOut) + val res = KotlinCompilerClient.incrementalCompile(connection.daemon, connection.sessionId, targetPlatform, argsArray, services, compilerOut, daemonOut) processCompilerOutput(messageCollector, collector, compilerOut, res.toString()) BufferedReader(StringReader(daemonOut.toString())).forEachLine { diff --git a/js/js.libraries/src/dom/Builder.kt b/js/js.libraries/src/dom/Builder.kt index 4e6cd4aa3f3..fb5f5a8b79f 100644 --- a/js/js.libraries/src/dom/Builder.kt +++ b/js/js.libraries/src/dom/Builder.kt @@ -7,7 +7,7 @@ import kotlin.dom.* * Creates a new element which can be configured via a function */ fun Document.createElement(name: String, init: Element.() -> Unit): Element { - val elem = this.createElement(name)!! + val elem = this.createElement(name) elem.init() return elem } @@ -16,7 +16,7 @@ fun Document.createElement(name: String, init: Element.() -> Unit): Element { * Creates a new element to an element which has an owner Document which can be configured via a function */ fun Element.createElement(name: String, doc: Document? = null, init: Element.() -> Unit): Element { - val elem = ownerDocument(doc).createElement(name)!! + val elem = ownerDocument(doc).createElement(name) elem.init() return elem } diff --git a/libraries/stdlib/src/kotlin/collections/Maps.kt b/libraries/stdlib/src/kotlin/collections/Maps.kt index b3bf4e8df25..daf3749c151 100644 --- a/libraries/stdlib/src/kotlin/collections/Maps.kt +++ b/libraries/stdlib/src/kotlin/collections/Maps.kt @@ -110,7 +110,7 @@ public operator fun <@kotlin.internal.OnlyInputTypes K, V> Map.get(key */ @Suppress("NOTHING_TO_INLINE") @Deprecated("Map and key have incompatible types. Upcast key to Any? if you're sure.", ReplaceWith("get(key as Any?)")) -public inline fun Map.getRaw(key: Any?): V? = get(key as Any?) +public inline fun Map.getRaw(key: Any?): V? = get(key) /** * Returns `true` if the map contains the specified [key].