Temporary rename of properties starting with "is" and used from java code (will revert back after changing accessor naming policy)

This commit is contained in:
Valentin Kipyatkov
2015-09-23 18:52:20 +03:00
parent 1941827780
commit 98da621ab3
49 changed files with 87 additions and 98 deletions
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.psi.JetFile
public class CodegenFileClassesProvider(private val packageFacadesAsMultifileClasses: Boolean) : JvmFileClassesProvider { public class CodegenFileClassesProvider(private val packageFacadesAsMultifileClasses: Boolean) : JvmFileClassesProvider {
override public fun getFileClassInfo(file: JetFile): JvmFileClassInfo { override public fun getFileClassInfo(file: JetFile): JvmFileClassInfo {
val fileClassInfo = JvmFileClassUtil.getFileClassInfoNoResolve(file) val fileClassInfo = JvmFileClassUtil.getFileClassInfoNoResolve(file)
if (packageFacadesAsMultifileClasses && !fileClassInfo.isMultifileClass) { if (packageFacadesAsMultifileClasses && !fileClassInfo.TEMP_isMultifileClass) {
return JvmFileClassUtil.getMultifilePackageFacadePartInfo(file) return JvmFileClassUtil.getMultifilePackageFacadePartInfo(file)
} }
else { else {
@@ -71,12 +71,12 @@ public class KotlinCodegenFacade {
JvmFileClassInfo fileClassInfo = state.getFileClassesProvider().getFileClassInfo(file); JvmFileClassInfo fileClassInfo = state.getFileClassesProvider().getFileClassInfo(file);
if (fileClassInfo.getIsMultifileClass()) { if (fileClassInfo.getTEMP_isMultifileClass()) {
filesInMultifileClasses.putValue(fileClassInfo.getFacadeClassFqName(), file); filesInMultifileClasses.putValue(fileClassInfo.getFacadeClassFqName(), file);
} }
if (state.getPackageFacadesAsMultifileClasses()) { if (state.getPackageFacadesAsMultifileClasses()) {
if (!fileClassInfo.getIsMultifileClass()) { if (!fileClassInfo.getTEMP_isMultifileClass()) {
filesInMultifileClasses.putValue(PackageClassUtils.getPackageClassFqName(file.getPackageFqName()), file); filesInMultifileClasses.putValue(PackageClassUtils.getPackageClassFqName(file.getPackageFqName()), file);
} }
} }
@@ -305,7 +305,7 @@ public class PackageCodegen {
private ClassBuilder generateFile(@NotNull JetFile file, @NotNull Map<CallableMemberDescriptor, Runnable> generateCallableMemberTasks) { private ClassBuilder generateFile(@NotNull JetFile file, @NotNull Map<CallableMemberDescriptor, Runnable> generateCallableMemberTasks) {
JvmFileClassInfo fileClassInfo = state.getFileClassesProvider().getFileClassInfo(file); JvmFileClassInfo fileClassInfo = state.getFileClassesProvider().getFileClassInfo(file);
if (fileClassInfo.getIsMultifileClass()) { if (fileClassInfo.getTEMP_isMultifileClass()) {
Type fileFacadeType = AsmUtil.asmTypeByFqNameWithoutInnerClasses(fileClassInfo.getFacadeClassFqName()); Type fileFacadeType = AsmUtil.asmTypeByFqNameWithoutInnerClasses(fileClassInfo.getFacadeClassFqName());
addDelegateToFileClassMemberTasks(file, generateCallableMemberTasks, fileFacadeType); addDelegateToFileClassMemberTasks(file, generateCallableMemberTasks, fileFacadeType);
return null; return null;
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.codegen.inline
import com.google.common.collect.LinkedListMultimap import com.google.common.collect.LinkedListMultimap
import java.util.ArrayList import java.util.ArrayList
import com.intellij.util.containers.Stack import com.intellij.util.containers.Stack
import org.jetbrains.kotlin.codegen.optimization.common.isMeaningful import org.jetbrains.kotlin.codegen.optimization.common.TEMP_isMeaningful
import org.jetbrains.org.objectweb.asm.Opcodes import org.jetbrains.org.objectweb.asm.Opcodes
import org.jetbrains.org.objectweb.asm.tree.* import org.jetbrains.org.objectweb.asm.tree.*
import java.util.Comparator import java.util.Comparator
@@ -157,7 +157,7 @@ class IntervalMetaInfo<T : SplittableInterval<T>> {
private fun Interval.isMeaningless(): Boolean { private fun Interval.isMeaningless(): Boolean {
val start = this.startLabel val start = this.startLabel
var end: AbstractInsnNode = this.endLabel var end: AbstractInsnNode = this.endLabel
while (end != start && !end.isMeaningful) { while (end != start && !end.TEMP_isMeaningful) {
end = end.getPrevious() end = end.getPrevious()
} }
return start == end return start == end
@@ -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.getTEMP_isMeaningful(result)) {
result = result.getNext(); result = result.getNext();
} }
return result; return result;
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.codegen.optimization
import org.jetbrains.org.objectweb.asm.tree.MethodNode import org.jetbrains.org.objectweb.asm.tree.MethodNode
import org.jetbrains.kotlin.codegen.optimization.transformer.MethodTransformer import org.jetbrains.kotlin.codegen.optimization.transformer.MethodTransformer
import org.jetbrains.kotlin.codegen.optimization.common.OptimizationBasicInterpreter import org.jetbrains.kotlin.codegen.optimization.common.OptimizationBasicInterpreter
import org.jetbrains.kotlin.codegen.optimization.common.isMeaningful import org.jetbrains.kotlin.codegen.optimization.common.TEMP_isMeaningful
public class DeadCodeEliminationMethodTransformer : MethodTransformer() { public class DeadCodeEliminationMethodTransformer : MethodTransformer() {
override fun transform(internalClassName: String, methodNode: MethodNode) { override fun transform(internalClassName: String, methodNode: MethodNode) {
@@ -31,7 +31,7 @@ public class DeadCodeEliminationMethodTransformer : MethodTransformer() {
// by try/catch blocks or local variables table // by try/catch blocks or local variables table
// We remove unneeded ones further after all optimizations by calling CommonPackage.prepareForEmitting(methodNode) // We remove unneeded ones further after all optimizations by calling CommonPackage.prepareForEmitting(methodNode)
insnsArray.zip(frames).filter { insnsArray.zip(frames).filter {
it.second == null && it.first.isMeaningful it.second == null && it.first.TEMP_isMeaningful
}.forEach { insnList.remove(it.first) } }.forEach { insnList.remove(it.first) }
} }
} }
@@ -22,7 +22,7 @@ import org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode
import org.jetbrains.org.objectweb.asm.tree.LabelNode import org.jetbrains.org.objectweb.asm.tree.LabelNode
import org.jetbrains.org.objectweb.asm.Opcodes import org.jetbrains.org.objectweb.asm.Opcodes
import org.jetbrains.org.objectweb.asm.tree.JumpInsnNode import org.jetbrains.org.objectweb.asm.tree.JumpInsnNode
import org.jetbrains.kotlin.codegen.optimization.common.isMeaningful import org.jetbrains.kotlin.codegen.optimization.common.TEMP_isMeaningful
public class RedundantGotoMethodTransformer : MethodTransformer() { public class RedundantGotoMethodTransformer : MethodTransformer() {
/** /**
@@ -34,7 +34,7 @@ public class RedundantGotoMethodTransformer : MethodTransformer() {
val currentLabels = hashSetOf<LabelNode>() val currentLabels = hashSetOf<LabelNode>()
for (insn in insns.reverse()) { for (insn in insns.reverse()) {
if (insn.isMeaningful) { if (insn.TEMP_isMeaningful) {
if (insn.getOpcode() == Opcodes.GOTO && (insn as JumpInsnNode).label in currentLabels) { if (insn.getOpcode() == Opcodes.GOTO && (insn as JumpInsnNode).label in currentLabels) {
insnsToRemove.add(insn) insnsToRemove.add(insn)
} }
@@ -17,14 +17,11 @@
package org.jetbrains.kotlin.codegen.optimization.common package org.jetbrains.kotlin.codegen.optimization.common
import org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode import org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode
import org.jetbrains.org.objectweb.asm.Opcodes
import org.jetbrains.org.objectweb.asm.tree.InsnList import org.jetbrains.org.objectweb.asm.tree.InsnList
import org.jetbrains.org.objectweb.asm.tree.LabelNode
import org.jetbrains.org.objectweb.asm.tree.analysis.Frame
import org.jetbrains.org.objectweb.asm.tree.analysis.BasicValue
import org.jetbrains.org.objectweb.asm.tree.MethodNode import org.jetbrains.org.objectweb.asm.tree.MethodNode
import org.jetbrains.org.objectweb.asm.tree.analysis.BasicValue
val AbstractInsnNode.isMeaningful : Boolean get() = val AbstractInsnNode.TEMP_isMeaningful: Boolean get() =
when (this.getType()) { when (this.getType()) {
AbstractInsnNode.LABEL, AbstractInsnNode.LINE, AbstractInsnNode.FRAME -> false AbstractInsnNode.LABEL, AbstractInsnNode.LINE, AbstractInsnNode.FRAME -> false
else -> true else -> true
@@ -49,21 +46,21 @@ public class InsnSequence(val from: AbstractInsnNode, val to: AbstractInsnNode?)
fun MethodNode.prepareForEmitting() { fun MethodNode.prepareForEmitting() {
tryCatchBlocks = tryCatchBlocks.filter { tcb -> tryCatchBlocks = tryCatchBlocks.filter { tcb ->
InsnSequence(tcb.start, tcb.end).any { insn -> InsnSequence(tcb.start, tcb.end).any { insn ->
insn.isMeaningful insn.TEMP_isMeaningful
} }
} }
// local variables with live ranges starting after last meaningful instruction lead to VerifyError // local variables with live ranges starting after last meaningful instruction lead to VerifyError
localVariables = localVariables.filter { lv -> localVariables = localVariables.filter { lv ->
InsnSequence(lv.start, lv.end).any { insn -> InsnSequence(lv.start, lv.end).any { insn ->
insn.isMeaningful insn.TEMP_isMeaningful
} }
} }
// We should remove linenumbers after last meaningful instruction // We should remove linenumbers after last meaningful instruction
// because they point to index of non-existing instruction and it leads to VerifyError // because they point to index of non-existing instruction and it leads to VerifyError
var current = instructions.getLast() var current = instructions.getLast()
while (!current.isMeaningful) { while (!current.TEMP_isMeaningful) {
val prev = current.getPrevious() val prev = current.getPrevious()
if (current.getType() == AbstractInsnNode.LINE) { if (current.getType() == AbstractInsnNode.LINE) {
@@ -363,7 +363,7 @@ public class ReplInterpreter {
private void setReplScriptExecuting(boolean isExecuting) { private void setReplScriptExecuting(boolean isExecuting) {
if (replReader != null) { if (replReader != null) {
replReader.setIsReplScriptExecuting(isExecuting); replReader.setTEMP_isReplScriptExecuting(isExecuting);
} }
} }
@@ -33,11 +33,11 @@ public class ReplSystemInWrapper(
private val isAtBufferEnd: Boolean private val isAtBufferEnd: Boolean
get() = curBytePos == inputByteArray.size() get() = curBytePos == inputByteArray.size()
@Volatile var isReplScriptExecuting = false @Volatile var TEMP_isReplScriptExecuting = false
override fun read(): Int { override fun read(): Int {
if (isLastByteProcessed) { if (isLastByteProcessed) {
if (isReplScriptExecuting) { if (TEMP_isReplScriptExecuting) {
isReadLineStartSent = false isReadLineStartSent = false
replWriter.printlnReadLineEnd() replWriter.printlnReadLineEnd()
} }
@@ -47,7 +47,7 @@ public class ReplSystemInWrapper(
} }
while (isXmlIncomplete) { while (isXmlIncomplete) {
if (!isReadLineStartSent && isReplScriptExecuting) { if (!isReadLineStartSent && TEMP_isReplScriptExecuting) {
replWriter.printlnReadLineStart() replWriter.printlnReadLineStart()
isReadLineStartSent = true isReadLineStartSent = true
} }
@@ -71,7 +71,7 @@ public class ReplSystemInWrapper(
val xmlInput = byteBuilder.toString() val xmlInput = byteBuilder.toString()
val unescapedXml = parseXml(xmlInput) val unescapedXml = parseXml(xmlInput)
val resultLine = if (isReplScriptExecuting) val resultLine = if (TEMP_isReplScriptExecuting)
unescapeLineBreaks(unescapedXml) unescapeLineBreaks(unescapedXml)
else else
unescapedXml unescapedXml
@@ -17,13 +17,12 @@
package org.jetbrains.kotlin.fileClasses package org.jetbrains.kotlin.fileClasses
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.JetFile
public interface JvmFileClassInfo { public interface JvmFileClassInfo {
public val fileClassFqName: FqName public val fileClassFqName: FqName
public val facadeClassFqName: FqName public val facadeClassFqName: FqName
public val isWithJvmName: Boolean public val isWithJvmName: Boolean
public val isMultifileClass: Boolean public val TEMP_isMultifileClass: Boolean
} }
public class JvmSimpleFileClassInfo( public class JvmSimpleFileClassInfo(
@@ -31,7 +30,7 @@ public class JvmSimpleFileClassInfo(
override val isWithJvmName: Boolean override val isWithJvmName: Boolean
) : JvmFileClassInfo { ) : JvmFileClassInfo {
override val facadeClassFqName: FqName get() = fileClassFqName override val facadeClassFqName: FqName get() = fileClassFqName
override val isMultifileClass: Boolean get() = false override val TEMP_isMultifileClass: Boolean get() = false
} }
public class JvmMultifileClassPartInfo( public class JvmMultifileClassPartInfo(
@@ -39,6 +38,6 @@ public class JvmMultifileClassPartInfo(
override val facadeClassFqName: FqName override val facadeClassFqName: FqName
) : JvmFileClassInfo { ) : JvmFileClassInfo {
override val isWithJvmName: Boolean get() = true override val isWithJvmName: Boolean get() = true
override val isMultifileClass: Boolean get() = true override val TEMP_isMultifileClass: Boolean get() = true
} }
@@ -273,7 +273,7 @@ public class OverloadsAnnotationChecker: DeclarationChecker {
if (descriptor is FunctionDescriptor && descriptor.getModality() == Modality.ABSTRACT) { if (descriptor is FunctionDescriptor && descriptor.getModality() == Modality.ABSTRACT) {
diagnosticHolder.report(ErrorsJvm.OVERLOADS_ABSTRACT.on(declaration)) diagnosticHolder.report(ErrorsJvm.OVERLOADS_ABSTRACT.on(declaration))
} }
else if ((!descriptor.getVisibility().isPublicAPI && descriptor.getVisibility() != Visibilities.INTERNAL) || else if ((!descriptor.getVisibility().TEMP_isPublicAPI && descriptor.getVisibility() != Visibilities.INTERNAL) ||
DescriptorUtils.isLocal(descriptor)) { DescriptorUtils.isLocal(descriptor)) {
diagnosticHolder.report(ErrorsJvm.OVERLOADS_PRIVATE.on(declaration)) diagnosticHolder.report(ErrorsJvm.OVERLOADS_PRIVATE.on(declaration))
} }
@@ -34,7 +34,7 @@ fun syntheticExtensionVisibility(originalDescriptor: DeclarationDescriptorWithVi
return when (originalVisibility) { return when (originalVisibility) {
Visibilities.PUBLIC -> Visibilities.PUBLIC Visibilities.PUBLIC -> Visibilities.PUBLIC
else -> object : Visibility(originalVisibility.name, originalVisibility.isPublicAPI) { else -> object : Visibility(originalVisibility.name, originalVisibility.TEMP_isPublicAPI) {
override fun isVisible(receiver: ReceiverValue, what: DeclarationDescriptorWithVisibility, from: DeclarationDescriptor) override fun isVisible(receiver: ReceiverValue, what: DeclarationDescriptorWithVisibility, from: DeclarationDescriptor)
= originalVisibility.isVisible(receiver, originalDescriptor, from) = originalVisibility.isVisible(receiver, originalDescriptor, from)
@@ -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.getTEMP_isError() && instruction.getSubroutine() == subroutine;
} }
@Override @Override
@@ -16,18 +16,14 @@
package org.jetbrains.kotlin.cfg.pseudocode.instructions.special package org.jetbrains.kotlin.cfg.pseudocode.instructions.special
import org.jetbrains.kotlin.cfg.pseudocode.instructions.*
import org.jetbrains.kotlin.psi.JetElement import org.jetbrains.kotlin.psi.JetElement
import java.util.Collections import java.util.*
import org.jetbrains.kotlin.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionImpl
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitorWithResult
public class SubroutineExitInstruction( public class SubroutineExitInstruction(
public val subroutine: JetElement, public val subroutine: JetElement,
lexicalScope: LexicalScope, lexicalScope: LexicalScope,
public val isError: Boolean public val TEMP_isError: Boolean
) : InstructionImpl(lexicalScope) { ) : InstructionImpl(lexicalScope) {
private var _sink: SubroutineSinkInstruction? = null private var _sink: SubroutineSinkInstruction? = null
@@ -48,8 +44,8 @@ public class SubroutineExitInstruction(
return visitor.visitSubroutineExit(this) return visitor.visitSubroutineExit(this)
} }
override fun toString(): String = if (isError) "<ERROR>" else "<END>" override fun toString(): String = if (TEMP_isError) "<ERROR>" else "<END>"
override fun createCopy(): InstructionImpl = override fun createCopy(): InstructionImpl =
SubroutineExitInstruction(subroutine, lexicalScope, isError) SubroutineExitInstruction(subroutine, lexicalScope, TEMP_isError)
} }
@@ -110,7 +110,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().getTEMP_isLocalDeclarations()) {
computeDeferredTypes(); computeDeferredTypes();
} }
} }
@@ -732,7 +732,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().getTEMP_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().getTEMP_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().getTEMP_isLocalDeclarations()) {
flowInformationProvider.checkForLocalClassOrObjectMode(); flowInformationProvider.checkForLocalClassOrObjectMode();
return; return;
} }
@@ -16,7 +16,7 @@
package org.jetbrains.kotlin.resolve package org.jetbrains.kotlin.resolve
public enum class TopDownAnalysisMode(public val isLocalDeclarations: Boolean) { public enum class TopDownAnalysisMode(public val TEMP_isLocalDeclarations: Boolean) {
LocalDeclarations(true), LocalDeclarations(true),
TopLevelDeclarations(false) TopLevelDeclarations(false)
} }
@@ -21,7 +21,6 @@ import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.util.PsiTreeUtil;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
import org.jetbrains.kotlin.descriptors.*; import org.jetbrains.kotlin.descriptors.*;
import org.jetbrains.kotlin.lexer.JetTokens; import org.jetbrains.kotlin.lexer.JetTokens;
import org.jetbrains.kotlin.psi.*; import org.jetbrains.kotlin.psi.*;
@@ -386,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.getTEMP_isPure()) {
return dataFlowAnalyzer.createCompileTimeConstantTypeInfo(value, expression, context); return dataFlowAnalyzer.createCompileTimeConstantTypeInfo(value, expression, context);
} }
@@ -35,7 +35,6 @@ import org.jetbrains.kotlin.resolve.inline.InlineUtil;
import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver; import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver;
import org.jetbrains.kotlin.resolve.scopes.receivers.ExtensionReceiver; import org.jetbrains.kotlin.resolve.scopes.receivers.ExtensionReceiver;
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue; import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue;
import org.jetbrains.kotlin.types.JetType;
import org.jetbrains.kotlin.types.expressions.OperatorConventions; import org.jetbrains.kotlin.types.expressions.OperatorConventions;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
@@ -44,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.getTEMP_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;
@@ -56,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 = getTEMP_isEffectivelyPublicApi(descriptor);
for (ValueParameterDescriptor param : descriptor.getValueParameters()) { for (ValueParameterDescriptor param : descriptor.getValueParameters()) {
if (isInlinableParameter(param)) { if (isInlinableParameter(param)) {
@@ -237,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 = getTEMP_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));
} }
@@ -443,7 +443,7 @@ private class ConstantExpressionEvaluatorVisitor(
private fun canBeUsedInAnnotation(expression: JetExpression) = ConstantExpressionEvaluator.getConstant(expression, trace.getBindingContext())?.canBeUsedInAnnotations ?: false private fun canBeUsedInAnnotation(expression: JetExpression) = ConstantExpressionEvaluator.getConstant(expression, trace.getBindingContext())?.canBeUsedInAnnotations ?: false
private fun isPureConstant(expression: JetExpression) = ConstantExpressionEvaluator.getConstant(expression, trace.getBindingContext())?.isPure ?: false private fun isPureConstant(expression: JetExpression) = ConstantExpressionEvaluator.getConstant(expression, trace.getBindingContext())?.TEMP_isPure ?: false
private fun evaluateUnaryAndCheck(receiver: OperationArgument, name: String, callExpression: JetExpression): Any? { private fun evaluateUnaryAndCheck(receiver: OperationArgument, name: String, callExpression: JetExpression): Any? {
val functions = unaryOperations[UnaryOperationKey(receiver.ctcType, name)] val functions = unaryOperations[UnaryOperationKey(receiver.ctcType, name)]
@@ -220,7 +220,7 @@ public class KotlinJavaFileStubProvider<T extends WithFileStubAndExtraDiagnostic
if (!files.isEmpty()) { if (!files.isEmpty()) {
JetFile representativeFile = files.iterator().next(); JetFile representativeFile = files.iterator().next();
JvmFileClassInfo fileClassInfo = NoResolveFileClassesProvider.INSTANCE$.getFileClassInfo(representativeFile); JvmFileClassInfo fileClassInfo = NoResolveFileClassesProvider.INSTANCE$.getFileClassInfo(representativeFile);
if (!fileClassInfo.getIsMultifileClass()) { if (!fileClassInfo.getTEMP_isMultifileClass()) {
PackageCodegen codegen = state.getFactory().forPackage(representativeFile.getPackageFqName(), files); PackageCodegen codegen = state.getFactory().forPackage(representativeFile.getPackageFqName(), files);
codegen.generate(CompilationErrorHandler.THROW_EXCEPTION); codegen.generate(CompilationErrorHandler.THROW_EXCEPTION);
state.getFactory().asList(); state.getFactory().asList();
@@ -52,7 +52,7 @@ public abstract class AbstractEvaluateExpressionTest : AbstractAnnotationDescrip
fun doIsPureTest(path: String) { fun doIsPureTest(path: String) {
doTest(path) { doTest(path) {
property, context -> property, context ->
evaluateInitializer(context, property)?.isPure.toString() evaluateInitializer(context, property)?.TEMP_isPure.toString()
} }
} }
@@ -21,7 +21,7 @@ import javax.xml.bind.DatatypeConverter.parseBase64Binary
import javax.xml.bind.DatatypeConverter.printBase64Binary import javax.xml.bind.DatatypeConverter.printBase64Binary
public class KotlinJavascriptMetadata(public val abiVersion: Int, public val moduleName: String, public val body: ByteArray) { public class KotlinJavascriptMetadata(public val abiVersion: Int, public val moduleName: String, public val body: ByteArray) {
public val isAbiVersionCompatible: Boolean = KotlinJavascriptMetadataUtils.isAbiVersionCompatible(abiVersion) public val TEMP_isAbiVersionCompatible: Boolean = KotlinJavascriptMetadataUtils.isAbiVersionCompatible(abiVersion)
} }
public object KotlinJavascriptMetadataUtils { public object KotlinJavascriptMetadataUtils {
@@ -70,7 +70,7 @@ fun LazyJavaResolverContext.resolveKotlinBinaryClass(kotlinClass: KotlinJvmBinar
val header = kotlinClass.classHeader val header = kotlinClass.classHeader
return when { return when {
!header.isCompatibleAbiVersion -> { !header.TEMP_isCompatibleAbiVersion -> {
components.errorReporter.reportIncompatibleAbiVersion(kotlinClass.classId, kotlinClass.location, header.version) components.errorReporter.reportIncompatibleAbiVersion(kotlinClass.classId, kotlinClass.location, header.version)
KotlinClassLookupResult.NotFound KotlinClassLookupResult.NotFound
} }
@@ -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.getTEMP_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())) {
@@ -16,10 +16,10 @@
package org.jetbrains.kotlin.load.kotlin.header package org.jetbrains.kotlin.load.kotlin.header
import org.jetbrains.kotlin.serialization.deserialization.BinaryVersion
import org.jetbrains.kotlin.load.java.AbiVersionUtil import org.jetbrains.kotlin.load.java.AbiVersionUtil
import org.jetbrains.kotlin.load.java.JvmAnnotationNames.KotlinClass import org.jetbrains.kotlin.load.java.JvmAnnotationNames.KotlinClass
import org.jetbrains.kotlin.load.java.JvmAnnotationNames.KotlinSyntheticClass import org.jetbrains.kotlin.load.java.JvmAnnotationNames.KotlinSyntheticClass
import org.jetbrains.kotlin.serialization.deserialization.BinaryVersion
public class KotlinClassHeader( public class KotlinClassHeader(
public val kind: KotlinClassHeader.Kind, public val kind: KotlinClassHeader.Kind,
@@ -31,7 +31,7 @@ public class KotlinClassHeader(
public val filePartClassNames: Array<String>?, public val filePartClassNames: Array<String>?,
public val multifileClassName: String? public val multifileClassName: String?
) { ) {
public val isCompatibleAbiVersion: Boolean get() = AbiVersionUtil.isAbiVersionCompatible(version) public val TEMP_isCompatibleAbiVersion: Boolean get() = AbiVersionUtil.isAbiVersionCompatible(version)
public enum class Kind { public enum class Kind {
CLASS, CLASS,
@@ -49,9 +49,9 @@ public class KotlinClassHeader(
"version=$version" "version=$version"
} }
public fun KotlinClassHeader.isCompatibleClassKind(): Boolean = isCompatibleAbiVersion && kind == KotlinClassHeader.Kind.CLASS public fun KotlinClassHeader.isCompatibleClassKind(): Boolean = TEMP_isCompatibleAbiVersion && kind == KotlinClassHeader.Kind.CLASS
public fun KotlinClassHeader.isCompatiblePackageFacadeKind(): Boolean = isCompatibleAbiVersion && kind == KotlinClassHeader.Kind.PACKAGE_FACADE public fun KotlinClassHeader.isCompatiblePackageFacadeKind(): Boolean = TEMP_isCompatibleAbiVersion && kind == KotlinClassHeader.Kind.PACKAGE_FACADE
public fun KotlinClassHeader.isCompatibleFileFacadeKind(): Boolean = isCompatibleAbiVersion && kind == KotlinClassHeader.Kind.FILE_FACADE public fun KotlinClassHeader.isCompatibleFileFacadeKind(): Boolean = TEMP_isCompatibleAbiVersion && kind == KotlinClassHeader.Kind.FILE_FACADE
public fun KotlinClassHeader.isCompatibleMultifileClassKind(): Boolean = isCompatibleAbiVersion && kind == KotlinClassHeader.Kind.MULTIFILE_CLASS public fun KotlinClassHeader.isCompatibleMultifileClassKind(): Boolean = TEMP_isCompatibleAbiVersion && kind == KotlinClassHeader.Kind.MULTIFILE_CLASS
public fun KotlinClassHeader.isCompatibleMultifileClassPartKind(): Boolean = isCompatibleAbiVersion && kind == KotlinClassHeader.Kind.MULTIFILE_CLASS_PART public fun KotlinClassHeader.isCompatibleMultifileClassPartKind(): Boolean = TEMP_isCompatibleAbiVersion && kind == KotlinClassHeader.Kind.MULTIFILE_CLASS_PART
public fun KotlinClassHeader.isCompatibleSyntheticClassKind(): Boolean = isCompatibleAbiVersion && kind == KotlinClassHeader.Kind.SYNTHETIC_CLASS public fun KotlinClassHeader.isCompatibleSyntheticClassKind(): Boolean = TEMP_isCompatibleAbiVersion && kind == KotlinClassHeader.Kind.SYNTHETIC_CLASS
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
public abstract class Visibility protected constructor( public abstract class Visibility protected constructor(
public val name: String, public val name: String,
public val isPublicAPI: Boolean public val TEMP_isPublicAPI: Boolean
) { ) {
public abstract fun isVisible(receiver: ReceiverValue, what: DeclarationDescriptorWithVisibility, from: DeclarationDescriptor): Boolean public abstract fun isVisible(receiver: ReceiverValue, what: DeclarationDescriptorWithVisibility, from: DeclarationDescriptor): Boolean
@@ -90,12 +90,12 @@ public val ClassDescriptor.classObjectType: JetType?
return correspondingDescriptor?.getDefaultType() return correspondingDescriptor?.getDefaultType()
} }
public val DeclarationDescriptorWithVisibility.isEffectivelyPublicApi: Boolean public val DeclarationDescriptorWithVisibility.TEMP_isEffectivelyPublicApi: Boolean
get() { get() {
var parent: DeclarationDescriptorWithVisibility? = this var parent: DeclarationDescriptorWithVisibility? = this
while (parent != null) { while (parent != null) {
if (!parent.getVisibility().isPublicAPI) return false if (!parent.getVisibility().TEMP_isPublicAPI) return false
parent = DescriptorUtils.getParentOfType(parent, javaClass<DeclarationDescriptorWithVisibility>()) parent = DescriptorUtils.getParentOfType(parent, javaClass<DeclarationDescriptorWithVisibility>())
} }
@@ -36,7 +36,7 @@ public interface CompileTimeConstant<out T> {
public val usesNonConstValAsConstant: Boolean get() = parameters.usesNonConstValAsConstant public val usesNonConstValAsConstant: Boolean get() = parameters.usesNonConstValAsConstant
public val isPure: Boolean get() = parameters.isPure public val TEMP_isPure: Boolean get() = parameters.isPure
public class Parameters( public class Parameters(
public val canBeUsedInAnnotation: Boolean, public val canBeUsedInAnnotation: Boolean,
@@ -61,7 +61,7 @@ public object JsAnalyzerFacade : AnalyzerFacade<PlatformAnalysisParameters>() {
if (moduleInfo is LibraryInfo && KotlinJavaScriptLibraryDetectionUtil.isKotlinJavaScriptLibrary(moduleInfo.library)) { if (moduleInfo is LibraryInfo && KotlinJavaScriptLibraryDetectionUtil.isKotlinJavaScriptLibrary(moduleInfo.library)) {
val providers = moduleInfo.library.getFiles(OrderRootType.CLASSES) val providers = moduleInfo.library.getFiles(OrderRootType.CLASSES)
.flatMap { KotlinJavascriptMetadataUtils.loadMetadata(PathUtil.getLocalPath(it)!!) } .flatMap { KotlinJavascriptMetadataUtils.loadMetadata(PathUtil.getLocalPath(it)!!) }
.filter { it.isAbiVersionCompatible } .filter { it.TEMP_isAbiVersionCompatible }
.map { KotlinJavascriptSerializationUtil.createPackageFragmentProvider(moduleDescriptor, it.body, moduleContext.storageManager) } .map { KotlinJavascriptSerializationUtil.createPackageFragmentProvider(moduleDescriptor, it.body, moduleContext.storageManager) }
.filterNotNull() .filterNotNull()
@@ -56,7 +56,7 @@ public fun isKotlinWithCompatibleAbiVersion(file: VirtualFile): Boolean {
if (!isKotlinJvmCompiledFile(file)) return false if (!isKotlinJvmCompiledFile(file)) return false
val header = KotlinBinaryClassCache.getKotlinBinaryClass(file)?.getClassHeader() val header = KotlinBinaryClassCache.getKotlinBinaryClass(file)?.getClassHeader()
return header != null && header.isCompatibleAbiVersion return header != null && header.TEMP_isCompatibleAbiVersion
} }
/** /**
@@ -55,7 +55,7 @@ public open class KotlinClsStubBuilder : ClsStubBuilder() {
val header = kotlinBinaryClass.getClassHeader() val header = kotlinBinaryClass.getClassHeader()
val classId = kotlinBinaryClass.getClassId() val classId = kotlinBinaryClass.getClassId()
val packageFqName = classId.getPackageFqName() val packageFqName = classId.getPackageFqName()
if (!header.isCompatibleAbiVersion) { if (!header.TEMP_isCompatibleAbiVersion) {
return createIncompatibleAbiVersionFileStub() return createIncompatibleAbiVersionFileStub()
} }
@@ -60,7 +60,7 @@ public fun buildDecompiledText(
val packageFqName = classId.getPackageFqName() val packageFqName = classId.getPackageFqName()
return when { return when {
!classHeader.isCompatibleAbiVersion -> { !classHeader.TEMP_isCompatibleAbiVersion -> {
DecompiledText( DecompiledText(
INCOMPATIBLE_ABI_VERSION_COMMENT INCOMPATIBLE_ABI_VERSION_COMMENT
.replace(CURRENT_ABI_VERSION_MARKER, JvmAbi.VERSION.toString()) .replace(CURRENT_ABI_VERSION_MARKER, JvmAbi.VERSION.toString())
@@ -78,7 +78,7 @@ public fun buildDecompiledText(
buildDecompiledText(packageFqName, partMembers) buildDecompiledText(packageFqName, partMembers)
} }
else -> else ->
throw UnsupportedOperationException("Unknown header kind: ${classHeader.kind} ${classHeader.isCompatibleAbiVersion}") throw UnsupportedOperationException("Unknown header kind: ${classHeader.kind} ${classHeader.TEMP_isCompatibleAbiVersion}")
} }
} }
@@ -80,7 +80,7 @@ public object KotlinClassFileIndex : KotlinFileIndexBase<KotlinClassFileIndex>(K
private val INDEXER = indexer() { file -> private val INDEXER = indexer() { file ->
val kotlinClass = KotlinBinaryClassCache.getKotlinBinaryClass(file) val kotlinClass = KotlinBinaryClassCache.getKotlinBinaryClass(file)
if (kotlinClass != null && kotlinClass.classHeader.isCompatibleAbiVersion) kotlinClass.classId.asSingleFqName() else null if (kotlinClass != null && kotlinClass.classHeader.TEMP_isCompatibleAbiVersion) kotlinClass.classId.asSingleFqName() else null
} }
} }
@@ -130,7 +130,7 @@ public class KotlinJavaScriptLibraryManager private constructor(private var myPr
assert(path != null) { "expected not-null path for ${clsRootFile.name}" } assert(path != null) { "expected not-null path for ${clsRootFile.name}" }
val metadataList = KotlinJavascriptMetadataUtils.loadMetadata(path!!) val metadataList = KotlinJavascriptMetadataUtils.loadMetadata(path!!)
if (metadataList.filter { !it.isAbiVersionCompatible }.isNotEmpty()) continue if (metadataList.filter { !it.TEMP_isAbiVersionCompatible }.isNotEmpty()) continue
VfsUtil.findFileByIoFile(File(path), true)?.let { rootFiles.add(it) } VfsUtil.findFileByIoFile(File(path), true)?.let { rootFiles.add(it) }
val classRoot = KotlinJavaScriptMetaFileSystem.getInstance().refreshAndFindFileByPath("$path!/") val classRoot = KotlinJavaScriptMetaFileSystem.getInstance().refreshAndFindFileByPath("$path!/")
@@ -189,7 +189,7 @@ public open class JetChangeInfo(
public fun getNewSignature(inheritedCallable: JetCallableDefinitionUsage<PsiElement>): String { public fun getNewSignature(inheritedCallable: JetCallableDefinitionUsage<PsiElement>): String {
val buffer = StringBuilder() val buffer = StringBuilder()
val defaultVisibility = if (kind.isConstructor) Visibilities.PUBLIC else Visibilities.DEFAULT_VISIBILITY val defaultVisibility = if (kind.TEMP_isConstructor) Visibilities.PUBLIC else Visibilities.DEFAULT_VISIBILITY
if (kind == Kind.PRIMARY_CONSTRUCTOR) { if (kind == Kind.PRIMARY_CONSTRUCTOR) {
buffer.append(name) buffer.append(name)
@@ -40,7 +40,7 @@ public class JetChangeSignatureProcessor(project: Project,
changeInfo: JetChangeInfo, changeInfo: JetChangeInfo,
private val commandName: String) : ChangeSignatureProcessorBase(project, changeInfo) { private val commandName: String) : ChangeSignatureProcessorBase(project, changeInfo) {
override fun createUsageViewDescriptor(usages: Array<UsageInfo>): UsageViewDescriptor { override fun createUsageViewDescriptor(usages: Array<UsageInfo>): UsageViewDescriptor {
val subject = if (getChangeInfo().kind.isConstructor) "constructor" else "function" val subject = if (getChangeInfo().kind.TEMP_isConstructor) "constructor" else "function"
return JetUsagesViewDescriptor(myChangeInfo.getMethod(), RefactoringBundle.message("0.to.change.signature", subject)) return JetUsagesViewDescriptor(myChangeInfo.getMethod(), RefactoringBundle.message("0.to.change.signature", subject))
} }
@@ -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.getTEMP_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.getTEMP_isNewParameter())) continue;
String name = parameterInfo.getName(); String name = parameterInfo.getName();
JetParameter parameter = existingParameters.get(name); JetParameter parameter = existingParameters.get(name);
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.idea.refactoring.changeSignature.usages.JetCallableD
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
public interface JetMethodDescriptor : MethodDescriptor<JetParameterInfo, Visibility> { public interface JetMethodDescriptor : MethodDescriptor<JetParameterInfo, Visibility> {
enum class Kind(val isConstructor: Boolean) { enum class Kind(val TEMP_isConstructor: Boolean) {
FUNCTION(false), FUNCTION(false),
PRIMARY_CONSTRUCTOR(true), PRIMARY_CONSTRUCTOR(true),
SECONDARY_CONSTRUCTOR(true) SECONDARY_CONSTRUCTOR(true)
@@ -35,7 +35,7 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver
import org.jetbrains.kotlin.types.JetType import org.jetbrains.kotlin.types.JetType
import java.util.LinkedHashMap import java.util.*
public class JetParameterInfo( public class JetParameterInfo(
val callableDescriptor: CallableDescriptor, val callableDescriptor: CallableDescriptor,
@@ -130,7 +130,7 @@ public class JetParameterInfo(
override fun getOldIndex(): Int = originalIndex override fun getOldIndex(): Int = originalIndex
public val isNewParameter: Boolean public val TEMP_isNewParameter: Boolean
get() = originalIndex == -1 get() = originalIndex == -1
override fun getDefaultValue(): String? = null override fun getDefaultValue(): String? = null
@@ -143,7 +143,7 @@ public class JetParameterInfo(
override fun getTypeText(): String = currentTypeText override fun getTypeText(): String = currentTypeText
public val isTypeChanged: Boolean get() = getOldTypeText() != currentTypeText public val TEMP_isTypeChanged: Boolean get() = getOldTypeText() != currentTypeText
override fun isUseAnySingleVariable(): Boolean = false override fun isUseAnySingleVariable(): Boolean = false
@@ -156,7 +156,7 @@ public class JetChangeSignatureDialog(
// Forbid receiver propagation // Forbid receiver propagation
override fun mayPropagateParameters() = override fun mayPropagateParameters() =
getParameters().any { it.isNewParameter && it != parametersTableModel.getReceiver() } getParameters().any { it.TEMP_isNewParameter && it != parametersTableModel.getReceiver() }
override fun getTableEditor(table: JTable, item: ParameterTableModelItemBase<JetParameterInfo>): JBTableRowEditor? { override fun getTableEditor(table: JTable, item: ParameterTableModelItemBase<JetParameterInfo>): JBTableRowEditor? {
return object : JBTableRowEditor() { return object : JBTableRowEditor() {
@@ -168,7 +168,7 @@ public class JetChangeSignatureDialog(
} }
private fun isDefaultColumnEnabled() = private fun isDefaultColumnEnabled() =
item.parameter.isNewParameter && item.parameter != myMethod.receiver item.parameter.TEMP_isNewParameter && item.parameter != myMethod.receiver
override fun prepareEditor(table: JTable, row: Int) { override fun prepareEditor(table: JTable, row: Int) {
setLayout(BoxLayout(this, BoxLayout.X_AXIS)) setLayout(BoxLayout(this, BoxLayout.X_AXIS))
@@ -371,7 +371,7 @@ public class JetChangeSignatureDialog(
public fun getMethodDescriptor(): JetMethodDescriptor = myMethod public fun getMethodDescriptor(): JetMethodDescriptor = myMethod
override fun getSelectedIdx(): Int { override fun getSelectedIdx(): Int {
return myMethod.getParameters().withIndex().firstOrNull { it.value.isNewParameter }?.index return myMethod.getParameters().withIndex().firstOrNull { it.value.TEMP_isNewParameter }?.index
?: super.getSelectedIdx() ?: super.getSelectedIdx()
} }
@@ -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.getTEMP_isNewParameter();
} }
@Override @Override
@@ -35,7 +35,6 @@ import org.jetbrains.kotlin.idea.caches.resolve.ResolutionUtils;
import org.jetbrains.kotlin.idea.codeInsight.shorten.ShortenPackage; import org.jetbrains.kotlin.idea.codeInsight.shorten.ShortenPackage;
import org.jetbrains.kotlin.idea.core.DescriptorUtilsKt; import org.jetbrains.kotlin.idea.core.DescriptorUtilsKt;
import org.jetbrains.kotlin.idea.core.PsiModificationUtilsKt; import org.jetbrains.kotlin.idea.core.PsiModificationUtilsKt;
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringUtil;
import org.jetbrains.kotlin.idea.refactoring.changeSignature.ChangeSignaturePackage; import org.jetbrains.kotlin.idea.refactoring.changeSignature.ChangeSignaturePackage;
import org.jetbrains.kotlin.idea.refactoring.changeSignature.JetChangeInfo; import org.jetbrains.kotlin.idea.refactoring.changeSignature.JetChangeInfo;
import org.jetbrains.kotlin.idea.refactoring.changeSignature.JetParameterInfo; import org.jetbrains.kotlin.idea.refactoring.changeSignature.JetParameterInfo;
@@ -377,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.getTEMP_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));
} }
@@ -38,7 +38,7 @@ public class KotlinCallerUsage(element: JetNamedDeclaration): JetUsageInfo<JetNa
val psiFactory = JetPsiFactory(getProject()) val psiFactory = JetPsiFactory(getProject())
changeInfo.getNonReceiverParameters() changeInfo.getNonReceiverParameters()
.withIndex() .withIndex()
.filter { it.value.isNewParameter } .filter { it.value.TEMP_isNewParameter }
.forEach { .forEach {
val parameterText = it.value.getDeclarationSignature(it.index, changeInfo.methodDescriptor.originalPrimaryCallable) val parameterText = it.value.getDeclarationSignature(it.index, changeInfo.methodDescriptor.originalPrimaryCallable)
parameterList parameterList
@@ -56,7 +56,7 @@ public class KotlinCallerCallUsage(element: JetCallElement): JetUsageInfo<JetCal
val psiFactory = JetPsiFactory(getProject()) val psiFactory = JetPsiFactory(getProject())
val isNamedCall = argumentList.getArguments().any { it.getArgumentName() != null } val isNamedCall = argumentList.getArguments().any { it.getArgumentName() != null }
changeInfo.getNonReceiverParameters() changeInfo.getNonReceiverParameters()
.filter { it.isNewParameter } .filter { it.TEMP_isNewParameter }
.forEach { .forEach {
val parameterName = it.getName() val parameterName = it.getName()
val argumentExpression = if (element.isInsideOfCallerBody(allUsages)) { val argumentExpression = if (element.isInsideOfCallerBody(allUsages)) {
@@ -148,7 +148,7 @@ public abstract class Config {
} }
private ModuleDescriptorImpl createModuleDescriptor(KotlinJavascriptMetadata metadata) { private ModuleDescriptorImpl createModuleDescriptor(KotlinJavascriptMetadata metadata) {
assert metadata.getIsAbiVersionCompatible() : assert metadata.getTEMP_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(
@@ -168,7 +168,7 @@ public class LibrarySourcesConfig extends Config {
} }
for (KotlinJavascriptMetadata metadata : metadataList) { for (KotlinJavascriptMetadata metadata : metadataList) {
if (!metadata.getIsAbiVersionCompatible()) { if (!metadata.getTEMP_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;
} }
@@ -42,7 +42,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.getTEMP_isEffectivelyPublicApi;
public final class FunctionTranslator extends AbstractTranslator { public final class FunctionTranslator extends AbstractTranslator {
@NotNull @NotNull
@@ -100,7 +100,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) && getTEMP_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().getTEMP_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().getTEMP_isPublicAPI()) {
return false; return false;
} }