JS: generate shorter tag for inline functions

This commit is contained in:
Alexey Tsvetkov
2015-03-10 21:37:39 +03:00
parent 8be3628074
commit eb4f6b8a1e
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.descriptors.CallableDescriptor;
import org.jetbrains.kotlin.descriptors.ClassDescriptor;
import org.jetbrains.kotlin.idea.JetLanguage;
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.name.FqNameUnsafe;
import org.jetbrains.kotlin.resolve.DescriptorUtils;
import java.util.Arrays;
@@ -32,7 +33,6 @@ import static com.google.dart.compiler.backend.js.ast.AstPackage.JsObjectScope;
import static org.jetbrains.kotlin.js.translate.utils.JsDescriptorUtils.getModuleName;
import static org.jetbrains.kotlin.js.translate.utils.ManglingUtils.getStableMangledNameForDescriptor;
import static org.jetbrains.kotlin.js.translate.utils.ManglingUtils.getSuggestedName;
import static org.jetbrains.kotlin.resolve.DescriptorUtils.getFqNameSafe;
/**
* Encapsulates different types of constants and naming conventions.
@@ -107,10 +107,16 @@ public final class Namer {
@NotNull
public static String getFunctionTag(@NotNull CallableDescriptor functionDescriptor) {
FqName fqName = getFqNameSafe(functionDescriptor);
String mangledName = getSuggestedName(functionDescriptor);
String moduleName = getModuleName(functionDescriptor);
return StringUtil.join(Arrays.asList(moduleName, fqName, mangledName), ".");
FqNameUnsafe fqNameParent = DescriptorUtils.getFqName(functionDescriptor).parent();
String qualifier = null;
if (!fqNameParent.isRoot()) {
qualifier = fqNameParent.asString();
}
String mangledName = getSuggestedName(functionDescriptor);
return StringUtil.join(Arrays.asList(moduleName, qualifier, mangledName), ".");
}
@NotNull