Minor: remove warnings and refactoring

This commit is contained in:
Nikolay Krasko
2016-08-24 18:12:39 +03:00
parent e0cdad30e4
commit 043502f836
4 changed files with 48 additions and 45 deletions
@@ -1070,16 +1070,14 @@ public class KotlinExpressionParsing extends AbstractKotlinParsing {
}
}
if (!paramsFound) {
if (preferBlock) {
literal.drop();
parseStatements();
expect(RBRACE, "Expecting '}'");
literalExpression.done(BLOCK);
myBuilder.restoreNewlinesState();
if (!paramsFound && preferBlock) {
literal.drop();
parseStatements();
expect(RBRACE, "Expecting '}'");
literalExpression.done(BLOCK);
myBuilder.restoreNewlinesState();
return;
}
return;
}
PsiBuilder.Marker body = mark();
@@ -35,7 +35,7 @@ public class KtBlockExpression extends KtExpressionImpl implements KtStatementEx
@Override
public boolean shouldChangeModificationCount(PsiElement place) {
// To prent OutOfBlockModification increase from JavaCodeBlockModificationListener
// To prevent OutOfBlockModification increase from JavaCodeBlockModificationListener
return false;
}
@@ -71,12 +71,10 @@ class ResolveElementCache(
// drop whole cache after change "out of code block"
private val fullResolveCache: CachedValue<MutableMap<KtElement, CachedFullResolve>> = CachedValuesManager.getManager(project).createCachedValue(
object : CachedValueProvider<MutableMap<KtElement, CachedFullResolve>> {
override fun compute(): CachedValueProvider.Result<MutableMap<KtElement, CachedFullResolve>> {
return CachedValueProvider.Result.create(ContainerUtil.createConcurrentSoftValueMap<KtElement, CachedFullResolve>(),
PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT,
resolveSession.exceptionTracker)
}
CachedValueProvider<MutableMap<KtElement, ResolveElementCache.CachedFullResolve>> {
CachedValueProvider.Result.create(ContainerUtil.createConcurrentSoftValueMap<KtElement, CachedFullResolve>(),
PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT,
resolveSession.exceptionTracker)
},
false)
@@ -93,15 +91,14 @@ class ResolveElementCache(
}
}
private val partialBodyResolveCache: CachedValue<MutableMap<KtExpression, CachedPartialResolve>> = CachedValuesManager.getManager(project).createCachedValue(
object : CachedValueProvider<MutableMap<KtExpression, CachedPartialResolve>> {
override fun compute(): CachedValueProvider.Result<MutableMap<KtExpression, CachedPartialResolve>> {
return CachedValueProvider.Result.create(ContainerUtil.createConcurrentSoftValueMap<KtExpression, CachedPartialResolve>(),
PsiModificationTracker.MODIFICATION_COUNT,
resolveSession.exceptionTracker)
}
},
false)
private val partialBodyResolveCache: CachedValue<MutableMap<KtExpression, CachedPartialResolve>> =
CachedValuesManager.getManager(project).createCachedValue(
CachedValueProvider<MutableMap<KtExpression, ResolveElementCache.CachedPartialResolve>> {
CachedValueProvider.Result.create(ContainerUtil.createConcurrentSoftValueMap<KtExpression, CachedPartialResolve>(),
PsiModificationTracker.MODIFICATION_COUNT,
resolveSession.exceptionTracker)
},
false)
private fun probablyNothingCallableNames(): ProbablyNothingCallableNames {
@@ -163,7 +160,9 @@ class ResolveElementCache(
partialResolveMap[statement] = resolveToCache
}
}
partialResolveMap[resolveElement] = resolveToCache // we use the whole declaration key in the map to obtain resolve not inside any block (e.g. default parameter values)
// we use the whole declaration key in the map to obtain resolve not inside any block (e.g. default parameter values)
partialResolveMap[resolveElement] = resolveToCache
return bindingContext
}
@@ -256,7 +255,8 @@ class ResolveElementCache(
}
}
private fun performElementAdditionalResolve(resolveElement: KtElement, contextElement: KtElement, bodyResolveMode: BodyResolveMode): Pair<BindingContext, StatementFilter> {
private fun performElementAdditionalResolve(resolveElement: KtElement, contextElement: KtElement,
bodyResolveMode: BodyResolveMode): Pair<BindingContext, StatementFilter> {
val file = resolveElement.getContainingKtFile()
var statementFilterUsed = StatementFilter.NONE
@@ -312,7 +312,7 @@ class ResolveElementCache(
is KtTypeConstraint -> typeConstraintAdditionalResolve(resolveSession, resolveElement)
is KtCodeFragment -> codeFragmentAdditionalResolve(resolveSession, resolveElement, bodyResolveMode)
is KtCodeFragment -> codeFragmentAdditionalResolve(resolveElement, bodyResolveMode)
else -> {
if (resolveElement.getParentOfType<KtPackageDirective>(true) != null) {
@@ -360,7 +360,7 @@ class ResolveElementCache(
return resolveSession.trace
}
private fun codeFragmentAdditionalResolve(resolveSession: ResolveSession, codeFragment: KtCodeFragment, bodyResolveMode: BodyResolveMode): BindingTrace {
private fun codeFragmentAdditionalResolve(codeFragment: KtCodeFragment, bodyResolveMode: BodyResolveMode): BindingTrace {
val trace = createDelegatingTrace(codeFragment)
val contextResolveMode = if (bodyResolveMode == BodyResolveMode.PARTIAL)
@@ -418,7 +418,8 @@ class ResolveElementCache(
return resolveSession.trace
}
private fun delegationSpecifierAdditionalResolve(resolveSession: ResolveSession, ktElement: KtElement, classOrObject: KtClassOrObject, file: KtFile): BindingTrace {
private fun delegationSpecifierAdditionalResolve(resolveSession: ResolveSession, ktElement: KtElement,
classOrObject: KtClassOrObject, file: KtFile): BindingTrace {
val trace = createDelegatingTrace(ktElement)
val descriptor = resolveSession.resolveToDescriptor(classOrObject) as LazyClassDescriptor
@@ -436,7 +437,8 @@ class ResolveElementCache(
return trace
}
private fun propertyAdditionalResolve(resolveSession: ResolveSession, property: KtProperty, file: KtFile, statementFilter: StatementFilter): BindingTrace {
private fun propertyAdditionalResolve(resolveSession: ResolveSession, property: KtProperty,
file: KtFile, statementFilter: StatementFilter): BindingTrace {
val trace = createDelegatingTrace(property)
val bodyResolver = createBodyResolver(resolveSession, trace, file, statementFilter)
@@ -461,7 +463,8 @@ class ResolveElementCache(
return trace
}
private fun functionAdditionalResolve(resolveSession: ResolveSession, namedFunction: KtNamedFunction, file: KtFile, statementFilter: StatementFilter): BindingTrace {
private fun functionAdditionalResolve(resolveSession: ResolveSession, namedFunction: KtNamedFunction, file: KtFile,
statementFilter: StatementFilter): BindingTrace {
val trace = createDelegatingTrace(namedFunction)
val scope = resolveSession.declarationScopeProvider.getResolutionScopeForDeclaration(namedFunction)
@@ -476,7 +479,8 @@ class ResolveElementCache(
return trace
}
private fun secondaryConstructorAdditionalResolve(resolveSession: ResolveSession, constructor: KtSecondaryConstructor, file: KtFile, statementFilter: StatementFilter): BindingTrace {
private fun secondaryConstructorAdditionalResolve(resolveSession: ResolveSession, constructor: KtSecondaryConstructor,
file: KtFile, statementFilter: StatementFilter): BindingTrace {
val trace = createDelegatingTrace(constructor)
val scope = resolveSession.declarationScopeProvider.getResolutionScopeForDeclaration(constructor)
@@ -497,7 +501,8 @@ class ResolveElementCache(
val classDescriptor = resolveSession.resolveToDescriptor(klass) as ClassDescriptor
val constructorDescriptor = classDescriptor.unsubstitutedPrimaryConstructor
?: error("Can't get primary constructor for descriptor '$classDescriptor' in from class '${klass.getElementTextWithContext()}'")
?: error("Can't get primary constructor for descriptor '$classDescriptor' " +
"in from class '${klass.getElementTextWithContext()}'")
val bodyResolver = createBodyResolver(resolveSession, trace, file, StatementFilter.NONE)
bodyResolver.resolveConstructorParameterDefaultValuesAndAnnotations(DataFlowInfo.EMPTY, trace, klass, constructorDescriptor, scope)
@@ -513,7 +518,8 @@ class ResolveElementCache(
return trace
}
private fun initializerAdditionalResolve(resolveSession: ResolveSession, anonymousInitializer: KtAnonymousInitializer, file: KtFile, statementFilter: StatementFilter): BindingTrace {
private fun initializerAdditionalResolve(resolveSession: ResolveSession, anonymousInitializer: KtAnonymousInitializer,
file: KtFile, statementFilter: StatementFilter): BindingTrace {
val trace = createDelegatingTrace(anonymousInitializer)
val classOrObjectDescriptor = resolveSession.resolveToDescriptor(anonymousInitializer.containingDeclaration) as LazyClassDescriptor
@@ -19,14 +19,13 @@ package org.jetbrains.kotlin.idea.references
import com.intellij.psi.PsiReference
import com.intellij.psi.PsiReferenceRegistrar
import org.jetbrains.kotlin.idea.kdoc.KDocReference
import org.jetbrains.kotlin.kdoc.psi.impl.KDocName
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.KtNameReferenceExpression
class KotlinReferenceContributor() : AbstractKotlinReferenceContributor() {
override fun registerReferenceProviders(registrar: PsiReferenceRegistrar) {
with(registrar) {
registerProvider<KtSimpleNameExpression>(factory = ::KtSimpleNameReference)
registerProvider(factory = ::KtSimpleNameReference)
registerMultiProvider<KtNameReferenceExpression> {
if (it.getReferencedNameElementType() != KtTokens.IDENTIFIER) return@registerMultiProvider emptyArray()
@@ -41,19 +40,19 @@ class KotlinReferenceContributor() : AbstractKotlinReferenceContributor() {
}
}
registerProvider<KtConstructorDelegationReferenceExpression>(factory = ::KtConstructorDelegationReference)
registerProvider(factory = ::KtConstructorDelegationReference)
registerProvider<KtCallExpression>(factory = ::KtInvokeFunctionReference)
registerProvider(factory = ::KtInvokeFunctionReference)
registerProvider<KtArrayAccessExpression>(factory = ::KtArrayAccessReference)
registerProvider(factory = ::KtArrayAccessReference)
registerProvider<KtForExpression>(factory = ::KtForLoopInReference)
registerProvider(factory = ::KtForLoopInReference)
registerProvider<KtPropertyDelegate>(factory = ::KtPropertyDelegationMethodsReference)
registerProvider(factory = ::KtPropertyDelegationMethodsReference)
registerProvider<KtDestructuringDeclarationEntry>(factory = ::KtDestructuringDeclarationReference)
registerProvider(factory = ::KtDestructuringDeclarationReference)
registerProvider<KDocName>(factory = ::KDocReference)
registerProvider(factory = ::KDocReference)
}
}
}