From 71620d2ed151134e35a2315e5ee89713751ae11a Mon Sep 17 00:00:00 2001 From: Stanislav Erokhin Date: Sat, 31 Oct 2015 05:08:42 +0300 Subject: [PATCH] Minor. Move LockLevel to LexicalWritableScope --- .../impl/MutablePackageFragmentDescriptor.java | 7 ++----- .../kotlin/resolve/DescriptorResolver.java | 3 +-- .../kotlin/resolve/FunctionDescriptorResolver.kt | 7 +++---- .../kotlin/resolve/scopes/LexicalWritableScope.kt | 14 ++++++++++---- .../kotlin/resolve/scopes/WritableScope.kt | 8 +------- .../kotlin/resolve/scopes/WritableScopeImpl.kt | 12 ++++++------ .../expressions/ExpressionTypingServices.java | 5 ++--- .../types/expressions/ExpressionTypingUtils.java | 3 +-- .../AbstractJvmRuntimeDescriptorLoaderTest.kt | 2 +- .../kotlin/types/DefaultModalityModifiersTest.java | 7 ++----- .../kotlin/types/KotlinTypeCheckerTest.java | 2 +- .../kotlin/types/TypeSubstitutorTest.java | 2 +- .../jetbrains/kotlin/types/TypeUnifierTest.java | 7 ++----- .../callableBuilder/CallableBuilder.kt | 2 +- 14 files changed, 34 insertions(+), 47 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/descriptors/impl/MutablePackageFragmentDescriptor.java b/compiler/frontend/src/org/jetbrains/kotlin/descriptors/impl/MutablePackageFragmentDescriptor.java index fcc9b68c973..e41c00e5687 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/descriptors/impl/MutablePackageFragmentDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/descriptors/impl/MutablePackageFragmentDescriptor.java @@ -19,10 +19,7 @@ package org.jetbrains.kotlin.descriptors.impl; import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.descriptors.ModuleDescriptor; import org.jetbrains.kotlin.name.FqName; -import org.jetbrains.kotlin.resolve.scopes.KtScope; -import org.jetbrains.kotlin.resolve.scopes.RedeclarationHandler; -import org.jetbrains.kotlin.resolve.scopes.WritableScope; -import org.jetbrains.kotlin.resolve.scopes.WritableScopeImpl; +import org.jetbrains.kotlin.resolve.scopes.*; public class MutablePackageFragmentDescriptor extends PackageFragmentDescriptorImpl { private final WritableScope scope; @@ -31,7 +28,7 @@ public class MutablePackageFragmentDescriptor extends PackageFragmentDescriptorI super(module, fqName); scope = new WritableScopeImpl(KtScope.Empty.INSTANCE$, this, RedeclarationHandler.DO_NOTHING, "Members of " + fqName + " in " + module); - scope.changeLockLevel(WritableScope.LockLevel.BOTH); + scope.changeLockLevel(LexicalWritableScope.LockLevel.BOTH); } @NotNull diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java index ac6e10d23a1..739e3a5507b 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java @@ -49,7 +49,6 @@ import org.jetbrains.kotlin.resolve.lazy.ForceResolveUtil; import org.jetbrains.kotlin.resolve.scopes.JetScopeUtils; import org.jetbrains.kotlin.resolve.scopes.LexicalScope; import org.jetbrains.kotlin.resolve.scopes.LexicalWritableScope; -import org.jetbrains.kotlin.resolve.scopes.WritableScope; import org.jetbrains.kotlin.resolve.scopes.utils.ScopeUtilsKt; import org.jetbrains.kotlin.resolve.source.KotlinSourceElementKt; import org.jetbrains.kotlin.storage.StorageManager; @@ -778,7 +777,7 @@ public class DescriptorResolver { "Scope with type parameters of a property"); typeParameterDescriptors = resolveTypeParametersForCallableDescriptor( propertyDescriptor, writableScope, scope, typeParameters, trace); - writableScope.changeLockLevel(WritableScope.LockLevel.READING); + writableScope.changeLockLevel(LexicalWritableScope.LockLevel.READING); resolveGenericBounds(property, propertyDescriptor, writableScope, typeParameterDescriptors, trace); scopeWithTypeParameters = writableScope; } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt index ead2f7a81e5..486f2668bb2 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt @@ -37,7 +37,6 @@ import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo import org.jetbrains.kotlin.resolve.lazy.ForceResolveUtil import org.jetbrains.kotlin.resolve.scopes.LexicalScope import org.jetbrains.kotlin.resolve.scopes.LexicalWritableScope -import org.jetbrains.kotlin.resolve.scopes.WritableScope import org.jetbrains.kotlin.resolve.source.toSourceElement import org.jetbrains.kotlin.storage.StorageManager import org.jetbrains.kotlin.types.DeferredType @@ -147,7 +146,7 @@ class FunctionDescriptorResolver( val typeParameterDescriptors = descriptorResolver. resolveTypeParametersForCallableDescriptor(functionDescriptor, innerScope, scope, function.getTypeParameters(), trace) - innerScope.changeLockLevel(WritableScope.LockLevel.BOTH) + innerScope.changeLockLevel(LexicalWritableScope.LockLevel.BOTH) descriptorResolver.resolveGenericBounds(function, functionDescriptor, innerScope, typeParameterDescriptors, trace) val receiverTypeRef = function.getReceiverTypeReference() @@ -160,7 +159,7 @@ class FunctionDescriptorResolver( val valueParameterDescriptors = createValueParameterDescriptors(function, functionDescriptor, innerScope, trace, expectedFunctionType) - innerScope.changeLockLevel(WritableScope.LockLevel.READING) + innerScope.changeLockLevel(LexicalWritableScope.LockLevel.READING) val returnType = function.getTypeReference()?.let { typeResolver.resolveType(innerScope, it, trace, true) } @@ -290,7 +289,7 @@ class FunctionDescriptorResolver( TraceBasedRedeclarationHandler(trace), "Scope with value parameters of a constructor" ) - parameterScope.changeLockLevel(WritableScope.LockLevel.BOTH) + parameterScope.changeLockLevel(LexicalWritableScope.LockLevel.BOTH) val constructor = constructorDescriptor.initialize( typeParameters, resolveValueParameters(constructorDescriptor, parameterScope, valueParameters, trace, null), diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/LexicalWritableScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/LexicalWritableScope.kt index 6cebf02c255..667d1be2e26 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/LexicalWritableScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/LexicalWritableScope.kt @@ -31,16 +31,22 @@ class LexicalWritableScope( override val redeclarationHandler: RedeclarationHandler, private val debugName: String ) : LexicalScope, WritableScopeStorage { + public enum class LockLevel { + WRITING, + BOTH, + READING + } + override val parent = parent.takeSnapshot() override val addedDescriptors: MutableList = SmartList() override var functionsByName: MutableMap? = null override var variablesAndClassifiersByName: MutableMap? = null - private var lockLevel: WritableScope.LockLevel = WritableScope.LockLevel.WRITING + private var lockLevel: LockLevel = LockLevel.WRITING private var lastSnapshot: Snapshot? = null - public fun changeLockLevel(lockLevel: WritableScope.LockLevel) { + public fun changeLockLevel(lockLevel: LockLevel) { if (lockLevel.ordinal() < this.lockLevel.ordinal()) { throw IllegalStateException("cannot lower lock level from " + this.lockLevel + " to " + lockLevel + " at " + toString()) } @@ -80,14 +86,14 @@ class LexicalWritableScope( override fun getContributedFunctions(name: Name, location: LookupLocation) = checkMayRead().getDeclaredFunctions(name) private fun checkMayRead(): LexicalWritableScope { - if (lockLevel != WritableScope.LockLevel.READING && lockLevel != WritableScope.LockLevel.BOTH) { + if (lockLevel != LockLevel.READING && lockLevel != LockLevel.BOTH) { throw IllegalStateException("cannot read with lock level " + lockLevel + " at " + toString()) } return this } private fun checkMayWrite() { - if (lockLevel != WritableScope.LockLevel.WRITING && lockLevel != WritableScope.LockLevel.BOTH) { + if (lockLevel != LockLevel.WRITING && lockLevel != LockLevel.BOTH) { throw IllegalStateException("cannot write with lock level " + lockLevel + " at " + toString()) } } 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 7e195a6b755..e84c3ca0da0 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/WritableScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/WritableScope.kt @@ -21,15 +21,9 @@ import org.jetbrains.kotlin.descriptors.FunctionDescriptor import org.jetbrains.kotlin.descriptors.VariableDescriptor public interface WritableScope : KtScope { - public enum class LockLevel { - WRITING, - BOTH, - READING - } - public fun takeSnapshot(): KtScope - public fun changeLockLevel(lockLevel: LockLevel) + public fun changeLockLevel(lockLevel: LexicalWritableScope.LockLevel) public fun addVariableDescriptor(variableDescriptor: VariableDescriptor) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/WritableScopeImpl.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/WritableScopeImpl.kt index 6c43171dd6d..782d2803ea5 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/WritableScopeImpl.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/WritableScopeImpl.kt @@ -55,9 +55,9 @@ public class WritableScopeImpl @JvmOverloads constructor( override fun getContainingDeclaration() = ownerDeclarationDescriptor - private var lockLevel: WritableScope.LockLevel = WritableScope.LockLevel.WRITING + private var lockLevel: LexicalWritableScope.LockLevel = LexicalWritableScope.LockLevel.WRITING - override fun changeLockLevel(lockLevel: WritableScope.LockLevel) { + override fun changeLockLevel(lockLevel: LexicalWritableScope.LockLevel) { if (lockLevel.ordinal() < this.lockLevel.ordinal()) { throw IllegalStateException("cannot lower lock level from " + this.lockLevel + " to " + lockLevel + " at " + toString()) } @@ -65,13 +65,13 @@ public class WritableScopeImpl @JvmOverloads constructor( } private fun checkMayRead() { - if (lockLevel != WritableScope.LockLevel.READING && lockLevel != WritableScope.LockLevel.BOTH) { + if (lockLevel != LexicalWritableScope.LockLevel.READING && lockLevel != LexicalWritableScope.LockLevel.BOTH) { throw IllegalStateException("cannot read with lock level " + lockLevel + " at " + toString()) } } private fun checkMayWrite() { - if (lockLevel != WritableScope.LockLevel.WRITING && lockLevel != WritableScope.LockLevel.BOTH) { + if (lockLevel != LexicalWritableScope.LockLevel.WRITING && lockLevel != LexicalWritableScope.LockLevel.BOTH) { throw IllegalStateException("cannot write with lock level " + lockLevel + " at " + toString()) } } @@ -87,7 +87,7 @@ public class WritableScopeImpl @JvmOverloads constructor( override fun getDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection { checkMayRead() - changeLockLevel(WritableScope.LockLevel.READING) + changeLockLevel(LexicalWritableScope.LockLevel.READING) val result = ArrayList() result.addAll(addedDescriptors) @@ -168,7 +168,7 @@ public class WritableScopeImpl @JvmOverloads constructor( private inner class Snapshot(val descriptorLimit: Int) : KtScope by this@WritableScopeImpl { override fun getDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection { checkMayRead() - changeLockLevel(WritableScope.LockLevel.READING) + changeLockLevel(LexicalWritableScope.LockLevel.READING) val workerResult = workerScope.getDescriptors(kindFilter, nameFilter) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingServices.java b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingServices.java index 3360f017e2b..aa1d00329f2 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingServices.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingServices.java @@ -31,7 +31,6 @@ import org.jetbrains.kotlin.resolve.calls.context.ResolutionContext; import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo; import org.jetbrains.kotlin.resolve.scopes.LexicalScope; import org.jetbrains.kotlin.resolve.scopes.LexicalWritableScope; -import org.jetbrains.kotlin.resolve.scopes.WritableScope; import org.jetbrains.kotlin.types.ErrorUtils; import org.jetbrains.kotlin.types.KotlinType; import org.jetbrains.kotlin.types.expressions.typeInfoFactory.TypeInfoFactoryKt; @@ -169,7 +168,7 @@ public class ExpressionTypingServices { } LexicalWritableScope scope = new LexicalWritableScope(context.scope, containingDescriptor, false, null, new TraceBasedRedeclarationHandler(context.trace), "getBlockReturnedType"); - scope.changeLockLevel(WritableScope.LockLevel.BOTH); + scope.changeLockLevel(LexicalWritableScope.LockLevel.BOTH); KotlinTypeInfo r; if (block.isEmpty()) { @@ -180,7 +179,7 @@ public class ExpressionTypingServices { r = getBlockReturnedTypeWithWritableScope(scope, block, coercionStrategyForLastExpression, context.replaceStatementFilter(statementFilter)); } - scope.changeLockLevel(WritableScope.LockLevel.READING); + scope.changeLockLevel(LexicalWritableScope.LockLevel.READING); if (containingDescriptor instanceof ScriptDescriptor) { context.trace.record(BindingContext.SCRIPT_SCOPE, (ScriptDescriptor) containingDescriptor, scope); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingUtils.java b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingUtils.java index 595f93a7ba7..97113e5c39e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingUtils.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingUtils.java @@ -33,7 +33,6 @@ import org.jetbrains.kotlin.lexer.KtTokens; import org.jetbrains.kotlin.psi.*; import org.jetbrains.kotlin.resolve.*; import org.jetbrains.kotlin.resolve.scopes.LexicalWritableScope; -import org.jetbrains.kotlin.resolve.scopes.WritableScope; import org.jetbrains.kotlin.resolve.scopes.receivers.ClassReceiver; import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver; import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue; @@ -106,7 +105,7 @@ public class ExpressionTypingUtils { public static LexicalWritableScope newWritableScopeImpl(ExpressionTypingContext context, @NotNull String scopeDebugName) { LexicalWritableScope scope = new LexicalWritableScope( context.scope, context.scope.getOwnerDescriptor(), false, null, new TraceBasedRedeclarationHandler(context.trace), scopeDebugName); - scope.changeLockLevel(WritableScope.LockLevel.BOTH); + scope.changeLockLevel(LexicalWritableScope.LockLevel.BOTH); return scope; } diff --git a/compiler/tests/org/jetbrains/kotlin/jvm/runtime/AbstractJvmRuntimeDescriptorLoaderTest.kt b/compiler/tests/org/jetbrains/kotlin/jvm/runtime/AbstractJvmRuntimeDescriptorLoaderTest.kt index 750d4d7cf81..5bdfe982a0c 100644 --- a/compiler/tests/org/jetbrains/kotlin/jvm/runtime/AbstractJvmRuntimeDescriptorLoaderTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/jvm/runtime/AbstractJvmRuntimeDescriptorLoaderTest.kt @@ -189,7 +189,7 @@ public abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdi init { val writableScope = WritableScopeImpl(KtScope.Empty, this, RedeclarationHandler.THROW_EXCEPTION, "runtime descriptor loader test") classes.forEach { writableScope.addClassifierDescriptor(it) } - writableScope.changeLockLevel(WritableScope.LockLevel.READING) + writableScope.changeLockLevel(LexicalWritableScope.LockLevel.READING) scope = ChainedScope(this, "synthetic package view for test", writableScope, *packageScopes.toTypedArray()) } diff --git a/compiler/tests/org/jetbrains/kotlin/types/DefaultModalityModifiersTest.java b/compiler/tests/org/jetbrains/kotlin/types/DefaultModalityModifiersTest.java index 13233f44077..27cc9b37e81 100644 --- a/compiler/tests/org/jetbrains/kotlin/types/DefaultModalityModifiersTest.java +++ b/compiler/tests/org/jetbrains/kotlin/types/DefaultModalityModifiersTest.java @@ -29,10 +29,7 @@ import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo; import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil; import org.jetbrains.kotlin.resolve.lazy.ResolveSession; import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory; -import org.jetbrains.kotlin.resolve.scopes.KtScope; -import org.jetbrains.kotlin.resolve.scopes.RedeclarationHandler; -import org.jetbrains.kotlin.resolve.scopes.WritableScope; -import org.jetbrains.kotlin.resolve.scopes.WritableScopeImpl; +import org.jetbrains.kotlin.resolve.scopes.*; import org.jetbrains.kotlin.test.ConfigurationKind; import org.jetbrains.kotlin.test.KotlinLiteFixture; import org.jetbrains.kotlin.test.KotlinTestUtils; @@ -94,7 +91,7 @@ public class DefaultModalityModifiersTest extends KotlinLiteFixture { libraryScope, root, RedeclarationHandler.DO_NOTHING, "JetDefaultModalityModifiersTest"); assert classDescriptor instanceof ClassifierDescriptor; scope.addClassifierDescriptor((ClassifierDescriptor) classDescriptor); - scope.changeLockLevel(WritableScope.LockLevel.READING); + scope.changeLockLevel(LexicalWritableScope.LockLevel.READING); return scope; } diff --git a/compiler/tests/org/jetbrains/kotlin/types/KotlinTypeCheckerTest.java b/compiler/tests/org/jetbrains/kotlin/types/KotlinTypeCheckerTest.java index 76f2ec4ba72..b9d6967a235 100644 --- a/compiler/tests/org/jetbrains/kotlin/types/KotlinTypeCheckerTest.java +++ b/compiler/tests/org/jetbrains/kotlin/types/KotlinTypeCheckerTest.java @@ -625,7 +625,7 @@ public class KotlinTypeCheckerTest extends KotlinLiteFixture { } } scopeChain.add(module.getPackage(FqName.ROOT).getMemberScope()); - writableScope.changeLockLevel(WritableScope.LockLevel.BOTH); + writableScope.changeLockLevel(LexicalWritableScope.LockLevel.BOTH); return new ChainedScope(scope.getContainingDeclaration(), "JetTypeCheckerTest.addImports scope with imports", scopeChain.toArray(new KtScope[scopeChain.size()])); } diff --git a/compiler/tests/org/jetbrains/kotlin/types/TypeSubstitutorTest.java b/compiler/tests/org/jetbrains/kotlin/types/TypeSubstitutorTest.java index 6547d8145ca..ee56dda3d5a 100644 --- a/compiler/tests/org/jetbrains/kotlin/types/TypeSubstitutorTest.java +++ b/compiler/tests/org/jetbrains/kotlin/types/TypeSubstitutorTest.java @@ -91,7 +91,7 @@ public class TypeSubstitutorTest extends KotlinTestWithEnvironment { for (TypeParameterDescriptor parameterDescriptor : contextClass.getTypeConstructor().getParameters()) { typeParameters.addClassifierDescriptor(parameterDescriptor); } - typeParameters.changeLockLevel(WritableScope.LockLevel.READING); + typeParameters.changeLockLevel(LexicalWritableScope.LockLevel.READING); return new ChainedScope(module, "TypeSubstitutorTest::getContextScope()", topLevelDeclarations, diff --git a/compiler/tests/org/jetbrains/kotlin/types/TypeUnifierTest.java b/compiler/tests/org/jetbrains/kotlin/types/TypeUnifierTest.java index 9427a3b3376..dbfe8e8baf4 100644 --- a/compiler/tests/org/jetbrains/kotlin/types/TypeUnifierTest.java +++ b/compiler/tests/org/jetbrains/kotlin/types/TypeUnifierTest.java @@ -32,10 +32,7 @@ import org.jetbrains.kotlin.psi.KtPsiFactoryKt; import org.jetbrains.kotlin.psi.KtTypeProjection; import org.jetbrains.kotlin.psi.KtTypeReference; import org.jetbrains.kotlin.resolve.TypeResolver; -import org.jetbrains.kotlin.resolve.scopes.KtScope; -import org.jetbrains.kotlin.resolve.scopes.RedeclarationHandler; -import org.jetbrains.kotlin.resolve.scopes.WritableScope; -import org.jetbrains.kotlin.resolve.scopes.WritableScopeImpl; +import org.jetbrains.kotlin.resolve.scopes.*; import org.jetbrains.kotlin.test.ConfigurationKind; import org.jetbrains.kotlin.test.KotlinLiteFixture; import org.jetbrains.kotlin.test.KotlinTestUtils; @@ -205,7 +202,7 @@ public class TypeUnifierTest extends KotlinLiteFixture { new WritableScopeImpl(scope, scope.getContainingDeclaration(), RedeclarationHandler.DO_NOTHING, "With X"); withX.addClassifierDescriptor(x); withX.addClassifierDescriptor(y); - withX.changeLockLevel(WritableScope.LockLevel.READING); + withX.changeLockLevel(LexicalWritableScope.LockLevel.READING); KtTypeProjection projection = KtPsiFactoryKt .KtPsiFactory(getProject()).createTypeArguments("<" + typeStr + ">").getArguments().get(0); 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 953a004401f..e2b08d9d393 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 @@ -357,7 +357,7 @@ class CallableBuilder(val config: CallableBuilderConfiguration) { ) ) { receiverClassDescriptor.getTypeConstructor().getParameters().forEach { addClassifierDescriptor(it) } - changeLockLevel(WritableScope.LockLevel.READING) + changeLockLevel(LexicalWritableScope.LockLevel.READING) this }