diff --git a/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt b/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt index 5155ef5c305..38c468329fb 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt @@ -31,17 +31,15 @@ import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.JetFile import org.jetbrains.kotlin.resolve.lazy.ResolveSession -import org.jetbrains.kotlin.storage.StorageManager import java.util.ArrayList import java.util.HashMap -import kotlin.properties.Delegates -public trait ResolverForModule { +public interface ResolverForModule { public val lazyResolveSession: ResolveSession public val packageFragmentProvider: PackageFragmentProvider } -public trait ResolverForProject { +public interface ResolverForProject { public fun resolverForModule(moduleInfo: M): R = resolverForModuleDescriptor(descriptorForModule(moduleInfo)) public fun descriptorForModule(moduleInfo: M): ModuleDescriptor public fun resolverForModuleDescriptor(descriptor: ModuleDescriptor): R @@ -61,7 +59,7 @@ public class ResolverForProjectImpl( ) : ResolverForProject { val resolverByModuleDescriptor: MutableMap R> = HashMap() - override val allModules: Collection by Delegates.lazy { + override val allModules: Collection by lazy { (descriptorByModule.keySet() + delegateResolver.allModules).toSet() } @@ -87,9 +85,9 @@ public data class ModuleContent( public val moduleContentScope: GlobalSearchScope ) -public trait PlatformAnalysisParameters +public interface PlatformAnalysisParameters -public trait ModuleInfo { +public interface ModuleInfo { public val isLibrary: Boolean get() = false public val name: Name @@ -98,7 +96,7 @@ public trait ModuleInfo { public fun dependencyOnBuiltins(): DependencyOnBuiltins = DependenciesOnBuiltins.LAST //TODO: (module refactoring) provide dependency on builtins after runtime in IDEA - public trait DependencyOnBuiltins { + public interface DependencyOnBuiltins { public fun adjustDependencies(builtinsModule: ModuleDescriptorImpl, dependencies: MutableList) } @@ -122,7 +120,7 @@ public trait ModuleInfo { } } -public trait AnalyzerFacade { +public interface AnalyzerFacade { public fun setupResolverForProject( projectContext: ProjectContext, modules: Collection, diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/PseudocodeVariableDataCollector.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/PseudocodeVariableDataCollector.kt index 4c34b8844b0..ae91aa6abb2 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/PseudocodeVariableDataCollector.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/PseudocodeVariableDataCollector.kt @@ -97,10 +97,10 @@ public class PseudocodeVariableDataCollector( } //todo may be a type alias -trait InstructionDataMergeStrategy : +interface InstructionDataMergeStrategy : (Instruction, Collection>) -> Edges> -public trait LexicalScopeVariableInfo { +public interface LexicalScopeVariableInfo { val declaredIn : Map val scopeVariables : Map> } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/UnreachableCode.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/UnreachableCode.kt index 1f9a32e9f63..5504c179b56 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/UnreachableCode.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/UnreachableCode.kt @@ -28,7 +28,7 @@ import org.jetbrains.kotlin.lexer.JetTokens import com.intellij.psi.util.PsiTreeUtil import com.intellij.psi.PsiComment -trait UnreachableCode { +interface UnreachableCode { val elements: Set fun getUnreachableTextRanges(element: JetElement): List } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/PseudoValue.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/PseudoValue.kt index 14641ab2fb0..908bbfa0cde 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/PseudoValue.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/PseudoValue.kt @@ -19,12 +19,12 @@ package org.jetbrains.kotlin.cfg.pseudocode import org.jetbrains.kotlin.psi.JetElement import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.InstructionWithValue -public trait PseudoValue { +public interface PseudoValue { public val debugName: String public val element: JetElement? public val createdAt: InstructionWithValue? } -public trait PseudoValueFactory { +public interface PseudoValueFactory { public fun newValue(element: JetElement?, instruction: InstructionWithValue?): PseudoValue } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/TypePredicate.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/TypePredicate.kt index 18251ebb145..5448e91650f 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/TypePredicate.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/TypePredicate.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.types.JetType import org.jetbrains.kotlin.types.TypeUtils import org.jetbrains.kotlin.types.checker.JetTypeChecker -public trait TypePredicate: (JetType) -> Boolean { +public interface TypePredicate: (JetType) -> Boolean { override fun invoke(typeToCheck: JetType): Boolean } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/Instruction.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/Instruction.kt index 10f7cb0f64d..9e7e9cb20d4 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/Instruction.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/Instruction.kt @@ -19,7 +19,7 @@ package org.jetbrains.kotlin.cfg.pseudocode.instructions import org.jetbrains.kotlin.cfg.pseudocode.Pseudocode import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue -public trait Instruction { +public interface Instruction { public var owner: Pseudocode public val previousInstructions: Collection diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/JetElementInstruction.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/JetElementInstruction.kt index 30636e451e6..6e0e14d10d3 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/JetElementInstruction.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/JetElementInstruction.kt @@ -18,6 +18,6 @@ package org.jetbrains.kotlin.cfg.pseudocode.instructions import org.jetbrains.kotlin.psi.JetElement -public trait JetElementInstruction : Instruction { +public interface JetElementInstruction : Instruction { public val element: JetElement } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/LexicalScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/LexicalScope.kt index f0d21296ab7..7acd15769b9 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/LexicalScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/LexicalScope.kt @@ -16,23 +16,22 @@ package org.jetbrains.kotlin.cfg.pseudocode.instructions -import org.jetbrains.kotlin.psi.JetElement import org.jetbrains.kotlin.psi.JetDeclaration -import kotlin.properties.Delegates +import org.jetbrains.kotlin.psi.JetElement public class LexicalScope(val parentScope: LexicalScope?, val element: JetElement) { //todo remove after KT-4126 private val d = (parentScope?.depth ?: 0) + 1 val depth: Int get() = d - val lexicalScopeForContainingDeclaration: LexicalScope? by Delegates.lazy { computeLexicalScopeForContainingDeclaration() } + val lexicalScopeForContainingDeclaration: LexicalScope? by lazy { computeLexicalScopeForContainingDeclaration() } private fun computeLexicalScopeForContainingDeclaration(): LexicalScope? { var scope: LexicalScope? = this while (scope != null) { - if (scope?.element is JetDeclaration) { + if (scope.element is JetDeclaration) { return scope } - scope = scope?.parentScope + scope = scope.parentScope } return null } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/eval/InstructionWithReceivers.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/eval/InstructionWithReceivers.kt index a7ce13ec90f..043dfa35481 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/eval/InstructionWithReceivers.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/eval/InstructionWithReceivers.kt @@ -20,6 +20,6 @@ import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue -public trait InstructionWithReceivers: Instruction { +public interface InstructionWithReceivers: Instruction { public val receiverValues: Map } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/eval/InstructionWithValue.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/eval/InstructionWithValue.kt index 95203cc0109..6296332ffd7 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/eval/InstructionWithValue.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/eval/InstructionWithValue.kt @@ -19,6 +19,6 @@ package org.jetbrains.kotlin.cfg.pseudocode.instructions.eval import org.jetbrains.kotlin.cfg.pseudocode.instructions.JetElementInstruction import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue -public trait InstructionWithValue : JetElementInstruction { +public interface InstructionWithValue : JetElementInstruction { public val outputValue: PseudoValue? } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/jumps/JumpInstruction.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/jumps/JumpInstruction.kt index 5927d71a69a..82c3b34452d 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/jumps/JumpInstruction.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/pseudocode/instructions/jumps/JumpInstruction.kt @@ -18,4 +18,4 @@ package org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction -public trait JumpInstruction : Instruction +public interface JumpInstruction : Instruction diff --git a/compiler/frontend/src/org/jetbrains/kotlin/config/ContentRoots.kt b/compiler/frontend/src/org/jetbrains/kotlin/config/ContentRoots.kt index e04e3c6f6b8..cc90a828cb6 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/config/ContentRoots.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/config/ContentRoots.kt @@ -18,7 +18,7 @@ package org.jetbrains.kotlin.config import java.io.File -public trait ContentRoot +public interface ContentRoot public data class KotlinSourceRoot(public val path: String): ContentRoot diff --git a/compiler/frontend/src/org/jetbrains/kotlin/extensions/ExternalDeclarationsProvider.kt b/compiler/frontend/src/org/jetbrains/kotlin/extensions/ExternalDeclarationsProvider.kt index 1f219981b3d..86d7f999f36 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/extensions/ExternalDeclarationsProvider.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/extensions/ExternalDeclarationsProvider.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.extensions.ProjectExtensionDescriptor import org.jetbrains.kotlin.analyzer.ModuleInfo import org.jetbrains.kotlin.psi.JetFile -public trait ExternalDeclarationsProvider { +public interface ExternalDeclarationsProvider { companion object : ProjectExtensionDescriptor( "org.jetbrains.kotlin.externalDeclarationsProvider", javaClass() diff --git a/compiler/frontend/src/org/jetbrains/kotlin/kdoc/psi/api/KDoc.kt b/compiler/frontend/src/org/jetbrains/kotlin/kdoc/psi/api/KDoc.kt index 4b354b479ce..186a489ef50 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/kdoc/psi/api/KDoc.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/kdoc/psi/api/KDoc.kt @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.psi.JetDeclaration import org.jetbrains.kotlin.kdoc.parser.KDocKnownTag // Don't implement JetElement (or it will be treated as statement) -public trait KDoc : PsiComment { +public interface KDoc : PsiComment { public fun getOwner(): JetDeclaration? public fun getDefaultSection(): KDocSection public fun findSectionByName(name: String): KDocSection? diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetQualifiedExpressionImpl.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetQualifiedExpressionImpl.kt index e10d716a07f..1d15530d9be 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetQualifiedExpressionImpl.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetQualifiedExpressionImpl.kt @@ -33,7 +33,7 @@ object JetQualifiedExpressionImpl { } private fun JetQualifiedExpression.getExpression(afterOperation: Boolean): JetExpression? { - return getOperationTokenNode()?.getPsi()?.siblings(afterOperation, false)?.firstOrNull { it is JetExpression } as? JetExpression + return getOperationTokenNode().getPsi()?.siblings(afterOperation, false)?.firstOrNull { it is JetExpression } as? JetExpression } public fun JetQualifiedExpression.getReceiverExpression(): JetExpression { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/ValueArgument.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/ValueArgument.kt index b28eef1a954..d4ac812f75b 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/ValueArgument.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/ValueArgument.kt @@ -19,7 +19,7 @@ package org.jetbrains.kotlin.psi import com.intellij.psi.impl.source.tree.LeafPsiElement import org.jetbrains.kotlin.name.Name -public trait ValueArgument { +public interface ValueArgument { IfNotParsed public fun getArgumentExpression(): JetExpression? @@ -36,7 +36,7 @@ public trait ValueArgument { public fun isExternal(): Boolean } -public trait FunctionLiteralArgument : ValueArgument { +public interface FunctionLiteralArgument : ValueArgument { public fun getFunctionLiteral(): JetFunctionLiteralExpression override fun getArgumentExpression(): JetExpression diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationUtil.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationUtil.kt index 94fbbebc1e6..868d122f7e2 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationUtil.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationUtil.kt @@ -50,7 +50,7 @@ private fun CallableDescriptor.isPlatformStaticIn(predicate: (DeclarationDescrip when (this) { is PropertyAccessorDescriptor -> { val propertyDescriptor = getCorrespondingProperty() - predicate(propertyDescriptor.getContainingDeclaration()!!) && + predicate(propertyDescriptor.getContainingDeclaration()) && (hasPlatformStaticAnnotation() || propertyDescriptor.hasPlatformStaticAnnotation()) } else -> predicate(getContainingDeclaration()) && hasPlatformStaticAnnotation() diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/CodeAnalyzerInitializer.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/CodeAnalyzerInitializer.kt index f5540fa887d..a87a79fefe7 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/CodeAnalyzerInitializer.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/CodeAnalyzerInitializer.kt @@ -21,7 +21,7 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.components.ServiceManager import org.jetbrains.kotlin.descriptors.ModuleDescriptor -public trait CodeAnalyzerInitializer { +public interface CodeAnalyzerInitializer { public fun initialize(trace: BindingTrace, module: ModuleDescriptor, codeAnalyzer: KotlinCodeAnalyzer?) public fun createTrace(): BindingTrace diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorToSourceUtils.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorToSourceUtils.kt index e5512dc68ff..4436d3e17fe 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorToSourceUtils.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorToSourceUtils.kt @@ -83,8 +83,8 @@ public object DescriptorToSourceUtils { if (declarationDescriptor is PropertyAccessorDescriptor) { descriptor = (descriptor as PropertyAccessorDescriptor).getCorrespondingProperty() } - while (!(descriptor == null || DescriptorUtils.isTopLevelDeclaration(descriptor!!))) { - descriptor = descriptor!!.getContainingDeclaration() + while (!(descriptor == null || DescriptorUtils.isTopLevelDeclaration(descriptor))) { + descriptor = descriptor.getContainingDeclaration() } return descriptor } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeBinding.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeBinding.kt index a48d5a6b354..13dc2c5eb0d 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeBinding.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeBinding.kt @@ -28,13 +28,13 @@ import org.jetbrains.kotlin.descriptors.CallableDescriptor import org.jetbrains.kotlin.types.TypeProjectionImpl -trait TypeBinding { +interface TypeBinding { val psiElement: P val jetType: JetType fun getArgumentBindings(): List?> } -trait TypeArgumentBinding { +interface TypeArgumentBinding { val typeProjection: TypeProjection val typeParameterDescriptor: TypeParameterDescriptor? val typeBinding: TypeBinding

diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/checkers/AdditionalTypeChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/checkers/AdditionalTypeChecker.kt index 63433a8efdc..8809c6cab38 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/checkers/AdditionalTypeChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/checkers/AdditionalTypeChecker.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.descriptors.ReceiverParameterDescriptor import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue import org.jetbrains.kotlin.resolve.calls.context.CallResolutionContext -public trait AdditionalTypeChecker { +public interface AdditionalTypeChecker { public class Composite(val checkers: List): AdditionalTypeChecker { override fun checkType(expression: JetExpression, expressionType: JetType, c: ResolutionContext<*>) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/checkers/InlineCheckerWrapper.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/checkers/InlineCheckerWrapper.kt index 2d2a718bf47..54cf17f2bc7 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/checkers/InlineCheckerWrapper.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/checkers/InlineCheckerWrapper.kt @@ -33,14 +33,12 @@ public class InlineCheckerWrapper : CallChecker { var parentDescriptor: DeclarationDescriptor? = context.scope.getContainingDeclaration() while (parentDescriptor != null) { - val descriptor = parentDescriptor!! - - if (InlineUtil.isInline(descriptor)) { - val checker = getChecker(descriptor as SimpleFunctionDescriptor) + if (InlineUtil.isInline(parentDescriptor)) { + val checker = getChecker(parentDescriptor as SimpleFunctionDescriptor) checker.check(resolvedCall, context) } - parentDescriptor = parentDescriptor?.getContainingDeclaration() + parentDescriptor = parentDescriptor.getContainingDeclaration() } } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/ResolutionResultsCache.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/ResolutionResultsCache.kt index 66e343ad68b..08d34665e13 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/ResolutionResultsCache.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/ResolutionResultsCache.kt @@ -24,7 +24,7 @@ import org.jetbrains.kotlin.psi.Call import org.jetbrains.kotlin.resolve.calls.tasks.TracingStrategy import org.jetbrains.kotlin.resolve.calls.context.ResolutionResultsCache.CachedData -public trait ResolutionResultsCache { +public interface ResolutionResultsCache { public data class CachedData( val resolutionResults: OverloadResolutionResultsImpl<*>, val deferredComputation: BasicCallResolutionContext, diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/ArgumentMapping.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/ArgumentMapping.kt index 39caf37c688..57a13ca7bd5 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/ArgumentMapping.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/ArgumentMapping.kt @@ -38,7 +38,7 @@ public enum class ArgumentMatchStatus(val isError: Boolean = true) { UNKNOWN() } -public trait ArgumentMatch : ArgumentMapping { +public interface ArgumentMatch : ArgumentMapping { public val valueParameter: ValueParameterDescriptor public val status: ArgumentMatchStatus diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/VariableAsFunctionResolvedCall.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/VariableAsFunctionResolvedCall.kt index 119000225e6..31db54d9bd8 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/VariableAsFunctionResolvedCall.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/VariableAsFunctionResolvedCall.kt @@ -21,7 +21,7 @@ import org.jetbrains.kotlin.descriptors.VariableDescriptor import org.jetbrains.kotlin.resolve.calls.results.ResolutionStatus import org.jetbrains.kotlin.resolve.DelegatingBindingTrace -public trait VariableAsFunctionResolvedCall { +public interface VariableAsFunctionResolvedCall { public val functionCall: ResolvedCall public val variableCall: ResolvedCall } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/CallableDescriptorCollectors.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/CallableDescriptorCollectors.kt index 2625c5d35de..5f27d80f715 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/CallableDescriptorCollectors.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/CallableDescriptorCollectors.kt @@ -31,7 +31,7 @@ import org.jetbrains.kotlin.types.ErrorUtils import org.jetbrains.kotlin.types.JetType import org.jetbrains.kotlin.types.expressions.OperatorConventions -public trait CallableDescriptorCollector { +public interface CallableDescriptorCollector { public fun getNonExtensionsByName(scope: JetScope, name: Name, bindingTrace: BindingTrace): Collection diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/ResolutionTaskHolder.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/ResolutionTaskHolder.kt index edafbdb4cd4..70e23a65651 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/ResolutionTaskHolder.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/ResolutionTaskHolder.kt @@ -67,7 +67,7 @@ public class ResolutionTaskHolder( return internalTasks!! } - public trait PriorityProvider { + public interface PriorityProvider { public fun getPriority(candidate: D): Int public fun getMaxPriority(): Int diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/diagnostics/Diagnostics.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/diagnostics/Diagnostics.kt index a14056e7678..f5057120367 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/diagnostics/Diagnostics.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/diagnostics/Diagnostics.kt @@ -20,7 +20,7 @@ import com.intellij.psi.PsiElement import org.jetbrains.kotlin.diagnostics.Diagnostic import com.intellij.openapi.util.ModificationTracker -public trait Diagnostics : Iterable { +public interface Diagnostics : Iterable { //should not be called on readonly views //any Diagnostics object returned by BindingContext#getDiagnostics() should implement this property public val modificationTracker: ModificationTracker diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyClassContext.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyClassContext.kt index 1bf4105b137..b890d2007d8 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyClassContext.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyClassContext.kt @@ -21,7 +21,7 @@ import org.jetbrains.kotlin.resolve.* import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory import org.jetbrains.kotlin.storage.StorageManager -public trait LazyClassContext { +public interface LazyClassContext { val declarationScopeProvider: DeclarationScopeProvider val storageManager: StorageManager diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt index 8b2d59de4f0..0093a919144 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt @@ -35,9 +35,8 @@ import org.jetbrains.kotlin.types.JetType import org.jetbrains.kotlin.util.collectionUtils.concat import org.jetbrains.kotlin.utils.Printer import java.util.LinkedHashSet -import kotlin.properties.Delegates -trait IndexedImports { +interface IndexedImports { val imports: List fun importsForName(name: Name): Collection } @@ -50,7 +49,7 @@ class AllUnderImportsIndexed(allImports: Collection) : Index class AliasImportsIndexed(allImports: Collection) : IndexedImports { override val imports = allImports.filter { !it.isAllUnder() } - private val nameToDirectives: ListMultimap by Delegates.lazy { + private val nameToDirectives: ListMultimap by lazy { val builder = ImmutableListMultimap.builder() for (directive in imports) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/ResolveSession.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/ResolveSession.java index eac97c6719c..45358ac7b8f 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/ResolveSession.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/ResolveSession.java @@ -144,6 +144,7 @@ public class ResolveSession implements KotlinCodeAnalyzer, LazyClassContext { this.packages = storageManager.createMemoizedFunctionWithNullableValues(new Function1() { + @Override @Nullable public LazyPackageDescriptor invoke(FqName fqName) { return createPackage(fqName); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/TopLevelDescriptorProvider.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/TopLevelDescriptorProvider.kt index be578e44e37..46d65407d75 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/TopLevelDescriptorProvider.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/TopLevelDescriptorProvider.kt @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.JetScript import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyPackageDescriptor -public trait TopLevelDescriptorProvider { +public interface TopLevelDescriptorProvider { fun getPackageFragment(fqName: FqName): LazyPackageDescriptor? fun getScriptDescriptor(script: JetScript): ScriptDescriptor diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/declarations/ClassMemberDeclarationProvider.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/declarations/ClassMemberDeclarationProvider.kt index c9c4b39aff0..47ddc75405e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/declarations/ClassMemberDeclarationProvider.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/declarations/ClassMemberDeclarationProvider.kt @@ -18,6 +18,6 @@ package org.jetbrains.kotlin.resolve.lazy.declarations import org.jetbrains.kotlin.resolve.lazy.data.JetClassLikeInfo -public trait ClassMemberDeclarationProvider : DeclarationProvider { +public interface ClassMemberDeclarationProvider : DeclarationProvider { public fun getOwnerInfo(): JetClassLikeInfo } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/declarations/DeclarationProvider.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/declarations/DeclarationProvider.kt index 97789132168..034f6854b20 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/declarations/DeclarationProvider.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/declarations/DeclarationProvider.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.resolve.lazy.data.JetClassLikeInfo import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter -public trait DeclarationProvider { +public interface DeclarationProvider { public fun getDeclarations(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): List public fun getFunctionDeclarations(name: Name): Collection diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/declarations/PackageMemberDeclarationProvider.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/declarations/PackageMemberDeclarationProvider.kt index c87db23831a..627f346ea18 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/declarations/PackageMemberDeclarationProvider.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/declarations/PackageMemberDeclarationProvider.kt @@ -21,10 +21,7 @@ import org.jetbrains.kotlin.psi.JetFile import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name -public trait PackageMemberDeclarationProvider : DeclarationProvider { - /** - * Implementation of this method are not obliged to use the filters but may do so when it gives any performance advantage - */ +public interface PackageMemberDeclarationProvider : DeclarationProvider { public fun getAllDeclaredSubPackages(nameFilter: (Name) -> Boolean): Collection public fun getPackageFiles(): Collection diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassMemberScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassMemberScope.kt index 281951e026c..99ef7bf309e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassMemberScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassMemberScope.kt @@ -83,7 +83,7 @@ public open class LazyClassMemberScope( return result } - private trait MemberExtractor { + private interface MemberExtractor { public fun extract(extractFrom: JetType, name: Name): Collection } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/WritableScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/WritableScope.kt index 69225fe4c70..1bb532b9205 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/WritableScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/WritableScope.kt @@ -20,7 +20,7 @@ import com.google.common.collect.Multimap import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.name.Name -public trait WritableScope : JetScope { +public interface WritableScope : JetScope { public enum class LockLevel { WRITING, BOTH, diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/receivers/Qualifier.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/receivers/Qualifier.kt index ade9e49fdcc..a945b62d5fd 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/receivers/Qualifier.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/receivers/Qualifier.kt @@ -42,7 +42,7 @@ import org.jetbrains.kotlin.utils.addIfNotNull import java.util.ArrayList import kotlin.properties.Delegates -public trait Qualifier: ReceiverValue { +public interface Qualifier: ReceiverValue { public val expression: JetExpression diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/source/PsiSourceElement.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/source/PsiSourceElement.kt index 982200e972f..f211e5c19ce 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/source/PsiSourceElement.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/source/PsiSourceElement.kt @@ -19,6 +19,6 @@ package org.jetbrains.kotlin.resolve.source import com.intellij.psi.PsiElement import org.jetbrains.kotlin.descriptors.SourceElement -public trait PsiSourceElement : SourceElement { +public interface PsiSourceElement : SourceElement { public val psi: PsiElement? } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/validation/SymbolUsageValidator.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/validation/SymbolUsageValidator.kt index 8dd87fd7486..89cd16d67e8 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/validation/SymbolUsageValidator.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/validation/SymbolUsageValidator.kt @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.descriptors.ClassifierDescriptor import org.jetbrains.kotlin.resolve.BindingTrace import kotlin.platform.platformStatic -public trait SymbolUsageValidator { +public interface SymbolUsageValidator { public fun validateTypeUsage(targetDescriptor: ClassifierDescriptor, trace: BindingTrace, element: PsiElement) { } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingVisitorDispatcher.java b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingVisitorDispatcher.java index 586ec8986e4..6be683dc526 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingVisitorDispatcher.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingVisitorDispatcher.java @@ -307,6 +307,7 @@ public class ExpressionTypingVisitorDispatcher extends JetVisitor