diff --git a/eval4j/src/org/jetbrains/eval4j/interpreter.kt b/eval4j/src/org/jetbrains/eval4j/interpreter.kt index ad9bdd3c1d9..68863f8ad60 100644 --- a/eval4j/src/org/jetbrains/eval4j/interpreter.kt +++ b/eval4j/src/org/jetbrains/eval4j/interpreter.kt @@ -16,23 +16,16 @@ package org.jetbrains.eval4j -import org.jetbrains.org.objectweb.asm.tree.analysis.* import org.jetbrains.org.objectweb.asm.Handle import org.jetbrains.org.objectweb.asm.Opcodes.* import org.jetbrains.org.objectweb.asm.Type -import org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode -import org.jetbrains.org.objectweb.asm.tree.FieldInsnNode -import org.jetbrains.org.objectweb.asm.tree.IntInsnNode -import org.jetbrains.org.objectweb.asm.tree.LdcInsnNode -import org.jetbrains.org.objectweb.asm.tree.MethodInsnNode -import org.jetbrains.org.objectweb.asm.tree.MultiANewArrayInsnNode -import org.jetbrains.org.objectweb.asm.tree.TypeInsnNode -import org.jetbrains.org.objectweb.asm.tree.JumpInsnNode -import org.jetbrains.org.objectweb.asm.tree.IincInsnNode +import org.jetbrains.org.objectweb.asm.tree.* +import org.jetbrains.org.objectweb.asm.tree.analysis.AnalyzerException +import org.jetbrains.org.objectweb.asm.tree.analysis.Interpreter class UnsupportedByteCodeException(message: String) : RuntimeException(message) -public trait Eval { +public interface Eval { public fun loadClass(classType: Type): Value public fun loadString(str: String): Value public fun newInstance(classType: Type): Value @@ -97,7 +90,7 @@ class SingleInstructionInterpreter(private val eval: Eval) : Interpreter( is Double -> double(cst) is String -> eval.loadString(cst) is Type -> { - val sort = (cst as Type).getSort() + val sort = cst.getSort() when (sort) { Type.OBJECT, Type.ARRAY -> eval.loadClass(cst) Type.METHOD -> throw UnsupportedByteCodeException("Mothod handles are not supported") diff --git a/eval4j/src/org/jetbrains/eval4j/interpreterLoop.kt b/eval4j/src/org/jetbrains/eval4j/interpreterLoop.kt index 04451edaf53..233f8390ef2 100644 --- a/eval4j/src/org/jetbrains/eval4j/interpreterLoop.kt +++ b/eval4j/src/org/jetbrains/eval4j/interpreterLoop.kt @@ -24,7 +24,7 @@ import org.jetbrains.org.objectweb.asm.tree.analysis.Frame import org.jetbrains.org.objectweb.asm.util.Printer import java.util.ArrayList -public trait InterpreterResult { +public interface InterpreterResult { override fun toString(): String } @@ -46,7 +46,7 @@ public class AbnormalTermination(public val message: String): InterpreterResult override fun toString(): String = "Terminated abnormally: $message" } -public trait InterpretationEventHandler { +public interface InterpretationEventHandler { object NONE : InterpretationEventHandler { override fun instructionProcessed(insn: AbstractInsnNode): InterpreterResult? = null override fun exceptionThrown(currentState: Frame, currentInsn: AbstractInsnNode, exception: Value): InterpreterResult? = null @@ -80,7 +80,7 @@ public fun interpreterLoop( val firstInsn = m.instructions.getFirst() if (firstInsn == null) throw IllegalArgumentException("Empty method") - var currentInsn = firstInsn!! + var currentInsn = firstInsn fun goto(nextInsn: AbstractInsnNode?) { if (nextInsn == null) throw IllegalArgumentException("Instruction flow ended with no RETURN") diff --git a/eval4j/src/org/jetbrains/eval4j/values.kt b/eval4j/src/org/jetbrains/eval4j/values.kt index f7b79d68c35..dab6f43fe83 100644 --- a/eval4j/src/org/jetbrains/eval4j/values.kt +++ b/eval4j/src/org/jetbrains/eval4j/values.kt @@ -19,7 +19,7 @@ package org.jetbrains.eval4j import org.jetbrains.org.objectweb.asm.Type import org.jetbrains.org.objectweb.asm.tree.LabelNode -public trait Value : org.jetbrains.org.objectweb.asm.tree.analysis.Value { +public interface Value : org.jetbrains.org.objectweb.asm.tree.analysis.Value { public val asmType: Type public val valid: Boolean override fun getSize(): Int = asmType.getSize() diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/implicitReceiversUtils.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/implicitReceiversUtils.kt index acf277e9f3b..4f6bdb4b995 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/implicitReceiversUtils.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/implicitReceiversUtils.kt @@ -53,7 +53,7 @@ public fun JetScope.getImplicitReceiversWithInstanceToExpression(): Map() diff --git a/idea/ide-common/src/org/jetbrains/kotlin/resolve/lazy/ProbablyNothingCallableNames.kt b/idea/ide-common/src/org/jetbrains/kotlin/resolve/lazy/ProbablyNothingCallableNames.kt index e00bd451044..1b4df3ebdc1 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/resolve/lazy/ProbablyNothingCallableNames.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/resolve/lazy/ProbablyNothingCallableNames.kt @@ -16,7 +16,7 @@ package org.jetbrains.kotlin.resolve.lazy -public trait ProbablyNothingCallableNames { +public interface ProbablyNothingCallableNames { public fun functionNames(): Collection public fun propertyNames(): Collection } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinResolveCache.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinResolveCache.kt index bea4defa543..26e696631cf 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinResolveCache.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinResolveCache.kt @@ -21,7 +21,6 @@ import com.intellij.openapi.project.DumbService import com.intellij.openapi.project.IndexNotReadyException import com.intellij.openapi.project.Project import com.intellij.psi.PsiElement -import com.intellij.psi.PsiFile import com.intellij.psi.util.CachedValueProvider import com.intellij.psi.util.CachedValuesManager import com.intellij.psi.util.PsiModificationTracker @@ -42,17 +41,12 @@ import org.jetbrains.kotlin.idea.project.TargetPlatform import org.jetbrains.kotlin.idea.project.TargetPlatformDetector import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.resolve.* -import org.jetbrains.kotlin.resolve.bindingContextUtil.getDataFlowInfo -import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode -import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassDescriptor -import org.jetbrains.kotlin.resolve.scopes.ChainedScope -import org.jetbrains.kotlin.resolve.scopes.JetScope import org.jetbrains.kotlin.resolve.util.getScopeAndDataFlowForAnalyzeFragment import org.jetbrains.kotlin.types.TypeUtils import java.util.HashMap -public trait CacheExtension { +public interface CacheExtension { public val platform: TargetPlatform public fun getData(resolverProvider: ModuleResolverProvider): T } @@ -129,8 +123,8 @@ private class PerFileAnalysisCache(val file: JetFile, val resolveSession: Resolv descendantsOfCurrent.clear() } - descendantsOfCurrent.add(current!!) - current = current!!.getParent() + descendantsOfCurrent.add(current) + current = current.getParent() } cache.keySet().removeAll(toRemove) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ModuleDependencyMapper.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ModuleDependencyMapper.kt index 2c8295abc5b..1e4f214af81 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ModuleDependencyMapper.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ModuleDependencyMapper.kt @@ -111,7 +111,7 @@ private fun collectAllModuleInfosFromIdeaModel(project: Project): List(project: Project, provider: () -> CachedValuePr public fun getValue(): V { return synchronized(cachedValue) { - cachedValue.getValue() as V + cachedValue.getValue() } } } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/codeInsight/shorten/shortenWaitingSet.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/codeInsight/shorten/shortenWaitingSet.kt index dff45f60ff3..ab5c5a24626 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/codeInsight/shorten/shortenWaitingSet.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/codeInsight/shorten/shortenWaitingSet.kt @@ -59,7 +59,7 @@ private fun Project.getOrCreateElementsToShorten(): MutableSet { KotlinObjectStubImpl( diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/ClsStubBuilderContext.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/ClsStubBuilderContext.kt index 69dde295f70..1d19cf14dce 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/ClsStubBuilderContext.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/ClsStubBuilderContext.kt @@ -23,12 +23,11 @@ import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.ProtoBuf +import org.jetbrains.kotlin.serialization.deserialization.AnnotationAndConstantLoader import org.jetbrains.kotlin.serialization.deserialization.ClassDataFinder import org.jetbrains.kotlin.serialization.deserialization.ErrorReporter import org.jetbrains.kotlin.serialization.deserialization.NameResolver import org.jetbrains.kotlin.storage.LockBasedStorageManager -import org.jetbrains.kotlin.load.kotlin.KotlinJvmBinaryClass -import org.jetbrains.kotlin.serialization.deserialization.AnnotationAndConstantLoader class ClsStubBuilderComponents( val classDataFinder: ClassDataFinder, @@ -42,7 +41,7 @@ class ClsStubBuilderComponents( } } -trait TypeParameters { +interface TypeParameters { fun get(id: Int): Name fun child(nameResolver: NameResolver, innerTypeParameters: List) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/TypeClsStubBuilder.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/TypeClsStubBuilder.kt index 61cc3156c56..66ae2034b30 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/TypeClsStubBuilder.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/TypeClsStubBuilder.kt @@ -216,7 +216,7 @@ class TypeClsStubBuilder(private val c: ClsStubBuilderContext) { val typeConstraintListStub = KotlinPlaceHolderStubImpl(parent, JetStubElementTypes.TYPE_CONSTRAINT_LIST) for ((name, type) in protosForTypeConstraintList) { val typeConstraintStub = KotlinPlaceHolderStubImpl(typeConstraintListStub, JetStubElementTypes.TYPE_CONSTRAINT) - KotlinNameReferenceExpressionStubImpl(typeConstraintStub, name.ref()!!) + KotlinNameReferenceExpressionStubImpl(typeConstraintStub, name.ref()) createTypeReferenceStub(typeConstraintStub, type) } } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/textBuilder/ResolverForDecompiler.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/textBuilder/ResolverForDecompiler.kt index 94a2068b2c3..6299d4a1df5 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/textBuilder/ResolverForDecompiler.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/textBuilder/ResolverForDecompiler.kt @@ -21,7 +21,7 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.name.ClassId -public trait ResolverForDecompiler { +public interface ResolverForDecompiler { public fun resolveTopLevelClass(classId: ClassId): ClassDescriptor? public fun resolveDeclarationsInPackage(packageFqName: FqName): Collection diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/HtmlTabledDescriptorRenderer.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/HtmlTabledDescriptorRenderer.java index 01c97d182ec..53f9e76fe82 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/HtmlTabledDescriptorRenderer.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/HtmlTabledDescriptorRenderer.java @@ -173,7 +173,7 @@ public class HtmlTabledDescriptorRenderer extends TabledDescriptorRenderer { @Override public void appendAfterValueParameter(@NotNull ValueParameterDescriptor parameter, @NotNull StringBuilder builder) { - boolean last = ((FunctionDescriptor) parameter.getContainingDeclaration()).getValueParameters().size() - 1 == parameter.getIndex(); + boolean last = parameter.getContainingDeclaration().getValueParameters().size() - 1 == parameter.getIndex(); if (!last) { builder.append(","); } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinSuppressableWarningProblemGroup.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinSuppressableWarningProblemGroup.kt index 041030aff2c..4988b5af9cc 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinSuppressableWarningProblemGroup.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinSuppressableWarningProblemGroup.kt @@ -16,16 +16,16 @@ package org.jetbrains.kotlin.idea.highlighter +import com.intellij.codeInspection.SuppressIntentionAction import com.intellij.codeInspection.SuppressableProblemGroup import com.intellij.psi.PsiElement -import com.intellij.codeInspection.SuppressIntentionAction +import org.jetbrains.kotlin.diagnostics.DiagnosticFactory import org.jetbrains.kotlin.diagnostics.Severity -import java.util.Collections +import org.jetbrains.kotlin.idea.quickfix.AnnotationHostKind import org.jetbrains.kotlin.idea.quickfix.KotlinSuppressIntentionAction import org.jetbrains.kotlin.psi.* -import org.jetbrains.kotlin.idea.quickfix.AnnotationHostKind -import org.jetbrains.kotlin.diagnostics.DiagnosticFactory import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType +import java.util.Collections class KotlinSuppressableWarningProblemGroup( private val diagnosticFactory: DiagnosticFactory<*> @@ -55,7 +55,7 @@ fun createSuppressWarningActions(element: PsiElement, diagnosticFactory: Diagnos var suppressAtStatementAllowed = true while (current != null) { if (current is JetDeclaration) { - val declaration = current as JetDeclaration + val declaration = current val kind = DeclarationKindDetector.detect(declaration) if (kind != null) { actions.add(KotlinSuppressIntentionAction(declaration, diagnosticFactory, kind)) @@ -64,15 +64,14 @@ fun createSuppressWarningActions(element: PsiElement, diagnosticFactory: Diagnos } else if (current is JetExpression && suppressAtStatementAllowed) { // Add suppress action at first statement - if ((current as PsiElement).getParent() is JetBlockExpression) { - val expression = current as JetExpression - actions.add(KotlinSuppressIntentionAction(expression, diagnosticFactory, + if (current.getParent() is JetBlockExpression) { + actions.add(KotlinSuppressIntentionAction(current, diagnosticFactory, AnnotationHostKind("statement", "", true))) suppressAtStatementAllowed = false } } - current = current?.getParent() + current = current.getParent() } return actions } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/declarationsSearch/declarationSearchUtil.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/declarationsSearch/declarationSearchUtil.kt index 6788d61c831..89ca829738d 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/declarationsSearch/declarationSearchUtil.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/declarationsSearch/declarationSearchUtil.kt @@ -29,12 +29,12 @@ import java.util.HashSet import com.intellij.openapi.progress.ProgressIndicatorProvider import org.jetbrains.kotlin.psi.psiUtil.contains -trait DeclarationSearchRequest { +interface DeclarationSearchRequest { val project: Project val searchScope: SearchScope } -public trait SearchRequestWithElement : DeclarationSearchRequest { +public interface SearchRequestWithElement : DeclarationSearchRequest { val originalElement: T override val project: Project get() = originalElement.getProject() } @@ -65,7 +65,7 @@ public class HierarchySearchRequest ( HierarchySearchRequest(newOriginalElement, searchScope, searchDeeply) } -trait HierarchyTraverser { +interface HierarchyTraverser { protected fun nextElements(current: T): Iterable protected fun shouldDescend(element: T): Boolean diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/searchHelpers.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/searchHelpers.kt index dc4439c4ec4..e215a6c39bd 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/searchHelpers.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/searchHelpers.kt @@ -16,29 +16,29 @@ package org.jetbrains.kotlin.idea.search.usagesSearch -import com.intellij.psi.PsiReference -import org.jetbrains.kotlin.idea.search.usagesSearch.* -import org.jetbrains.kotlin.idea.search.usagesSearch.UsagesSearchFilter.* -import java.util.Collections -import java.util.ArrayList import com.intellij.psi.PsiNamedElement +import com.intellij.psi.PsiReference import com.intellij.util.Processor +import com.intellij.util.containers.ContainerUtil import org.jetbrains.kotlin.asJava.LightClassUtil import org.jetbrains.kotlin.asJava.LightClassUtil.PropertyAccessorsPsiMethods -import org.jetbrains.kotlin.psi.psiUtil.* -import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.lexer.JetSingleValueToken -import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor -import org.jetbrains.kotlin.lexer.JetTokens -import org.jetbrains.kotlin.idea.references.* -import com.intellij.util.containers.ContainerUtil import org.jetbrains.kotlin.idea.caches.resolve.analyze -import org.jetbrains.kotlin.idea.caches.resolve.analyzeFully +import org.jetbrains.kotlin.idea.references.matchesTarget +import org.jetbrains.kotlin.idea.search.usagesSearch.UsagesSearchFilter.False +import org.jetbrains.kotlin.idea.search.usagesSearch.UsagesSearchFilter.True +import org.jetbrains.kotlin.lexer.JetSingleValueToken +import org.jetbrains.kotlin.lexer.JetTokens +import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.* -import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall +import org.jetbrains.kotlin.psi.psiUtil.effectiveDeclarations +import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType +import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType +import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.scopes.receivers.ClassReceiver import org.jetbrains.kotlin.utils.addToStdlib.singletonOrEmptyList +import java.util.ArrayList +import java.util.Collections val isTargetUsage = (PsiReference::matchesTarget).searchFilter @@ -130,7 +130,7 @@ public abstract class UsagesSearchHelper { val isNotImportUsage = !((PsiReference::isImportUsage).searchFilter) -trait ImportAwareSearchHelper { +interface ImportAwareSearchHelper { public val skipImports: Boolean protected val isFilteredImport: UsagesSearchFilter @@ -206,7 +206,7 @@ class ClassDeclarationsUsagesSearchHelper( val isOverrideUsage = (PsiReference::isCallableOverrideUsage).searchFilter -trait OverrideSearchHelper { +interface OverrideSearchHelper { public val selfUsages: Boolean public val overrideUsages: Boolean diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/usagesSearch.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/usagesSearch.kt index e7431fc9b94..02e034d2e5f 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/usagesSearch.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/usagesSearch.kt @@ -88,7 +88,7 @@ public data class UsagesSearchTarget( get() = if (restrictByTargetScope) scope and element.effectiveScope else scope } -public trait UsagesSearchFilter { +public interface UsagesSearchFilter { object False: UsagesSearchFilter { override fun accepts(ref: PsiReference, item: UsagesSearchRequestItem): Boolean = false } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/plugin/references/SimpleNameReferenceExtension.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/plugin/references/SimpleNameReferenceExtension.kt index 00ddf46edf1..94b1739602a 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/plugin/references/SimpleNameReferenceExtension.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/plugin/references/SimpleNameReferenceExtension.kt @@ -21,7 +21,7 @@ import org.jetbrains.kotlin.idea.references.JetSimpleNameReference import com.intellij.psi.PsiElement import org.jetbrains.kotlin.psi.JetPsiFactory -public trait SimpleNameReferenceExtension { +public interface SimpleNameReferenceExtension { companion object { public val EP_NAME: ExtensionPointName = ExtensionPointName.create("org.jetbrains.kotlin.simpleNameReferenceExtension")!! }