Drop some of explicit ClassKind.CLASS_OBJECT and OBJECT usages

This commit is contained in:
Pavel V. Talanov
2015-03-04 14:51:37 +03:00
parent fa590a5b83
commit 350864b22f
16 changed files with 43 additions and 38 deletions
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils.isAncestor
import com.google.dart.compiler.backend.js.ast.JsName
import org.jetbrains.kotlin.js.translate.utils.ManglingUtils.getSuggestedName
import com.google.dart.compiler.backend.js.ast.JsFunctionScope
import org.jetbrains.kotlin.resolve.DescriptorUtils
private val CAPTURED_RECEIVER_NAME_PREFIX : String = "this$"
@@ -97,8 +98,8 @@ private fun ReceiverParameterDescriptor.getNameForCapturedReceiver(): String {
"receiverDescriptor = $this, " +"containingDeclaration = $containingDeclaration"
}
if (containingDeclaration is ClassDescriptor && containingDeclaration.getKind() == ClassKind.CLASS_OBJECT) {
return containingDeclaration.getContainingDeclaration().getNameForCapturedDescriptor(namePostfix = "$")
if (DescriptorUtils.isDefaultObject(containingDeclaration)) {
return containingDeclaration.getContainingDeclaration()!!.getNameForCapturedDescriptor(namePostfix = "$")
}
return containingDeclaration.getNameForCapturedDescriptor()
@@ -184,7 +184,7 @@ public final class ClassTranslator extends AbstractTranslator {
// Overlap alias of class object receiver for accessing from containing class(see previous if block),
// because inside class object we should use simple name for access.
if (descriptor.getKind() == ClassKind.CLASS_OBJECT) {
if (isDefaultObject(descriptor)) {
declarationContext = declarationContext.innerContextWithAliased(descriptor.getThisAsReceiverParameter(), JsLiteral.THIS);
}