From a75daf85e2dc1b47f007ece1146053ddb1c961a7 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Mon, 20 Jul 2015 20:11:27 +0200 Subject: [PATCH] code cleanup: 'idea' module --- .../idea/actions/ShowKotlinBytecodeAction.kt | 2 +- .../KotlinReferenceTransferableData.kt | 3 +- .../KotlinStatementSurroundDescriptor.java | 2 + .../ConfigureKotlinNotificationManager.kt | 9 ++-- .../idea/debugger/JetPositionManager.kt | 2 +- .../dialog/AddFieldBreakpointDialog.java | 3 ++ .../evaluate/KotlinEvaluateExpressionCache.kt | 2 +- .../evaluate/KotlinRuntimeTypeEvaluator.kt | 6 +-- .../debugger/evaluate/compilingEvaluator.kt | 3 +- .../extractFunctionForDebuggerUtil.kt | 4 +- .../idea/editor/KotlinSmartEnterHandler.kt | 8 ++-- .../idea/editor/fixers/KotlinDoWhileFixer.kt | 17 ++++--- .../fixers/KotlinMissingIfBranchFixer.kt | 13 +++--- .../fixers/KotlinMissingWhenBodyFixer.kt | 9 ++-- .../idea/findUsages/findUsagesOptions.kt | 4 +- .../idea/formatter/KotlinSpacingBuilder.kt | 2 +- ...KotlinBlock.kt => SyntheticKotlinBlock.kt} | 6 +-- .../kotlin/idea/formatter/WrappingStrategy.kt | 2 +- .../markers/OverridenPropertyMarker.kt | 2 +- .../markers/SuperDeclarationMarker.kt | 2 +- .../AnonymousTemplateEditingListener.java | 4 +- .../macro/JetFunctionParametersMacro.java | 3 ++ .../projectView/JetProjectViewProvider.java | 2 +- .../quickfix/DeprecatedLambdaSyntaxFix.kt | 2 +- .../RemoveRightPartOfBinaryExpressionFix.java | 1 + .../callableBuilder/CallableBuilder.kt | 6 ++- .../callableBuilder/CallableInfo.kt | 7 ++- .../idea/refactoring/CallableRefactoring.kt | 2 +- .../changeSignature/JetChangeInfo.kt | 5 +- .../changeSignature/JetChangeSignatureData.kt | 10 ++-- .../changeSignature/JetMethodDescriptor.kt | 2 +- .../ExtractableCodeDescriptor.kt | 19 ++++---- .../extractionEngine/ExtractionData.kt | 46 +++++++++---------- .../extractionEngine/duplicateUtil.kt | 2 +- .../extractableAnalysisUtil.kt | 17 ++----- .../KotlinIntroduceParameterDialog.kt | 2 +- .../KotlinIntroduceParameterHandler.kt | 4 +- .../idea/refactoring/jetRefactoringUtil.kt | 2 +- .../KotlinMoveTarget.kt | 12 ++--- ...MoveKotlinTopLevelDeclarationsProcessor.kt | 2 +- .../kotlin/idea/refactoring/move/moveUtils.kt | 2 +- .../rename/RenameKotlinFunctionProcessor.kt | 3 +- .../KotlinJavaSafeDeleteDelegate.kt | 2 +- .../idea/run/JetRunConfigurationEditor.java | 2 +- .../kotlin/idea/util/DebuggerUtils.java | 2 +- .../util/psi/patternMatching/JetPsiRange.kt | 2 +- .../util/psi/patternMatching/JetPsiUnifier.kt | 4 +- .../KotlinFindUsagesHandlerDecorator.kt | 2 +- .../debugger/AbstractKotlinSteppingTest.kt | 2 +- .../idea/refactoring/InplaceRenameTest.kt | 2 +- .../introduce/AbstractJetExtractionTest.kt | 2 +- .../refactoring/rename/AbstractRenameTest.kt | 2 +- .../AbstractKotlinFileStructureTest.kt | 2 +- 53 files changed, 130 insertions(+), 150 deletions(-) rename idea/src/org/jetbrains/kotlin/idea/formatter/{SynteticKotlinBlock.kt => SyntheticKotlinBlock.kt} (94%) diff --git a/idea/src/org/jetbrains/kotlin/idea/actions/ShowKotlinBytecodeAction.kt b/idea/src/org/jetbrains/kotlin/idea/actions/ShowKotlinBytecodeAction.kt index 227ea497ce2..6c67b344dd2 100644 --- a/idea/src/org/jetbrains/kotlin/idea/actions/ShowKotlinBytecodeAction.kt +++ b/idea/src/org/jetbrains/kotlin/idea/actions/ShowKotlinBytecodeAction.kt @@ -42,7 +42,7 @@ public class ShowKotlinBytecodeAction(): AnAction() { val contentFactory = ContentFactory.SERVICE.getInstance() contentManager.addContent(contentFactory.createContent(KotlinBytecodeToolWindow(project, toolWindow), "", false)) } - toolWindow?.activate(null) + toolWindow.activate(null) } override fun update(e: AnActionEvent) { diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinReferenceTransferableData.kt b/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinReferenceTransferableData.kt index e5e878009a2..7fc093ebc78 100644 --- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinReferenceTransferableData.kt +++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinReferenceTransferableData.kt @@ -22,7 +22,6 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.getImportableDescriptor import org.jetbrains.kotlin.resolve.descriptorUtil.isExtension import java.awt.datatransfer.DataFlavor import java.io.Serializable -import kotlin.properties.Delegates public class KotlinReferenceTransferableData( val data: Array @@ -99,7 +98,7 @@ public class KotlinReferenceData( } companion object { - public val dataFlavor: DataFlavor? by Delegates.lazy { + public val dataFlavor: DataFlavor? by lazy { try { val dataClass = javaClass() DataFlavor(DataFlavor.javaJVMLocalObjectMimeType + ";class=" + dataClass.getName(), diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/surroundWith/statement/KotlinStatementSurroundDescriptor.java b/idea/src/org/jetbrains/kotlin/idea/codeInsight/surroundWith/statement/KotlinStatementSurroundDescriptor.java index 5ab362bb508..09c54819c29 100644 --- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/surroundWith/statement/KotlinStatementSurroundDescriptor.java +++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/surroundWith/statement/KotlinStatementSurroundDescriptor.java @@ -34,11 +34,13 @@ public class KotlinStatementSurroundDescriptor implements SurroundDescriptor { new KotlinTryCatchSurrounder() }; + @Override @NotNull public PsiElement[] getElementsToSurround(PsiFile file, int startOffset, int endOffset) { return CodeInsightUtils.findStatements(file, startOffset, endOffset); } + @Override @NotNull public Surrounder[] getSurrounders() { return SURROUNDERS; } diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinNotificationManager.kt b/idea/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinNotificationManager.kt index a0907626655..2fd57ac5cea 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinNotificationManager.kt +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinNotificationManager.kt @@ -35,16 +35,13 @@ object AbsentSdkAnnotationsNotificationManager: KotlinSingleNotificationManager< } } -trait KotlinSingleNotificationManager { +interface KotlinSingleNotificationManager { fun notify(project: Project, notification: T) { - val notificationsManager = NotificationsManager.getNotificationsManager() - if (notificationsManager == null) { - return - } + val notificationsManager = NotificationsManager.getNotificationsManager() ?: return var isNotificationExists = false - val notifications = notificationsManager.getNotificationsOfType(notification.javaClass, project) as Array + val notifications = notificationsManager.getNotificationsOfType(notification.javaClass, project) for (oldNotification in notifications) { if (oldNotification == notification) { isNotificationExists = true diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/JetPositionManager.kt b/idea/src/org/jetbrains/kotlin/idea/debugger/JetPositionManager.kt index f79fe006813..000c7ad1cbc 100644 --- a/idea/src/org/jetbrains/kotlin/idea/debugger/JetPositionManager.kt +++ b/idea/src/org/jetbrains/kotlin/idea/debugger/JetPositionManager.kt @@ -263,7 +263,7 @@ public class JetPositionManager(private val myDebugProcess: DebugProcess) : Mult myTypeMappers.put(key, value) } - return value!!.getValue() + return value.getValue() } override fun locationsOfLine(type: ReferenceType, position: SourcePosition): List { diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/AddFieldBreakpointDialog.java b/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/AddFieldBreakpointDialog.java index 974bbececff..3f7afc4912a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/AddFieldBreakpointDialog.java +++ b/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/AddFieldBreakpointDialog.java @@ -52,14 +52,17 @@ public abstract class AddFieldBreakpointDialog extends DialogWrapper { init(); } + @Override protected JComponent createCenterPanel() { myClassChooser.getTextField().getDocument().addDocumentListener(new DocumentAdapter() { + @Override public void textChanged(DocumentEvent event) { updateUI(); } }); myClassChooser.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { PsiClass currentClass = getSelectedClass(); TreeClassChooser chooser = TreeClassChooserFactory.getInstance(myProject).createAllProjectScopeChooser( diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluateExpressionCache.kt b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluateExpressionCache.kt index 8d3aef846e0..c5061852d1a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluateExpressionCache.kt +++ b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluateExpressionCache.kt @@ -81,7 +81,7 @@ class KotlinEvaluateExpressionCache(val project: Project) { val thisDescriptor = value.asmType.getClassDescriptor(project) val superClassDescriptor = jetType.getConstructor().getDeclarationDescriptor() as? ClassDescriptor - return@all thisDescriptor != null && superClassDescriptor != null && runReadAction { DescriptorUtils.isSubclass(thisDescriptor, superClassDescriptor) }!! + return@all thisDescriptor != null && superClassDescriptor != null && runReadAction { DescriptorUtils.isSubclass(thisDescriptor, superClassDescriptor) } } } diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinRuntimeTypeEvaluator.kt b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinRuntimeTypeEvaluator.kt index 432e53cefb9..e720b1b5ec0 100644 --- a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinRuntimeTypeEvaluator.kt +++ b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinRuntimeTypeEvaluator.kt @@ -84,7 +84,7 @@ public abstract class KotlinRuntimeTypeEvaluator( val myValue = value.asValue() var psiClass = myValue.asmType.getClassDescriptor(project) if (psiClass != null) { - return psiClass!!.getDefaultType() + return psiClass.getDefaultType() } val type = value.type() @@ -93,14 +93,14 @@ public abstract class KotlinRuntimeTypeEvaluator( if (superclass != null && CommonClassNames.JAVA_LANG_OBJECT != superclass.name()) { psiClass = AsmType.getType(superclass.signature()).getClassDescriptor(project) if (psiClass != null) { - return psiClass!!.getDefaultType() + return psiClass.getDefaultType() } } for (interfaceType in type.interfaces()) { psiClass = AsmType.getType(interfaceType.signature()).getClassDescriptor(project) if (psiClass != null) { - return psiClass!!.getDefaultType() + return psiClass.getDefaultType() } } } diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/compilingEvaluator.kt b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/compilingEvaluator.kt index 16105738a08..e2c554fa1f2 100644 --- a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/compilingEvaluator.kt +++ b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/compilingEvaluator.kt @@ -24,7 +24,6 @@ import com.intellij.openapi.projectRoots.JdkVersionUtil import com.intellij.openapi.util.SystemInfo import com.sun.jdi.ClassLoaderReference import org.jetbrains.kotlin.idea.debugger.evaluate.CompilingEvaluatorUtils -import kotlin.properties.Delegates public fun loadClasses(evaluationContext: EvaluationContextImpl, classes: Collection>) { val process = evaluationContext.getDebugProcess() @@ -75,7 +74,7 @@ private val LAMBDA_SUPERCLASSES = listOf( ) private class ClassBytes(val name: String) { - val bytes: ByteArray by Delegates.lazy { + val bytes: ByteArray by lazy { val inputStream = this.javaClass.getClassLoader().getResourceAsStream(name.replace('.', '/') + ".class") ?: throw EvaluateException("Couldn't find $name class in current class loader") diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/extractFunctionForDebuggerUtil.kt b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/extractFunctionForDebuggerUtil.kt index 3a2a85a80aa..6a21cb3b2f3 100644 --- a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/extractFunctionForDebuggerUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/extractFunctionForDebuggerUtil.kt @@ -131,7 +131,7 @@ private fun JetFile.getElementInCopy(e: PsiElement): PsiElement? { return null } var elementAt = this.findElementAt(offset) - while (elementAt == null || elementAt!!.getTextRange()?.getEndOffset() != e.getTextRange()?.getEndOffset()) { + while (elementAt == null || elementAt.getTextRange()?.getEndOffset() != e.getTextRange()?.getEndOffset()) { elementAt = elementAt?.getParent() } return elementAt @@ -169,7 +169,7 @@ private fun getExpressionToAddDebugExpressionBefore(tmpFile: JetFile, contextEle break } - parent = parent?.getParent() + parent = parent.getParent() parentOfParent = parent?.getParent() } diff --git a/idea/src/org/jetbrains/kotlin/idea/editor/KotlinSmartEnterHandler.kt b/idea/src/org/jetbrains/kotlin/idea/editor/KotlinSmartEnterHandler.kt index c81ba25a5bb..e282366fe02 100644 --- a/idea/src/org/jetbrains/kotlin/idea/editor/KotlinSmartEnterHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/editor/KotlinSmartEnterHandler.kt @@ -67,10 +67,10 @@ public class KotlinSmartEnterHandler: SmartEnterProcessorWithFixers() { while (atCaret != null) { when { - atCaret?.isJetStatement() == true -> return atCaret - atCaret?.getParent() is JetFunctionLiteral -> return atCaret + atCaret.isJetStatement() == true -> return atCaret + atCaret.getParent() is JetFunctionLiteral -> return atCaret atCaret is JetDeclaration -> { - val declaration = atCaret!! + val declaration = atCaret when { declaration is JetParameter && !declaration.isInLambdaExpression() -> {/* proceed to function declaration */} declaration.getParent() is JetForExpression -> {/* skip variable declaration in 'for' expression */} @@ -79,7 +79,7 @@ public class KotlinSmartEnterHandler: SmartEnterProcessorWithFixers() { } } - atCaret = atCaret?.getParent() + atCaret = atCaret.getParent() } return null diff --git a/idea/src/org/jetbrains/kotlin/idea/editor/fixers/KotlinDoWhileFixer.kt b/idea/src/org/jetbrains/kotlin/idea/editor/fixers/KotlinDoWhileFixer.kt index b1891f86267..318fbe077eb 100644 --- a/idea/src/org/jetbrains/kotlin/idea/editor/fixers/KotlinDoWhileFixer.kt +++ b/idea/src/org/jetbrains/kotlin/idea/editor/fixers/KotlinDoWhileFixer.kt @@ -28,11 +28,10 @@ public class KotlinDoWhileFixer : SmartEnterProcessorWithFixers.Fixer stmt.startLine(doc)) { + else if (whileKeyword != null && body !is JetBlockExpression && body.startLine(doc) > psiElement.startLine(doc)) { doc.insertString(whileKeyword.range.start, "}") doc.insertString(start + "do".length(), "{") return } - if (stmt.getCondition() == null) { - val lParen = stmt.getLeftParenthesis() - val rParen = stmt.getRightParenthesis() + if (psiElement.getCondition() == null) { + val lParen = psiElement.getLeftParenthesis() + val rParen = psiElement.getRightParenthesis() when { - whileKeyword == null -> doc.insertString(stmt.range.end, "while()") + whileKeyword == null -> doc.insertString(psiElement.range.end, "while()") lParen == null && rParen == null -> { doc.replaceString(whileKeyword.range.start, whileKeyword.range.end, "while()") } diff --git a/idea/src/org/jetbrains/kotlin/idea/editor/fixers/KotlinMissingIfBranchFixer.kt b/idea/src/org/jetbrains/kotlin/idea/editor/fixers/KotlinMissingIfBranchFixer.kt index 4f5c4d96fa9..95b914c7dfc 100644 --- a/idea/src/org/jetbrains/kotlin/idea/editor/fixers/KotlinMissingIfBranchFixer.kt +++ b/idea/src/org/jetbrains/kotlin/idea/editor/fixers/KotlinMissingIfBranchFixer.kt @@ -26,11 +26,10 @@ import org.jetbrains.kotlin.psi.JetBlockExpression public class KotlinMissingIfBranchFixer : SmartEnterProcessorWithFixers.Fixer() { override fun apply(editor: Editor, processor: KotlinSmartEnterHandler, element: PsiElement) { if (element !is JetIfExpression) return - val ifExpression = element as JetIfExpression val document = editor.getDocument() - val elseBranch = ifExpression.getElse() - val elseKeyword = ifExpression.getElseKeyword() + val elseBranch = element.getElse() + val elseKeyword = element.getElseKeyword() if (elseKeyword != null) { if (elseBranch == null || elseBranch !is JetBlockExpression && elseBranch.startLine(editor.getDocument()) > elseKeyword.startLine(editor.getDocument())) { @@ -39,15 +38,15 @@ public class KotlinMissingIfBranchFixer : SmartEnterProcessorWithFixers.Fixer() { override fun apply(editor: Editor, processor: KotlinSmartEnterHandler, element: PsiElement) { if (element !is JetWhenExpression) return - val whenExpression = element as JetWhenExpression val doc = editor.getDocument() - val openBrace = whenExpression.getOpenBrace() - val closeBrace = whenExpression.getCloseBrace() + val openBrace = element.getOpenBrace() + val closeBrace = element.getCloseBrace() - if (openBrace == null && closeBrace == null && whenExpression.getEntries().isEmpty()) { - val openBraceAfter = whenExpression.insertOpenBraceAfter() + if (openBrace == null && closeBrace == null && element.getEntries().isEmpty()) { + val openBraceAfter = element.insertOpenBraceAfter() if (openBraceAfter != null) { doc.insertString(openBraceAfter.range.end, "{}") } diff --git a/idea/src/org/jetbrains/kotlin/idea/findUsages/findUsagesOptions.kt b/idea/src/org/jetbrains/kotlin/idea/findUsages/findUsagesOptions.kt index cb5d2ddaf47..f1286b7cc98 100644 --- a/idea/src/org/jetbrains/kotlin/idea/findUsages/findUsagesOptions.kt +++ b/idea/src/org/jetbrains/kotlin/idea/findUsages/findUsagesOptions.kt @@ -42,7 +42,7 @@ public class KotlinClassFindUsagesOptions(project: Project) : JavaClassFindUsage } } -public trait KotlinCallableFindUsagesOptions { +public interface KotlinCallableFindUsagesOptions { public var searchOverrides: Boolean } @@ -112,5 +112,5 @@ fun FindUsagesOptions.toSearchTarget(element: T, restrictB else UsagesSearchLocation.DEFAULT - return UsagesSearchTarget(element, searchScope ?: element.getUseScope(), location, restrictByTarget) + return UsagesSearchTarget(element, searchScope, location, restrictByTarget) } diff --git a/idea/src/org/jetbrains/kotlin/idea/formatter/KotlinSpacingBuilder.kt b/idea/src/org/jetbrains/kotlin/idea/formatter/KotlinSpacingBuilder.kt index 7574781d5b7..3d0d69e039a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/formatter/KotlinSpacingBuilder.kt +++ b/idea/src/org/jetbrains/kotlin/idea/formatter/KotlinSpacingBuilder.kt @@ -38,7 +38,7 @@ class KotlinSpacingBuilder(val codeStyleSettings: CodeStyleSettings) { private val builders = ArrayList() - private trait Builder { + private interface Builder { fun getSpacing(parent: ASTBlock, left: ASTBlock, right: ASTBlock): Spacing? } diff --git a/idea/src/org/jetbrains/kotlin/idea/formatter/SynteticKotlinBlock.kt b/idea/src/org/jetbrains/kotlin/idea/formatter/SyntheticKotlinBlock.kt similarity index 94% rename from idea/src/org/jetbrains/kotlin/idea/formatter/SynteticKotlinBlock.kt rename to idea/src/org/jetbrains/kotlin/idea/formatter/SyntheticKotlinBlock.kt index 996a9088e0d..6717fa5443a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/formatter/SynteticKotlinBlock.kt +++ b/idea/src/org/jetbrains/kotlin/idea/formatter/SyntheticKotlinBlock.kt @@ -60,17 +60,17 @@ public class SyntheticKotlinBlock( loop@ while (treeNode == null) when (child) { is AbstractBlock -> { - treeNode = (child as AbstractBlock).getNode() + treeNode = child.getNode() } is SyntheticKotlinBlock -> { - child = (child as SyntheticKotlinBlock).getSubBlocks().first() + child = child.getSubBlocks().first() } else -> break@loop } val textRange = getTextRange() if (treeNode != null) { - val psi = treeNode!!.getPsi() + val psi = treeNode.getPsi() if (psi != null) { val file = psi.getContainingFile() if (file != null) { diff --git a/idea/src/org/jetbrains/kotlin/idea/formatter/WrappingStrategy.kt b/idea/src/org/jetbrains/kotlin/idea/formatter/WrappingStrategy.kt index 00efe2df02d..93c7282c720 100644 --- a/idea/src/org/jetbrains/kotlin/idea/formatter/WrappingStrategy.kt +++ b/idea/src/org/jetbrains/kotlin/idea/formatter/WrappingStrategy.kt @@ -19,7 +19,7 @@ package org.jetbrains.kotlin.idea.formatter import com.intellij.formatting.Wrap import com.intellij.psi.tree.IElementType -public trait WrappingStrategy { +public interface WrappingStrategy { fun getWrap(childElementType: IElementType): Wrap? object NoWrapping: WrappingStrategy { diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/OverridenPropertyMarker.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/OverridenPropertyMarker.kt index 04d5f2a1957..0d1dbde9c95 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/OverridenPropertyMarker.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/OverridenPropertyMarker.kt @@ -123,6 +123,6 @@ public fun isImplemented(declaration: JetNamedDeclaration): Boolean { if (parent !is JetClass) return false - return (parent as JetClass).isInterface() && (declaration !is JetDeclarationWithBody || !declaration.hasBody()) && (declaration !is JetWithExpressionInitializer || !declaration.hasInitializer()) + return parent.isInterface() && (declaration !is JetDeclarationWithBody || !declaration.hasBody()) && (declaration !is JetWithExpressionInitializer || !declaration.hasInitializer()) } diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/SuperDeclarationMarker.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/SuperDeclarationMarker.kt index 9972bb16b7e..aa635f5cc4f 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/SuperDeclarationMarker.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/SuperDeclarationMarker.kt @@ -85,7 +85,7 @@ public class SuperDeclarationMarkerNavigationHandler : GutterIconNavigationHandl val declarations = DescriptorToSourceUtilsIde.getAllDeclarations(element.getProject(), overriddenMember) for (declaration in declarations) { if (declaration is NavigatablePsiElement) { - superDeclarations.add(declaration as NavigatablePsiElement) + superDeclarations.add(declaration) } } } diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnonymousTemplateEditingListener.java b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnonymousTemplateEditingListener.java index 28c2de28369..0cb7c0ed012 100644 --- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnonymousTemplateEditingListener.java +++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnonymousTemplateEditingListener.java @@ -42,10 +42,10 @@ import java.util.Map; class AnonymousTemplateEditingListener extends TemplateEditingAdapter { private JetReferenceExpression classRef; private ClassDescriptor classDescriptor; - private Editor editor; + private final Editor editor; private final PsiFile psiFile; - private static Map ourAddedListeners = + private static final Map ourAddedListeners = new HashMap(); public AnonymousTemplateEditingListener(PsiFile psiFile, Editor editor) { diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetFunctionParametersMacro.java b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetFunctionParametersMacro.java index a25832de3f1..449c0cff5c0 100644 --- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetFunctionParametersMacro.java +++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetFunctionParametersMacro.java @@ -30,14 +30,17 @@ import java.util.ArrayList; import java.util.List; public class JetFunctionParametersMacro extends Macro { + @Override public String getName() { return "functionParameters"; } + @Override public String getPresentableName() { return JetBundle.message("macro.fun.parameters"); } + @Override public Result calculateResult(@NotNull Expression[] params, ExpressionContext context) { Project project = context.getProject(); int templateStartOffset = context.getTemplateStartOffset(); diff --git a/idea/src/org/jetbrains/kotlin/idea/projectView/JetProjectViewProvider.java b/idea/src/org/jetbrains/kotlin/idea/projectView/JetProjectViewProvider.java index 48731f090fb..4ce1a921714 100644 --- a/idea/src/org/jetbrains/kotlin/idea/projectView/JetProjectViewProvider.java +++ b/idea/src/org/jetbrains/kotlin/idea/projectView/JetProjectViewProvider.java @@ -37,7 +37,7 @@ import java.util.Collection; import java.util.List; public class JetProjectViewProvider implements SelectableTreeStructureProvider, DumbAware { - private Project myProject; + private final Project myProject; public JetProjectViewProvider(Project project) { myProject = project; diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/DeprecatedLambdaSyntaxFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/DeprecatedLambdaSyntaxFix.kt index 75da5826ca5..a47106c855d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/DeprecatedLambdaSyntaxFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/DeprecatedLambdaSyntaxFix.kt @@ -64,7 +64,7 @@ public class DeprecatedLambdaSyntaxFix(element: JetFunctionLiteralExpression) : } } -private trait DeprecatedSyntaxFix { +private interface DeprecatedSyntaxFix { // you must run it under write action fun runFix() diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/RemoveRightPartOfBinaryExpressionFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/RemoveRightPartOfBinaryExpressionFix.java index 768926bf027..905814c5ccf 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/RemoveRightPartOfBinaryExpressionFix.java +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/RemoveRightPartOfBinaryExpressionFix.java @@ -35,6 +35,7 @@ public class RemoveRightPartOfBinaryExpressionFix exten this.message = message; } + @Override public String getText() { return message; } diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/CallableBuilder.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/CallableBuilder.kt index 413b270489d..524a029fb02 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/CallableBuilder.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/CallableBuilder.kt @@ -49,7 +49,9 @@ import org.jetbrains.kotlin.idea.core.CollectingNameValidator import org.jetbrains.kotlin.idea.core.KotlinNameSuggester import org.jetbrains.kotlin.idea.core.refactoring.* import org.jetbrains.kotlin.idea.quickfix.createFromUsage.createClass.ClassKind -import org.jetbrains.kotlin.idea.util.* +import org.jetbrains.kotlin.idea.util.DialogWithEditor +import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers +import org.jetbrains.kotlin.idea.util.ShortenReferences import org.jetbrains.kotlin.idea.util.application.executeWriteCommand import org.jetbrains.kotlin.idea.util.application.runWriteAction import org.jetbrains.kotlin.lexer.JetTokens @@ -136,7 +138,7 @@ class CallableBuilder(val config: CallableBuilderConfiguration) { val currentFileContext: BindingContext val currentFileModule: ModuleDescriptor - val pseudocode: Pseudocode? by Delegates.lazy { config.originalElement.getContainingPseudocode(currentFileContext) } + val pseudocode: Pseudocode? by lazy { config.originalElement.getContainingPseudocode(currentFileContext) } private val typeCandidates = HashMap>() diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/CallableInfo.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/CallableInfo.kt index ed54d5df39d..2c6809f95a6 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/CallableInfo.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/CallableInfo.kt @@ -21,8 +21,6 @@ import com.intellij.util.ArrayUtil import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.idea.core.KotlinNameSuggester import org.jetbrains.kotlin.idea.quickfix.createFromUsage.createClass.ClassInfo -import org.jetbrains.kotlin.types.typeUtil.makeNotNullable -import org.jetbrains.kotlin.types.typeUtil.supertypes import org.jetbrains.kotlin.psi.JetElement import org.jetbrains.kotlin.psi.JetExpression import org.jetbrains.kotlin.psi.JetTypeReference @@ -30,8 +28,9 @@ import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.types.ErrorUtils import org.jetbrains.kotlin.types.JetType import org.jetbrains.kotlin.types.Variance +import org.jetbrains.kotlin.types.typeUtil.makeNotNullable +import org.jetbrains.kotlin.types.typeUtil.supertypes import java.util.Collections -import kotlin.properties.Delegates /** * Represents a concrete type or a set of types yet to be inferred from an expression. @@ -42,7 +41,7 @@ abstract class TypeInfo(val variance: Variance) { } class ByExpression(val expression: JetExpression, variance: Variance): TypeInfo(variance) { - override val possibleNamesFromExpression: Array by Delegates.lazy { + override val possibleNamesFromExpression: Array by lazy { KotlinNameSuggester.suggestNamesByExpressionOnly(expression, { true }).toTypedArray() } diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/CallableRefactoring.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/CallableRefactoring.kt index a4cc78d7c8e..bc87f06ac86 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/CallableRefactoring.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/CallableRefactoring.kt @@ -84,7 +84,7 @@ public abstract class CallableRefactoring( callableFromEditor.getContainingDeclaration().getName().asString(), superString, "refactor") val title = IdeBundle.message("title.warning")!! - val icon = Messages.getQuestionIcon()!! + val icon = Messages.getQuestionIcon() return Messages.showDialog(message, title, options.toTypedArray(), 0, icon) } diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeInfo.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeInfo.kt index 9a15bb58bd2..532f2e5a4aa 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeInfo.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeInfo.kt @@ -48,7 +48,6 @@ import org.jetbrains.kotlin.utils.addToStdlib.singletonOrEmptyList import java.util.ArrayList import java.util.HashMap import java.util.LinkedHashSet -import kotlin.properties.Delegates public class JetChangeInfo( val methodDescriptor: JetMethodDescriptor, @@ -72,7 +71,7 @@ public class JetChangeInfo( private val newParameters = parameterInfos.toArrayList() private val originalPsiMethods: List = getMethod().toLightMethods() - private val oldNameToParameterIndex: Map by Delegates.lazy { + private val oldNameToParameterIndex: Map by lazy { val map = HashMap() val parameters = methodDescriptor.baseDescriptor.getValueParameters() @@ -81,7 +80,7 @@ public class JetChangeInfo( map } - public val isParameterSetOrOrderChanged: Boolean by Delegates.lazy { + public val isParameterSetOrOrderChanged: Boolean by lazy { val signatureParameters = getNonReceiverParameters() methodDescriptor.receiver != receiverParameterInfo || signatureParameters.size() != methodDescriptor.getParametersCount() || diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureData.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureData.kt index 0f0b43c0309..f2555aea6db 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureData.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureData.kt @@ -22,7 +22,6 @@ import com.intellij.refactoring.changeSignature.MethodDescriptor import com.intellij.refactoring.changeSignature.OverriderUsageInfo import com.intellij.usageView.UsageInfo import org.jetbrains.kotlin.asJava.KotlinLightMethod -import org.jetbrains.kotlin.asJava.LightClassUtil import org.jetbrains.kotlin.asJava.namedUnwrappedElement import org.jetbrains.kotlin.asJava.toLightMethods import org.jetbrains.kotlin.descriptors.* @@ -33,8 +32,6 @@ import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde import org.jetbrains.kotlin.idea.core.CollectingNameValidator import org.jetbrains.kotlin.idea.core.KotlinNameSuggester import org.jetbrains.kotlin.idea.refactoring.changeSignature.usages.JetCallableDefinitionUsage -import org.jetbrains.kotlin.idea.search.declarationsSearch.HierarchySearchRequest -import org.jetbrains.kotlin.idea.search.declarationsSearch.searchOverriders import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.JetCallableDeclaration import org.jetbrains.kotlin.psi.JetClass @@ -44,7 +41,6 @@ import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.DescriptorUtils import java.util.Collections import java.util.HashSet -import kotlin.properties.Delegates public class JetChangeSignatureData( override val baseDescriptor: CallableDescriptor, @@ -95,7 +91,7 @@ public class JetChangeSignatureData( override val original: JetMethodDescriptor get() = this - override val primaryCallables: Collection> by Delegates.lazy { + override val primaryCallables: Collection> by lazy { descriptorsForSignatureChange.map { val declaration = DescriptorToSourceUtilsIde.getAnyDeclaration(baseDeclaration.getProject(), it) assert(declaration != null) { "No declaration found for " + baseDescriptor } @@ -103,11 +99,11 @@ public class JetChangeSignatureData( } } - override val originalPrimaryCallable: JetCallableDefinitionUsage by Delegates.lazy { + override val originalPrimaryCallable: JetCallableDefinitionUsage by lazy { primaryCallables.first { it.getDeclaration() == baseDeclaration } } - override val affectedCallables: Collection by Delegates.lazy { + override val affectedCallables: Collection by lazy { primaryCallables + primaryCallables.flatMapTo(HashSet()) { primaryFunction -> val primaryDeclaration = primaryFunction.getDeclaration() as? JetCallableDeclaration val lightMethods = primaryDeclaration?.toLightMethods() ?: Collections.emptyList() diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetMethodDescriptor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetMethodDescriptor.kt index 7f93e37a641..1e8ac4d35b4 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetMethodDescriptor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetMethodDescriptor.kt @@ -25,7 +25,7 @@ import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.idea.refactoring.changeSignature.usages.JetCallableDefinitionUsage import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers -public trait JetMethodDescriptor : MethodDescriptor { +public interface JetMethodDescriptor : MethodDescriptor { enum class Kind(val isConstructor: Boolean) { FUNCTION(false), PRIMARY_CONSTRUCTOR(true), diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractableCodeDescriptor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractableCodeDescriptor.kt index 37a8a31ee16..3a6fa1e3664 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractableCodeDescriptor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractableCodeDescriptor.kt @@ -31,28 +31,25 @@ import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.Analysis import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValue.ExpressionValue import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValue.Initializer import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValue.Jump -import org.jetbrains.kotlin.idea.references.JetSimpleNameReference import org.jetbrains.kotlin.idea.references.JetSimpleNameReference.ShorteningMode import org.jetbrains.kotlin.idea.references.mainReference import org.jetbrains.kotlin.idea.util.approximateFlexibleTypes import org.jetbrains.kotlin.idea.util.isAnnotatedNotNull import org.jetbrains.kotlin.idea.util.isAnnotatedNullable -import org.jetbrains.kotlin.types.typeUtil.isUnit import org.jetbrains.kotlin.idea.util.psi.patternMatching.JetPsiRange import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.getQualifiedElementSelector import org.jetbrains.kotlin.psi.psiUtil.getQualifiedExpressionForSelector -import org.jetbrains.kotlin.psi.psiUtil.getQualifiedExpressionForSelectorOrThis import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.descriptorUtil.resolveTopLevelClass import org.jetbrains.kotlin.types.* +import org.jetbrains.kotlin.types.typeUtil.isUnit import java.util.Collections -import kotlin.properties.Delegates -trait Parameter { +interface Parameter { val argumentText: String val originalDescriptor: DeclarationDescriptor val name: String @@ -73,9 +70,9 @@ data class TypeParameter( val originalConstraints: List ) -trait Replacement: Function1 +interface Replacement: Function1 -trait ParameterReplacement : Replacement { +interface ParameterReplacement : Replacement { val parameter: Parameter fun copy(parameter: Parameter): ParameterReplacement } @@ -124,7 +121,7 @@ class FqNameReplacement(val fqName: FqName): Replacement { } } -trait OutputValue { +interface OutputValue { val originalExpressions: List val valueType: JetType @@ -207,7 +204,7 @@ abstract class OutputValueBoxer(val outputValues: List) { private val selectors = arrayOf("first", "second", "third") } - override val returnType: JetType by Delegates.lazy { + override val returnType: JetType by lazy { fun getType(): JetType { val boxingClass = when (outputValues.size()) { 1 -> return outputValues.first().valueType @@ -252,7 +249,7 @@ abstract class OutputValueBoxer(val outputValues: List) { } class AsList(outputValues: List): OutputValueBoxer(outputValues) { - override val returnType: JetType by Delegates.lazy { + override val returnType: JetType by lazy { if (outputValues.isEmpty()) DEFAULT_RETURN_TYPE else TypeUtils.substituteParameters( KotlinBuiltIns.getInstance().getList(), @@ -331,7 +328,7 @@ data class ExtractableCodeDescriptor( val returnType: JetType ) { val name: String get() = suggestedNames.firstOrNull() ?: "" - val duplicates: List by Delegates.lazy { findDuplicates() } + val duplicates: List by lazy { findDuplicates() } } enum class ExtractionTarget(val name: String) { diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionData.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionData.kt index aca42b16c17..4dccb27435d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionData.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionData.kt @@ -16,39 +16,35 @@ package org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine -import com.intellij.psi.PsiElement -import org.jetbrains.kotlin.descriptors.DeclarationDescriptor -import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall import com.intellij.openapi.project.Project import com.intellij.openapi.util.TextRange +import com.intellij.psi.PsiElement import com.intellij.psi.PsiNameIdentifierOwner -import kotlin.properties.Delegates -import java.util.HashMap -import org.jetbrains.kotlin.idea.codeInsight.JetFileReferencesResolver -import org.jetbrains.kotlin.resolve.BindingContext -import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde -import java.util.Collections -import org.jetbrains.kotlin.psi.psiUtil.isInsideOf -import java.util.ArrayList -import com.intellij.psi.PsiNamedElement import com.intellij.psi.util.PsiTreeUtil -import org.jetbrains.kotlin.descriptors.ClassDescriptor -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver -import org.jetbrains.kotlin.descriptors.ClassKind -import org.jetbrains.kotlin.resolve.calls.model.VariableAsFunctionResolvedCall +import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor +import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde +import org.jetbrains.kotlin.idea.codeInsight.JetFileReferencesResolver import org.jetbrains.kotlin.idea.core.compareDescriptors import org.jetbrains.kotlin.idea.core.refactoring.getContextForContainingDeclarationBody -import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall -import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils import org.jetbrains.kotlin.idea.util.psi.patternMatching.JetPsiRange -import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType -import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.getQualifiedExpressionForSelector +import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType +import org.jetbrains.kotlin.psi.psiUtil.isInsideOf +import org.jetbrains.kotlin.resolve.BindingContext +import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils +import org.jetbrains.kotlin.resolve.DescriptorUtils +import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall +import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall +import org.jetbrains.kotlin.resolve.calls.model.VariableAsFunctionResolvedCall import org.jetbrains.kotlin.resolve.calls.tasks.isSynthesizedInvoke import org.jetbrains.kotlin.resolve.descriptorUtil.isExtension +import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver import org.jetbrains.kotlin.types.JetType +import java.util.ArrayList +import java.util.Collections +import java.util.HashMap data class ExtractionOptions( val inferUnitTypeForUnusedValues: Boolean = true, @@ -106,7 +102,7 @@ data class ExtractionData( } } - val codeFragmentText: String by Delegates.lazy { + val codeFragmentText: String by lazy { getCodeFragmentTextRange()?.let { originalFile.getText()?.substring(it.getStartOffset(), it.getEndOffset()) } ?: "" } @@ -115,12 +111,12 @@ data class ExtractionData( val commonParent = PsiTreeUtil.findCommonParent(originalElements) as JetElement - val bindingContext: BindingContext? by Delegates.lazy { commonParent.getContextForContainingDeclarationBody() } + val bindingContext: BindingContext? by lazy { commonParent.getContextForContainingDeclarationBody() } - private val itFakeDeclaration by Delegates.lazy { JetPsiFactory(originalFile).createParameter("it: Any?") } - private val synthesizedInvokeDeclaration by Delegates.lazy { JetPsiFactory(originalFile).createFunction("fun invoke() {}") } + private val itFakeDeclaration by lazy { JetPsiFactory(originalFile).createParameter("it: Any?") } + private val synthesizedInvokeDeclaration by lazy { JetPsiFactory(originalFile).createFunction("fun invoke() {}") } - val refOffsetToDeclaration by Delegates.lazy { + val refOffsetToDeclaration by lazy { fun isExtractableIt(descriptor: DeclarationDescriptor, context: BindingContext): Boolean { if (!(descriptor is ValueParameterDescriptor && (context[BindingContext.AUTO_CREATED_IT, descriptor] ?: false))) return false val function = DescriptorToSourceUtils.descriptorToDeclaration(descriptor.getContainingDeclaration()) as? JetFunctionLiteral diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/duplicateUtil.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/duplicateUtil.kt index 605fe4556e7..5c243628274 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/duplicateUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/duplicateUtil.kt @@ -81,7 +81,7 @@ public fun processDuplicates( project, JetRefactoringBundle.message( "0.has.detected.1.code.fragments.in.this.file.that.can.be.replaced.with.a.call.to.extracted.declaration", - ApplicationNamesInfo.getInstance()!!.getProductName(), + ApplicationNamesInfo.getInstance().getProductName(), duplicateReplacers.size() ), "Process Duplicates", diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractableAnalysisUtil.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractableAnalysisUtil.kt index 6304cdc897c..ab29f08421c 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractableAnalysisUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractableAnalysisUtil.kt @@ -19,7 +19,6 @@ package org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine import com.intellij.openapi.diagnostic.Logger import com.intellij.psi.PsiElement import com.intellij.psi.PsiNamedElement -import com.intellij.psi.util.PsiTreeUtil import com.intellij.refactoring.util.RefactoringUIUtil import com.intellij.util.containers.MultiMap import org.jetbrains.kotlin.builtins.KotlinBuiltIns @@ -43,14 +42,12 @@ import org.jetbrains.kotlin.idea.caches.resolve.analyzeFully import org.jetbrains.kotlin.idea.caches.resolve.findModuleDescriptor import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde +import org.jetbrains.kotlin.idea.core.KotlinNameSuggester +import org.jetbrains.kotlin.idea.core.NewDeclarationNameValidator import org.jetbrains.kotlin.idea.core.comparePossiblyOverridingDescriptors import org.jetbrains.kotlin.idea.core.getResolutionScope -import org.jetbrains.kotlin.idea.core.KotlinNameSuggester import org.jetbrains.kotlin.idea.core.refactoring.createTempCopy -import org.jetbrains.kotlin.idea.core.refactoring.getContextForContainingDeclarationBody import org.jetbrains.kotlin.idea.imports.importableFqNameSafe -import org.jetbrains.kotlin.idea.kdoc.getResolutionScope -import org.jetbrains.kotlin.idea.core.NewDeclarationNameValidator import org.jetbrains.kotlin.idea.refactoring.JetRefactoringBundle import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.AnalysisResult.ErrorMessage import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.AnalysisResult.Status @@ -63,30 +60,26 @@ import org.jetbrains.kotlin.idea.references.mainReference import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers import org.jetbrains.kotlin.idea.util.approximateWithResolvableType import org.jetbrains.kotlin.idea.util.isResolvableInScope -import org.jetbrains.kotlin.types.typeUtil.makeNullable import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.* import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils -import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.bindingContextUtil.isUsedAsStatement -import org.jetbrains.kotlin.resolve.calls.CallTransformer import org.jetbrains.kotlin.resolve.calls.callUtil.getCalleeExpressionIfAny import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValueFactory import org.jetbrains.kotlin.resolve.calls.tasks.isSynthesizedInvoke import org.jetbrains.kotlin.resolve.scopes.JetScope -import org.jetbrains.kotlin.resolve.scopes.JetScopeUtils import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver import org.jetbrains.kotlin.types.* import org.jetbrains.kotlin.types.checker.JetTypeChecker +import org.jetbrains.kotlin.types.typeUtil.makeNullable import org.jetbrains.kotlin.utils.DFS import org.jetbrains.kotlin.utils.DFS.CollectingNodeHandler import org.jetbrains.kotlin.utils.DFS.Neighbors import org.jetbrains.kotlin.utils.DFS.VisitedWithSet import java.util.* -import kotlin.properties.Delegates private val DEFAULT_RETURN_TYPE = KotlinBuiltIns.getInstance().getUnitType() private val DEFAULT_PARAMETER_TYPE = KotlinBuiltIns.getInstance().getNullableAnyType() @@ -519,12 +512,12 @@ private class MutableParameter( override var mirrorVarName: String? = null - private val defaultType: JetType by Delegates.lazy { + private val defaultType: JetType by lazy { writable = false TypeUtils.intersect(JetTypeChecker.DEFAULT, defaultTypes)!! } - private val parameterTypeCandidates: List by Delegates.lazy { + private val parameterTypeCandidates: List by lazy { writable = false val typePredicate = and(typePredicates) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterDialog.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterDialog.kt index 4757952c6ce..a21bfdbe1ea 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterDialog.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterDialog.kt @@ -166,7 +166,7 @@ public class KotlinIntroduceParameterDialog private constructor( doCancelAction() } } - parameterTablePanel.init(lambdaExtractionDescriptor!!.receiverParameter, lambdaExtractionDescriptor.parameters) + parameterTablePanel.init(lambdaExtractionDescriptor.receiverParameter, lambdaExtractionDescriptor.parameters) gbConstraints.insets = Insets(4, 4, 4, 8) gbConstraints.gridwidth = 1 diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterHandler.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterHandler.kt index d8deb8e1b8c..05fc9e6528c 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterHandler.kt @@ -202,7 +202,7 @@ fun selectNewParameterContext( ) } -public trait KotlinIntroduceParameterHelper { +public interface KotlinIntroduceParameterHelper { object Default: KotlinIntroduceParameterHelper fun configure(descriptor: IntroduceParameterDescriptor): IntroduceParameterDescriptor = descriptor @@ -390,7 +390,7 @@ private fun findInternalUsagesOfParametersAndReceiver( return usages } -trait KotlinIntroduceLambdaParameterHelper: KotlinIntroduceParameterHelper { +interface KotlinIntroduceLambdaParameterHelper: KotlinIntroduceParameterHelper { object Default: KotlinIntroduceLambdaParameterHelper fun configureExtractLambda(descriptor: ExtractableCodeDescriptor): ExtractableCodeDescriptor = descriptor diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt index 1f7957a6f59..c9009979351 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt @@ -137,7 +137,7 @@ public fun PsiElement.getAllExtractionContainers(strict: Boolean = true): List containers.add(element as JetElement) } - element = element!!.getParent() + element = element.getParent() } return containers diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/KotlinMoveTarget.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/KotlinMoveTarget.kt index 54df326fd24..39b8727184a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/KotlinMoveTarget.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/KotlinMoveTarget.kt @@ -16,17 +16,15 @@ package org.jetbrains.kotlin.idea.refactoring.move.moveTopLevelDeclarations -import com.intellij.refactoring.PackageWrapper -import com.intellij.refactoring.MoveDestination -import org.jetbrains.kotlin.psi.JetFile +import com.intellij.openapi.project.Project import com.intellij.psi.PsiElement import com.intellij.psi.PsiFile import com.intellij.psi.PsiManager +import com.intellij.refactoring.PackageWrapper import org.jetbrains.kotlin.name.FqName -import com.intellij.openapi.project.Project -import kotlin.properties.Delegates +import org.jetbrains.kotlin.psi.JetFile -public trait KotlinMoveTarget { +public interface KotlinMoveTarget { val packageWrapper: PackageWrapper? fun getOrCreateTargetPsi(originalPsi: PsiElement): PsiFile? fun getTargetPsiIfExists(originalPsi: PsiElement): PsiFile? @@ -52,7 +50,7 @@ public class DeferredJetFileKotlinMoveTarget( project: Project, val packageFqName: FqName, createFile: () -> JetFile?): KotlinMoveTarget { - val createdFile: JetFile? by Delegates.lazy(createFile) + val createdFile: JetFile? by lazy(createFile) override val packageWrapper: PackageWrapper = PackageWrapper(PsiManager.getInstance(project), packageFqName.asString()) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsProcessor.kt index 38527955601..4f838b3de5a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsProcessor.kt @@ -65,7 +65,7 @@ import java.util.ArrayList import java.util.HashMap import java.util.HashSet -trait Mover: (originalElement: JetNamedDeclaration, targetFile: JetFile) -> JetNamedDeclaration { +interface Mover: (originalElement: JetNamedDeclaration, targetFile: JetFile) -> JetNamedDeclaration { object Default: Mover { override fun invoke(originalElement: JetNamedDeclaration, targetFile: JetFile): JetNamedDeclaration { val newElement = targetFile.add(originalElement) as JetNamedDeclaration diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt index bcc5ac28dbb..47cdd1e7c42 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt @@ -120,7 +120,7 @@ public fun JetElement.getInternalReferencesToUpdateOnPackageNameChange(packageNa packageName == packageNameInfo.oldPackageName, packageName == packageNameInfo.newPackageName, isImported(descriptor) -> { - refExpr.mainReference?.let { createMoveUsageInfoIfPossible(it, declaration, false) } + createMoveUsageInfoIfPossible(refExpr.mainReference, declaration, false) } else -> null diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinFunctionProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinFunctionProcessor.kt index 34a97eef4e9..a7ec1aa92a9 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinFunctionProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinFunctionProcessor.kt @@ -27,10 +27,9 @@ import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.psi.JetFunction import org.jetbrains.kotlin.psi.JetNamedFunction import org.jetbrains.kotlin.psi.JetSecondaryConstructor -import kotlin.properties.Delegates public class RenameKotlinFunctionProcessor : RenameKotlinPsiProcessor() { - private val javaMethodProcessorInstance by Delegates.lazy { + private val javaMethodProcessorInstance by lazy { // KT-4250 // RenamePsiElementProcessor.EP_NAME.findExtension(javaClass())!! diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinJavaSafeDeleteDelegate.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinJavaSafeDeleteDelegate.kt index eacd72ed142..f41f06f93c4 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinJavaSafeDeleteDelegate.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinJavaSafeDeleteDelegate.kt @@ -38,7 +38,7 @@ public class KotlinJavaSafeDeleteDelegate : JavaSafeDeleteDelegate { ) { if (reference !is JetReference) return - val element = reference.getElement() as JetElement + val element = reference.getElement() val callExpression = element.getNonStrictParentOfType() if (callExpression == null) return diff --git a/idea/src/org/jetbrains/kotlin/idea/run/JetRunConfigurationEditor.java b/idea/src/org/jetbrains/kotlin/idea/run/JetRunConfigurationEditor.java index 684786ac3fb..3a11421ceb6 100644 --- a/idea/src/org/jetbrains/kotlin/idea/run/JetRunConfigurationEditor.java +++ b/idea/src/org/jetbrains/kotlin/idea/run/JetRunConfigurationEditor.java @@ -39,7 +39,7 @@ public class JetRunConfigurationEditor extends SettingsEditor mainClass; - private ConfigurationModuleSelector myModuleSelector; + private final ConfigurationModuleSelector myModuleSelector; private JComponent anchor; private final LabeledComponent moduleChooser; diff --git a/idea/src/org/jetbrains/kotlin/idea/util/DebuggerUtils.java b/idea/src/org/jetbrains/kotlin/idea/util/DebuggerUtils.java index d9dbbab57de..578f2a3bcc9 100644 --- a/idea/src/org/jetbrains/kotlin/idea/util/DebuggerUtils.java +++ b/idea/src/org/jetbrains/kotlin/idea/util/DebuggerUtils.java @@ -175,7 +175,7 @@ public class DebuggerUtils { toProcess.add(containingFile); } - return new kotlin.Pair>(context, new ArrayList(toProcess)); + return new Pair>(context, new ArrayList(toProcess)); } @NotNull diff --git a/idea/src/org/jetbrains/kotlin/idea/util/psi/patternMatching/JetPsiRange.kt b/idea/src/org/jetbrains/kotlin/idea/util/psi/patternMatching/JetPsiRange.kt index af535fd6023..171126152e7 100644 --- a/idea/src/org/jetbrains/kotlin/idea/util/psi/patternMatching/JetPsiRange.kt +++ b/idea/src/org/jetbrains/kotlin/idea/util/psi/patternMatching/JetPsiRange.kt @@ -29,7 +29,7 @@ import org.jetbrains.kotlin.idea.util.psi.patternMatching.JetPsiRange.Match private val SIGNIFICANT_FILTER = { e: PsiElement -> e !is PsiWhiteSpace && e !is PsiComment && e.getTextLength() > 0 } -public trait JetPsiRange { +public interface JetPsiRange { public object Empty : JetPsiRange { override val elements: List get() = Collections.emptyList() diff --git a/idea/src/org/jetbrains/kotlin/idea/util/psi/patternMatching/JetPsiUnifier.kt b/idea/src/org/jetbrains/kotlin/idea/util/psi/patternMatching/JetPsiUnifier.kt index 076559fab4c..d63fc218a48 100644 --- a/idea/src/org/jetbrains/kotlin/idea/util/psi/patternMatching/JetPsiUnifier.kt +++ b/idea/src/org/jetbrains/kotlin/idea/util/psi/patternMatching/JetPsiUnifier.kt @@ -90,7 +90,7 @@ import org.jetbrains.kotlin.idea.core.refactoring.getContextForContainingDeclara import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers import org.jetbrains.kotlin.psi.JetOperationReferenceExpression -public trait UnificationResult { +public interface UnificationResult { public enum class Status { MATCHED { override fun and(other: Status): Status = other @@ -107,7 +107,7 @@ public trait UnificationResult { override val status: Status get() = UNMATCHED } - trait Matched: UnificationResult { + interface Matched: UnificationResult { val substitution: Map override val status: Status get() = MATCHED } diff --git a/idea/src/org/jetbrains/kotlin/plugin/findUsages/handlers/KotlinFindUsagesHandlerDecorator.kt b/idea/src/org/jetbrains/kotlin/plugin/findUsages/handlers/KotlinFindUsagesHandlerDecorator.kt index a47294bf7b0..259da975ffc 100644 --- a/idea/src/org/jetbrains/kotlin/plugin/findUsages/handlers/KotlinFindUsagesHandlerDecorator.kt +++ b/idea/src/org/jetbrains/kotlin/plugin/findUsages/handlers/KotlinFindUsagesHandlerDecorator.kt @@ -20,7 +20,7 @@ import com.intellij.openapi.extensions.ExtensionPointName import com.intellij.psi.PsiElement import com.intellij.find.findUsages.FindUsagesHandler -public trait KotlinFindUsagesHandlerDecorator { +public interface KotlinFindUsagesHandlerDecorator { companion object { public val EP_NAME: ExtensionPointName = ExtensionPointName.create("org.jetbrains.kotlin.findUsagesHandlerDecorator")!! } diff --git a/idea/tests/org/jetbrains/kotlin/idea/debugger/AbstractKotlinSteppingTest.kt b/idea/tests/org/jetbrains/kotlin/idea/debugger/AbstractKotlinSteppingTest.kt index 897163a5f8c..08ee980fa15 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/debugger/AbstractKotlinSteppingTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/debugger/AbstractKotlinSteppingTest.kt @@ -112,7 +112,7 @@ public abstract class AbstractKotlinSteppingTest : KotlinDebuggerTestBase() { stepTargets.filterIsInstance().map { stepTarget -> when (stepTarget) { - is KotlinMethodSmartStepTarget -> KotlinBasicStepMethodFilter(stepTarget as KotlinMethodSmartStepTarget) + is KotlinMethodSmartStepTarget -> KotlinBasicStepMethodFilter(stepTarget) else -> BasicStepMethodFilter(stepTarget.getMethod(), stepTarget.getCallingExpressionLines()) } } diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/InplaceRenameTest.kt b/idea/tests/org/jetbrains/kotlin/idea/refactoring/InplaceRenameTest.kt index 9197ae2f110..6b188e0f46c 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/InplaceRenameTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/InplaceRenameTest.kt @@ -88,7 +88,7 @@ public class InplaceRenameTest : LightPlatformCodeInsightTestCase() { assert(range != null) object : WriteCommandAction.Simple(project) { override fun run() { - editor.getDocument().replaceString(range!!.getStartOffset(), range!!.getEndOffset(), newName) + editor.getDocument().replaceString(range!!.getStartOffset(), range.getEndOffset(), newName) } }.execute().throwException() diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/AbstractJetExtractionTest.kt b/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/AbstractJetExtractionTest.kt index 9ec7d254000..eb30ba0a2e1 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/AbstractJetExtractionTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/AbstractJetExtractionTest.kt @@ -228,7 +228,7 @@ public abstract class AbstractJetExtractionTest() : JetLightCodeInsightFixtureTe val handler = KotlinIntroducePropertyHandler(helper) val editor = fixture.getEditor() handler.selectElements(editor, file) { elements, previousSibling -> - handler.doInvoke(getProject(), editor, file as JetFile, elements, explicitPreviousSibling ?: previousSibling) + handler.doInvoke(getProject(), editor, file, elements, explicitPreviousSibling ?: previousSibling) } } } diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/AbstractRenameTest.kt b/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/AbstractRenameTest.kt index 0dd94677975..ae2d3fe9450 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/AbstractRenameTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/AbstractRenameTest.kt @@ -64,7 +64,7 @@ private enum class RenameType { KOTLIN_CLASS, KOTLIN_FUNCTION, KOTLIN_PROPERTY, - KOTLIN_PACKAGE + KOTLIN_PACKAGE, MARKED_ELEMENT } diff --git a/idea/tests/org/jetbrains/kotlin/idea/structureView/AbstractKotlinFileStructureTest.kt b/idea/tests/org/jetbrains/kotlin/idea/structureView/AbstractKotlinFileStructureTest.kt index cd5e21e9cb8..fbf94b865a9 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/structureView/AbstractKotlinFileStructureTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/structureView/AbstractKotlinFileStructureTest.kt @@ -53,7 +53,7 @@ public abstract class AbstractKotlinFileStructureTest : JetLightCodeInsightFixtu } protected fun FileStructurePopup.setup() { - val fileText = FileUtil.loadFile(File(getTestDataPath(), fileName()!!), true) + val fileText = FileUtil.loadFile(File(getTestDataPath(), fileName()), true) val withInherited = InTextDirectivesUtils.isDirectiveDefined(fileText, "WITH_INHERITED") setTreeActionState(javaClass(), withInherited)