Fix build after change in property accessor names

This commit is contained in:
Alexander Udalov
2015-10-01 01:54:36 +03:00
parent 5afa91d4ec
commit 34d14939f9
18 changed files with 56 additions and 39 deletions
@@ -59,7 +59,10 @@ import org.jetbrains.kotlin.load.java.descriptors.SamConstructorDescriptor;
import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.psi.*; import org.jetbrains.kotlin.psi.*;
import org.jetbrains.kotlin.renderer.DescriptorRenderer; import org.jetbrains.kotlin.renderer.DescriptorRenderer;
import org.jetbrains.kotlin.resolve.*; import org.jetbrains.kotlin.resolve.BindingContext;
import org.jetbrains.kotlin.resolve.BindingContextUtils;
import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils;
import org.jetbrains.kotlin.resolve.DescriptorUtils;
import org.jetbrains.kotlin.resolve.annotations.AnnotationsPackage; import org.jetbrains.kotlin.resolve.annotations.AnnotationsPackage;
import org.jetbrains.kotlin.resolve.calls.callResolverUtil.CallResolverUtilPackage; import org.jetbrains.kotlin.resolve.calls.callResolverUtil.CallResolverUtilPackage;
import org.jetbrains.kotlin.resolve.calls.model.*; import org.jetbrains.kotlin.resolve.calls.model.*;
@@ -2758,7 +2761,7 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
JetType type = bindingContext.getType(expression); JetType type = bindingContext.getType(expression);
assert type != null; assert type != null;
assert state.getReflectionTypes().getkClass().getTypeConstructor().equals(type.getConstructor()) assert state.getReflectionTypes().getKClass().getTypeConstructor().equals(type.getConstructor())
: "::class expression should be type checked to a KClass: " + type; : "::class expression should be type checked to a KClass: " + type;
return generateClassLiteralReference(typeMapper, KotlinPackage.single(type.getArguments()).getType()); return generateClassLiteralReference(typeMapper, KotlinPackage.single(type.getArguments()).getType());
@@ -522,7 +522,7 @@ public class InternalFinallyBlockInliner extends CoveringTryCatchNodeProcessor {
@Nullable @Nullable
private static AbstractInsnNode getNextMeaningful(@NotNull AbstractInsnNode node) { private static AbstractInsnNode getNextMeaningful(@NotNull AbstractInsnNode node) {
AbstractInsnNode result = node.getNext(); AbstractInsnNode result = node.getNext();
while (result != null && !CommonPackage.getIsMeaningful(result)) { while (result != null && !CommonPackage.isMeaningful(result)) {
result = result.getNext(); result = result.getNext();
} }
return result; return result;
@@ -36,10 +36,14 @@ import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport;
import org.jetbrains.kotlin.cli.common.messages.DiagnosticMessageReporter; import org.jetbrains.kotlin.cli.common.messages.DiagnosticMessageReporter;
import org.jetbrains.kotlin.cli.jvm.compiler.CliLightClassGenerationSupport; import org.jetbrains.kotlin.cli.jvm.compiler.CliLightClassGenerationSupport;
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles; import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles;
import org.jetbrains.kotlin.cli.jvm.compiler.JvmPackagePartProvider;
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment; import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
import org.jetbrains.kotlin.cli.jvm.repl.di.ContainerForReplWithJava; import org.jetbrains.kotlin.cli.jvm.repl.di.ContainerForReplWithJava;
import org.jetbrains.kotlin.cli.jvm.repl.di.DiPackage; import org.jetbrains.kotlin.cli.jvm.repl.di.DiPackage;
import org.jetbrains.kotlin.cli.jvm.repl.messages.*; import org.jetbrains.kotlin.cli.jvm.repl.messages.DiagnosticMessageHolder;
import org.jetbrains.kotlin.cli.jvm.repl.messages.ReplIdeDiagnosticMessageHolder;
import org.jetbrains.kotlin.cli.jvm.repl.messages.ReplSystemInWrapper;
import org.jetbrains.kotlin.cli.jvm.repl.messages.ReplTerminalDiagnosticMessageHolder;
import org.jetbrains.kotlin.codegen.ClassBuilderFactories; import org.jetbrains.kotlin.codegen.ClassBuilderFactories;
import org.jetbrains.kotlin.codegen.CompilationErrorHandler; import org.jetbrains.kotlin.codegen.CompilationErrorHandler;
import org.jetbrains.kotlin.codegen.KotlinCodegenFacade; import org.jetbrains.kotlin.codegen.KotlinCodegenFacade;
@@ -59,7 +63,6 @@ import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo;
import org.jetbrains.kotlin.resolve.jvm.JvmClassName; import org.jetbrains.kotlin.resolve.jvm.JvmClassName;
import org.jetbrains.kotlin.resolve.jvm.TopDownAnalyzerFacadeForJVM; import org.jetbrains.kotlin.resolve.jvm.TopDownAnalyzerFacadeForJVM;
import org.jetbrains.kotlin.resolve.lazy.FileScopeProvider; import org.jetbrains.kotlin.resolve.lazy.FileScopeProvider;
import org.jetbrains.kotlin.cli.jvm.compiler.JvmPackagePartProvider;
import org.jetbrains.kotlin.resolve.lazy.ResolveSession; import org.jetbrains.kotlin.resolve.lazy.ResolveSession;
import org.jetbrains.kotlin.resolve.lazy.data.JetClassLikeInfo; import org.jetbrains.kotlin.resolve.lazy.data.JetClassLikeInfo;
import org.jetbrains.kotlin.resolve.lazy.declarations.*; import org.jetbrains.kotlin.resolve.lazy.declarations.*;
@@ -75,7 +78,10 @@ import java.lang.reflect.Field;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.net.URLClassLoader; import java.net.URLClassLoader;
import java.util.*; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static org.jetbrains.kotlin.cli.jvm.config.ConfigPackage.getJvmClasspathRoots; import static org.jetbrains.kotlin.cli.jvm.config.ConfigPackage.getJvmClasspathRoots;
import static org.jetbrains.kotlin.cli.jvm.config.ConfigPackage.getModuleName; import static org.jetbrains.kotlin.cli.jvm.config.ConfigPackage.getModuleName;
@@ -363,7 +369,7 @@ public class ReplInterpreter {
private void setReplScriptExecuting(boolean isExecuting) { private void setReplScriptExecuting(boolean isExecuting) {
if (replReader != null) { if (replReader != null) {
replReader.setIsReplScriptExecuting(isExecuting); replReader.setReplScriptExecuting(isExecuting);
} }
} }
@@ -336,7 +336,7 @@ public class JetFlowInformationProvider {
} }
if (!(instruction instanceof WriteValueInstruction)) return; if (!(instruction instanceof WriteValueInstruction)) return;
WriteValueInstruction writeValueInstruction = (WriteValueInstruction) instruction; WriteValueInstruction writeValueInstruction = (WriteValueInstruction) instruction;
JetElement element = writeValueInstruction.getlValue(); JetElement element = writeValueInstruction.getLValue();
boolean error = checkBackingField(ctxt, element); boolean error = checkBackingField(ctxt, element);
if (!(element instanceof JetExpression)) return; if (!(element instanceof JetExpression)) return;
if (!error) { if (!error) {
@@ -50,7 +50,7 @@ public class TailRecursionDetector extends InstructionVisitorWithResult<Boolean>
@Override @Override
public Boolean visitSubroutineExit(@NotNull SubroutineExitInstruction instruction) { public Boolean visitSubroutineExit(@NotNull SubroutineExitInstruction instruction) {
return !instruction.getIsError() && instruction.getSubroutine() == subroutine; return !instruction.isError() && instruction.getSubroutine() == subroutine;
} }
@Override @Override
@@ -20,11 +20,16 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.cfg.JetControlFlowProcessor; import org.jetbrains.kotlin.cfg.JetControlFlowProcessor;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction; import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.*; import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.AccessTarget;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.AccessValueInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.ReadValueInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.WriteValueInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.VariableDeclarationInstruction; import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.VariableDeclarationInstruction;
import org.jetbrains.kotlin.descriptors.VariableDescriptor; import org.jetbrains.kotlin.descriptors.VariableDescriptor;
import org.jetbrains.kotlin.diagnostics.Diagnostic; import org.jetbrains.kotlin.diagnostics.Diagnostic;
import org.jetbrains.kotlin.psi.*; import org.jetbrains.kotlin.psi.JetDeclaration;
import org.jetbrains.kotlin.psi.JetElement;
import org.jetbrains.kotlin.psi.JetExpression;
import org.jetbrains.kotlin.resolve.BindingContext; import org.jetbrains.kotlin.resolve.BindingContext;
import org.jetbrains.kotlin.resolve.BindingContextUtils; import org.jetbrains.kotlin.resolve.BindingContextUtils;
import org.jetbrains.kotlin.resolve.BindingTrace; import org.jetbrains.kotlin.resolve.BindingTrace;
@@ -89,7 +94,7 @@ public class PseudocodeUtil {
element = ((ReadValueInstruction) instruction).getElement(); element = ((ReadValueInstruction) instruction).getElement();
} }
else if (instruction instanceof WriteValueInstruction) { else if (instruction instanceof WriteValueInstruction) {
element = ((WriteValueInstruction) instruction).getlValue(); element = ((WriteValueInstruction) instruction).getLValue();
} }
else if (instruction instanceof VariableDeclarationInstruction) { else if (instruction instanceof VariableDeclarationInstruction) {
element = ((VariableDeclarationInstruction) instruction).getVariableDeclarationElement(); element = ((VariableDeclarationInstruction) instruction).getVariableDeclarationElement();
@@ -37,7 +37,10 @@ import org.jetbrains.kotlin.resolve.calls.results.OverloadResolutionResults;
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo; import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo;
import org.jetbrains.kotlin.resolve.calls.util.CallMaker; import org.jetbrains.kotlin.resolve.calls.util.CallMaker;
import org.jetbrains.kotlin.resolve.lazy.ForceResolveUtil; import org.jetbrains.kotlin.resolve.lazy.ForceResolveUtil;
import org.jetbrains.kotlin.resolve.scopes.*; import org.jetbrains.kotlin.resolve.scopes.JetScopeUtils;
import org.jetbrains.kotlin.resolve.scopes.LexicalScope;
import org.jetbrains.kotlin.resolve.scopes.LexicalScopeImpl;
import org.jetbrains.kotlin.resolve.scopes.RedeclarationHandler;
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue; import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue;
import org.jetbrains.kotlin.types.*; import org.jetbrains.kotlin.types.*;
import org.jetbrains.kotlin.types.expressions.ExpressionTypingContext; import org.jetbrains.kotlin.types.expressions.ExpressionTypingContext;
@@ -110,7 +113,7 @@ public class BodyResolver {
// SCRIPT: resolve script bodies // SCRIPT: resolve script bodies
scriptBodyResolverResolver.resolveScriptBodies(c); scriptBodyResolverResolver.resolveScriptBodies(c);
if (!c.getTopDownAnalysisMode().getIsLocalDeclarations()) { if (!c.getTopDownAnalysisMode().isLocalDeclarations()) {
computeDeferredTypes(); computeDeferredTypes();
} }
} }
@@ -732,7 +735,7 @@ public class BodyResolver {
LexicalScope scope = c.getDeclaringScope(declaration); LexicalScope scope = c.getDeclaringScope(declaration);
assert scope != null : "Scope is null: " + PsiUtilPackage.getElementTextWithContext(declaration); assert scope != null : "Scope is null: " + PsiUtilPackage.getElementTextWithContext(declaration);
if (!c.getTopDownAnalysisMode().getIsLocalDeclarations() && !(bodyResolveCache instanceof BodyResolveCache.ThrowException) && if (!c.getTopDownAnalysisMode().isLocalDeclarations() && !(bodyResolveCache instanceof BodyResolveCache.ThrowException) &&
expressionTypingServices.getStatementFilter() != StatementFilter.NONE) { expressionTypingServices.getStatementFilter() != StatementFilter.NONE) {
bodyResolveCache.resolveFunctionBody(declaration).addOwnDataTo(trace, true); bodyResolveCache.resolveFunctionBody(declaration).addOwnDataTo(trace, true);
} }
@@ -74,7 +74,7 @@ public class ControlFlowAnalyzer {
// A pseudocode of class/object initialization corresponds to a class/object // A pseudocode of class/object initialization corresponds to a class/object
// or initialization of properties corresponds to a package declared in a file // or initialization of properties corresponds to a package declared in a file
JetFlowInformationProvider flowInformationProvider = new JetFlowInformationProvider((JetElement) declarationContainer, trace); JetFlowInformationProvider flowInformationProvider = new JetFlowInformationProvider((JetElement) declarationContainer, trace);
if (c.getTopDownAnalysisMode().getIsLocalDeclarations()) { if (c.getTopDownAnalysisMode().isLocalDeclarations()) {
flowInformationProvider.checkForLocalClassOrObjectMode(); flowInformationProvider.checkForLocalClassOrObjectMode();
return; return;
} }
@@ -95,7 +95,7 @@ public class ControlFlowAnalyzer {
private void checkFunction(@NotNull BodiesResolveContext c, @NotNull JetDeclarationWithBody function, @Nullable JetType expectedReturnType) { private void checkFunction(@NotNull BodiesResolveContext c, @NotNull JetDeclarationWithBody function, @Nullable JetType expectedReturnType) {
if (!function.hasBody()) return; if (!function.hasBody()) return;
JetFlowInformationProvider flowInformationProvider = new JetFlowInformationProvider(function, trace); JetFlowInformationProvider flowInformationProvider = new JetFlowInformationProvider(function, trace);
if (c.getTopDownAnalysisMode().getIsLocalDeclarations()) { if (c.getTopDownAnalysisMode().isLocalDeclarations()) {
flowInformationProvider.checkForLocalClassOrObjectMode(); flowInformationProvider.checkForLocalClassOrObjectMode();
return; return;
} }
@@ -385,7 +385,7 @@ public class CallExpressionResolver {
} }
CompileTimeConstant<?> value = constantExpressionEvaluator.evaluateExpression(expression, context.trace, context.expectedType); CompileTimeConstant<?> value = constantExpressionEvaluator.evaluateExpression(expression, context.trace, context.expectedType);
if (value != null && value.getIsPure()) { if (value != null && value.isPure()) {
return dataFlowAnalyzer.createCompileTimeConstantTypeInfo(value, expression, context); return dataFlowAnalyzer.createCompileTimeConstantTypeInfo(value, expression, context);
} }
@@ -43,7 +43,7 @@ import java.util.Set;
import static org.jetbrains.kotlin.diagnostics.Errors.NON_LOCAL_RETURN_NOT_ALLOWED; import static org.jetbrains.kotlin.diagnostics.Errors.NON_LOCAL_RETURN_NOT_ALLOWED;
import static org.jetbrains.kotlin.diagnostics.Errors.USAGE_IS_NOT_INLINABLE; import static org.jetbrains.kotlin.diagnostics.Errors.USAGE_IS_NOT_INLINABLE;
import static org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilPackage.getIsEffectivelyPublicApi; import static org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilPackage.isEffectivelyPublicApi;
import static org.jetbrains.kotlin.resolve.inline.InlineUtil.allowsNonLocalReturns; import static org.jetbrains.kotlin.resolve.inline.InlineUtil.allowsNonLocalReturns;
import static org.jetbrains.kotlin.resolve.inline.InlineUtil.checkNonLocalReturnUsage; import static org.jetbrains.kotlin.resolve.inline.InlineUtil.checkNonLocalReturnUsage;
@@ -55,7 +55,7 @@ class InlineChecker implements CallChecker {
public InlineChecker(@NotNull SimpleFunctionDescriptor descriptor) { public InlineChecker(@NotNull SimpleFunctionDescriptor descriptor) {
assert InlineUtil.isInline(descriptor) : "This extension should be created only for inline functions: " + descriptor; assert InlineUtil.isInline(descriptor) : "This extension should be created only for inline functions: " + descriptor;
this.descriptor = descriptor; this.descriptor = descriptor;
this.isEffectivelyPublicApiFunction = getIsEffectivelyPublicApi(descriptor); this.isEffectivelyPublicApiFunction = isEffectivelyPublicApi(descriptor);
for (ValueParameterDescriptor param : descriptor.getValueParameters()) { for (ValueParameterDescriptor param : descriptor.getValueParameters()) {
if (isInlinableParameter(param)) { if (isInlinableParameter(param)) {
@@ -236,7 +236,7 @@ class InlineChecker implements CallChecker {
} }
private void checkVisibility(@NotNull CallableDescriptor declarationDescriptor, @NotNull JetElement expression, @NotNull BasicCallResolutionContext context){ private void checkVisibility(@NotNull CallableDescriptor declarationDescriptor, @NotNull JetElement expression, @NotNull BasicCallResolutionContext context){
boolean declarationDescriptorIsPublicApi = getIsEffectivelyPublicApi(declarationDescriptor) || isDefinedInInlineFunction(declarationDescriptor); boolean declarationDescriptorIsPublicApi = isEffectivelyPublicApi(declarationDescriptor) || isDefinedInInlineFunction(declarationDescriptor);
if (isEffectivelyPublicApiFunction && !declarationDescriptorIsPublicApi && declarationDescriptor.getVisibility() != Visibilities.LOCAL) { if (isEffectivelyPublicApiFunction && !declarationDescriptorIsPublicApi && declarationDescriptor.getVisibility() != Visibilities.LOCAL) {
context.trace.report(Errors.INVISIBLE_MEMBER_FROM_INLINE.on(expression, declarationDescriptor, descriptor)); context.trace.report(Errors.INVISIBLE_MEMBER_FROM_INLINE.on(expression, declarationDescriptor, descriptor));
} }
@@ -112,7 +112,7 @@ public final class DeserializedDescriptorResolver {
@Nullable @Nullable
public String[] readData(@NotNull KotlinJvmBinaryClass kotlinClass, @NotNull Set<KotlinClassHeader.Kind> expectedKinds) { public String[] readData(@NotNull KotlinJvmBinaryClass kotlinClass, @NotNull Set<KotlinClassHeader.Kind> expectedKinds) {
KotlinClassHeader header = kotlinClass.getClassHeader(); KotlinClassHeader header = kotlinClass.getClassHeader();
if (!header.getIsCompatibleAbiVersion()) { if (!header.isCompatibleAbiVersion()) {
errorReporter.reportIncompatibleAbiVersion(kotlinClass.getClassId(), kotlinClass.getLocation(), header.getVersion()); errorReporter.reportIncompatibleAbiVersion(kotlinClass.getClassId(), kotlinClass.getLocation(), header.getVersion());
} }
else if (expectedKinds.contains(header.getKind())) { else if (expectedKinds.contains(header.getKind())) {
@@ -619,7 +619,7 @@ public class JetChangeSignatureUsageProcessor implements ChangeSignatureUsagePro
JetScope callableScope = org.jetbrains.kotlin.idea.refactoring.RefactoringPackage.getContainingScope(oldDescriptor, bindingContext); JetScope callableScope = org.jetbrains.kotlin.idea.refactoring.RefactoringPackage.getContainingScope(oldDescriptor, bindingContext);
JetMethodDescriptor.Kind kind = ChangeSignaturePackage.getKind(changeInfo); JetMethodDescriptor.Kind kind = ChangeSignaturePackage.getKind(changeInfo);
if (!kind.getIsConstructor() && callableScope != null && !info.getNewName().isEmpty()) { if (!kind.isConstructor() && callableScope != null && !info.getNewName().isEmpty()) {
Name newName = Name.identifier(info.getNewName()); Name newName = Name.identifier(info.getNewName());
Collection<? extends CallableDescriptor> conflicts = oldDescriptor instanceof FunctionDescriptor Collection<? extends CallableDescriptor> conflicts = oldDescriptor instanceof FunctionDescriptor
? ScopeUtils.getAllAccessibleFunctions(callableScope, newName) ? ScopeUtils.getAllAccessibleFunctions(callableScope, newName)
@@ -703,7 +703,7 @@ public class JetChangeSignatureUsageProcessor implements ChangeSignatureUsagePro
} }
); );
for (JetParameterInfo parameterInfo : changeInfo.getNonReceiverParameters()) { for (JetParameterInfo parameterInfo : changeInfo.getNonReceiverParameters()) {
if (!(parameterInfo.getIsNewParameter())) continue; if (!(parameterInfo.isNewParameter())) continue;
String name = parameterInfo.getName(); String name = parameterInfo.getName();
JetParameter parameter = existingParameters.get(name); JetParameter parameter = existingParameters.get(name);
@@ -52,7 +52,7 @@ public class JetPrimaryConstructorParameterTableModel extends JetCallableParamet
@Override @Override
public boolean isCellEditable(ParameterTableModelItemBase<JetParameterInfo> item) { public boolean isCellEditable(ParameterTableModelItemBase<JetParameterInfo> item) {
return !item.isEllipsisType() && item.parameter.getIsNewParameter(); return !item.isEllipsisType() && item.parameter.isNewParameter();
} }
@Override @Override
@@ -376,7 +376,7 @@ public class JetCallableDefinitionUsage<T extends PsiElement> extends JetUsageIn
parameter.addBefore(psiFactory.createWhiteSpace(), firstChild); parameter.addBefore(psiFactory.createWhiteSpace(), firstChild);
} }
if (parameterInfo.getIsTypeChanged() && parameter.getTypeReference() != null) { if (parameterInfo.isTypeChanged() && parameter.getTypeReference() != null) {
String renderedType = parameterInfo.renderType(parameterIndex, this); String renderedType = parameterInfo.renderType(parameterIndex, this);
parameter.setTypeReference(psiFactory.createType(renderedType)); parameter.setTypeReference(psiFactory.createType(renderedType));
} }
@@ -148,8 +148,9 @@ public abstract class Config {
} }
private ModuleDescriptorImpl createModuleDescriptor(KotlinJavascriptMetadata metadata) { private ModuleDescriptorImpl createModuleDescriptor(KotlinJavascriptMetadata metadata) {
assert metadata.getIsAbiVersionCompatible() : assert metadata.isAbiVersionCompatible() :
"expected abi version " + KotlinJavascriptMetadataUtils.ABI_VERSION + ", but metadata.abiVersion = " + metadata.getAbiVersion(); "expected abi version " + KotlinJavascriptMetadataUtils.ABI_VERSION +
", but metadata.abiVersion = " + metadata.getAbiVersion();
ModuleDescriptorImpl moduleDescriptor = new ModuleDescriptorImpl( ModuleDescriptorImpl moduleDescriptor = new ModuleDescriptorImpl(
Name.special("<" + metadata.getModuleName() + ">"), storageManager, Name.special("<" + metadata.getModuleName() + ">"), storageManager,
@@ -168,8 +168,10 @@ public class LibrarySourcesConfig extends Config {
} }
for (KotlinJavascriptMetadata metadata : metadataList) { for (KotlinJavascriptMetadata metadata : metadataList) {
if (!metadata.getIsAbiVersionCompatible()) { if (!metadata.isAbiVersionCompatible()) {
report.invoke("File '" + path + "' was compiled with an incompatible version of Kotlin. Its ABI version is " + metadata.getAbiVersion() + ", expected ABI version is " + KotlinJavascriptMetadataUtils.ABI_VERSION); report.invoke("File '" + path + "' was compiled with an incompatible version of Kotlin. " +
"Its ABI version is " + metadata.getAbiVersion() +
", expected ABI version is " + KotlinJavascriptMetadataUtils.ABI_VERSION);
return true; return true;
} }
} }
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.js.translate.expression; package org.jetbrains.kotlin.js.translate.expression;
import com.google.dart.compiler.backend.js.ast.*; import com.google.dart.compiler.backend.js.ast.*;
import com.google.dart.compiler.backend.js.ast.metadata.MetadataProperties; import com.google.dart.compiler.backend.js.ast.metadata.MetadataProperties;
import com.intellij.util.SmartList; import com.intellij.util.SmartList;
@@ -42,7 +41,7 @@ import static org.jetbrains.kotlin.js.translate.utils.BindingUtils.getFunctionDe
import static org.jetbrains.kotlin.js.translate.utils.ErrorReportingUtils.message; import static org.jetbrains.kotlin.js.translate.utils.ErrorReportingUtils.message;
import static org.jetbrains.kotlin.js.translate.utils.FunctionBodyTranslator.translateFunctionBody; import static org.jetbrains.kotlin.js.translate.utils.FunctionBodyTranslator.translateFunctionBody;
import static org.jetbrains.kotlin.js.translate.utils.JsAstUtils.setParameters; import static org.jetbrains.kotlin.js.translate.utils.JsAstUtils.setParameters;
import static org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilPackage.getIsEffectivelyPublicApi; import static org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilPackage.isEffectivelyPublicApi;
public final class FunctionTranslator extends AbstractTranslator { public final class FunctionTranslator extends AbstractTranslator {
@NotNull @NotNull
@@ -100,7 +99,7 @@ public final class FunctionTranslator extends AbstractTranslator {
JsName functionName = context().getNameForDescriptor(descriptor); JsName functionName = context().getNameForDescriptor(descriptor);
generateFunctionObject(); generateFunctionObject();
if (shouldBeInlined(descriptor) && getIsEffectivelyPublicApi(descriptor)) { if (shouldBeInlined(descriptor) && isEffectivelyPublicApi(descriptor)) {
InlineMetadata metadata = InlineMetadata.compose(functionObject, descriptor); InlineMetadata metadata = InlineMetadata.compose(functionObject, descriptor);
return new JsPropertyInitializer(functionName.makeRef(), metadata.getFunctionWithMetadata()); return new JsPropertyInitializer(functionName.makeRef(), metadata.getFunctionWithMetadata());
} }
@@ -82,7 +82,7 @@ public class ManglingUtils {
DeclarationDescriptor containingDeclaration = descriptor.getContainingDeclaration(); DeclarationDescriptor containingDeclaration = descriptor.getContainingDeclaration();
if (containingDeclaration instanceof PackageFragmentDescriptor) { if (containingDeclaration instanceof PackageFragmentDescriptor) {
return descriptor.getVisibility().getIsPublicAPI(); return descriptor.getVisibility().isPublicAPI();
} }
else if (containingDeclaration instanceof ClassDescriptor) { else if (containingDeclaration instanceof ClassDescriptor) {
ClassDescriptor classDescriptor = (ClassDescriptor) containingDeclaration; ClassDescriptor classDescriptor = (ClassDescriptor) containingDeclaration;
@@ -98,7 +98,7 @@ public class ManglingUtils {
} }
// Don't use stable mangling when it inside a non-public API declaration. // Don't use stable mangling when it inside a non-public API declaration.
if (!classDescriptor.getVisibility().getIsPublicAPI()) { if (!classDescriptor.getVisibility().isPublicAPI()) {
return false; return false;
} }
@@ -144,9 +144,7 @@ public class ManglingUtils {
@NotNull @NotNull
private static String getSuggestedName(@NotNull CallableDescriptor descriptor) { private static String getSuggestedName(@NotNull CallableDescriptor descriptor) {
if (descriptor instanceof ConstructorDescriptor && !((ConstructorDescriptor) descriptor).isPrimary()) { if (descriptor instanceof ConstructorDescriptor && !((ConstructorDescriptor) descriptor).isPrimary()) {
DeclarationDescriptor classDescriptor = descriptor.getContainingDeclaration(); return descriptor.getContainingDeclaration().getName().asString();
assert classDescriptor != null;
return classDescriptor.getName().asString();
} }
else { else {
return descriptor.getName().asString(); return descriptor.getName().asString();
@@ -161,7 +159,7 @@ public class ManglingUtils {
String nameToCompare = descriptor.getName().asString(); String nameToCompare = descriptor.getName().asString();
if (containingDeclaration != null && descriptor instanceof ConstructorDescriptor) { if (descriptor instanceof ConstructorDescriptor) {
nameToCompare = containingDeclaration.getName().asString(); nameToCompare = containingDeclaration.getName().asString();
containingDeclaration = containingDeclaration.getContainingDeclaration(); containingDeclaration = containingDeclaration.getContainingDeclaration();
} }