More code simplifications
This commit is contained in:
@@ -113,24 +113,27 @@ public class WritableScopeImpl(override val workerScope: JetScope,
|
|||||||
declarationDescriptors.add(descriptor)
|
declarationDescriptors.add(descriptor)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getVariableOrClassDescriptors(): MutableMap<Name, DeclarationDescriptor> {
|
private fun addVariableOrClassDescriptor(descriptor: DeclarationDescriptor) {
|
||||||
|
checkMayWrite()
|
||||||
|
|
||||||
|
val name = descriptor.getName()
|
||||||
|
|
||||||
|
val originalDescriptor = variableOrClassDescriptors?.get(name)
|
||||||
|
if (originalDescriptor != null) {
|
||||||
|
redeclarationHandler.handleRedeclaration(originalDescriptor, descriptor)
|
||||||
|
}
|
||||||
|
|
||||||
if (variableOrClassDescriptors == null) {
|
if (variableOrClassDescriptors == null) {
|
||||||
variableOrClassDescriptors = HashMap()
|
variableOrClassDescriptors = HashMap()
|
||||||
}
|
}
|
||||||
return variableOrClassDescriptors!!
|
variableOrClassDescriptors!!.put(name, descriptor)
|
||||||
|
|
||||||
|
explicitlyAddedDescriptors.add(descriptor)
|
||||||
|
declaredDescriptorsAccessibleBySimpleName.put(name, descriptor)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun addVariableDescriptor(variableDescriptor: VariableDescriptor) {
|
override fun addVariableDescriptor(variableDescriptor: VariableDescriptor) {
|
||||||
checkMayWrite()
|
addVariableOrClassDescriptor(variableDescriptor)
|
||||||
|
|
||||||
val name = variableDescriptor.getName()
|
|
||||||
if (variableDescriptor.getExtensionReceiverParameter() == null) {
|
|
||||||
checkForRedeclaration(name, variableDescriptor)
|
|
||||||
// TODO : Should this always happen?
|
|
||||||
getVariableOrClassDescriptors().put(name, variableDescriptor)
|
|
||||||
}
|
|
||||||
explicitlyAddedDescriptors.add(variableDescriptor)
|
|
||||||
addToDeclared(variableDescriptor)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getProperties(name: Name): Collection<VariableDescriptor> {
|
override fun getProperties(name: Name): Collection<VariableDescriptor> {
|
||||||
@@ -168,20 +171,7 @@ public class WritableScopeImpl(override val workerScope: JetScope,
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun addClassifierDescriptor(classifierDescriptor: ClassifierDescriptor) {
|
override fun addClassifierDescriptor(classifierDescriptor: ClassifierDescriptor) {
|
||||||
checkMayWrite()
|
addVariableOrClassDescriptor(classifierDescriptor)
|
||||||
|
|
||||||
val name = classifierDescriptor.getName()
|
|
||||||
checkForRedeclaration(name, classifierDescriptor)
|
|
||||||
getVariableOrClassDescriptors().put(name, classifierDescriptor)
|
|
||||||
explicitlyAddedDescriptors.add(classifierDescriptor)
|
|
||||||
addToDeclared(classifierDescriptor)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun checkForRedeclaration(name: Name, classifierDescriptor: DeclarationDescriptor) {
|
|
||||||
val originalDescriptor = getVariableOrClassDescriptors()[name]
|
|
||||||
if (originalDescriptor != null) {
|
|
||||||
redeclarationHandler.handleRedeclaration(originalDescriptor, classifierDescriptor)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getClassifier(name: Name): ClassifierDescriptor? {
|
override fun getClassifier(name: Name): ClassifierDescriptor? {
|
||||||
@@ -223,10 +213,6 @@ public class WritableScopeImpl(override val workerScope: JetScope,
|
|||||||
super<AbstractScopeAdapter>.getImplicitReceiversHierarchy()
|
super<AbstractScopeAdapter>.getImplicitReceiversHierarchy()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun addToDeclared(descriptor: DeclarationDescriptor) {
|
|
||||||
declaredDescriptorsAccessibleBySimpleName.put(descriptor.getName(), descriptor)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun getOwnDeclaredDescriptors(): Collection<DeclarationDescriptor>
|
override fun getOwnDeclaredDescriptors(): Collection<DeclarationDescriptor>
|
||||||
= declaredDescriptorsAccessibleBySimpleName.values()
|
= declaredDescriptorsAccessibleBySimpleName.values()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user