Rename jet -> kotlin in frontend: cfg

org.jetbrains.jet.lang.cfg, org.jetbrains.jet.cfg -> org.jetbrains.kotlin.cfg
This commit is contained in:
Alexander Udalov
2015-01-09 18:52:15 +03:00
parent 2c414d880c
commit 378d04e301
66 changed files with 361 additions and 366 deletions
@@ -26,7 +26,7 @@ import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
import org.jetbrains.jet.lang.psi.JetExpression;
import org.jetbrains.jet.lang.psi.JetSimpleNameExpression;
import org.jetbrains.jet.lang.psi.ValueArgument;
import org.jetbrains.jet.lang.cfg.TailRecursionKind;
import org.jetbrains.kotlin.cfg.TailRecursionKind;
import org.jetbrains.jet.lang.resolve.calls.model.*;
import org.jetbrains.org.objectweb.asm.Type;
import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter;
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.codegen.SamType;
import org.jetbrains.kotlin.codegen.state.GenerationState;
import org.jetbrains.kotlin.codegen.when.SwitchCodegenUtil;
import org.jetbrains.kotlin.codegen.when.WhenByEnumsMapping;
import org.jetbrains.jet.lang.cfg.WhenChecker;
import org.jetbrains.kotlin.cfg.WhenChecker;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.impl.ClassDescriptorImpl;
import org.jetbrains.jet.lang.psi.*;
@@ -26,7 +26,7 @@ import org.jetbrains.annotations.TestOnly;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.cfg.TailRecursionKind;
import org.jetbrains.kotlin.cfg.TailRecursionKind;
import org.jetbrains.jet.lang.resolve.calls.inference.ConstraintSystemCompleter;
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
import org.jetbrains.jet.lang.resolve.calls.smartcasts.DataFlowInfo;
@@ -18,7 +18,7 @@ package org.jetbrains.jet.lang.resolve;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.cfg.JetFlowInformationProvider;
import org.jetbrains.kotlin.cfg.JetFlowInformationProvider;
import org.jetbrains.jet.lang.descriptors.PropertyAccessorDescriptor;
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor;
@@ -14,6 +14,6 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg;
package org.jetbrains.kotlin.cfg;
public abstract class BlockInfo {}
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg;
package org.jetbrains.kotlin.cfg;
import com.google.common.collect.Sets;
import org.jetbrains.jet.lang.psi.JetElement;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg;
package org.jetbrains.kotlin.cfg;
public interface GenerationTrigger {
void generate();
@@ -14,14 +14,14 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg;
package org.jetbrains.kotlin.cfg;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.cfg.pseudocode.PseudoValue;
import org.jetbrains.jet.lang.cfg.pseudocode.Pseudocode;
import org.jetbrains.jet.lang.cfg.pseudocode.TypePredicate;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.*;
import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue;
import org.jetbrains.kotlin.cfg.pseudocode.Pseudocode;
import org.jetbrains.kotlin.cfg.pseudocode.TypePredicate;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.*;
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
@@ -14,14 +14,14 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg;
package org.jetbrains.kotlin.cfg;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.cfg.pseudocode.PseudoValue;
import org.jetbrains.jet.lang.cfg.pseudocode.Pseudocode;
import org.jetbrains.jet.lang.cfg.pseudocode.TypePredicate;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.*;
import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue;
import org.jetbrains.kotlin.cfg.pseudocode.Pseudocode;
import org.jetbrains.kotlin.cfg.pseudocode.TypePredicate;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.*;
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg;
package org.jetbrains.kotlin.cfg;
import com.google.common.collect.Lists;
import com.intellij.psi.PsiElement;
@@ -27,10 +27,10 @@ import kotlin.Function1;
import kotlin.KotlinPackage;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.cfg.pseudocode.*;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.AccessTarget;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.InstructionWithValue;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.MagicKind;
import org.jetbrains.kotlin.cfg.pseudocode.*;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.AccessTarget;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.InstructionWithValue;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.MagicKind;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.impl.AnonymousFunctionDescriptor;
import org.jetbrains.jet.lang.psi.*;
@@ -54,7 +54,7 @@ import org.jetbrains.jet.lexer.JetTokens;
import java.util.*;
import static org.jetbrains.jet.lang.cfg.JetControlFlowBuilder.PredefinedOperation.*;
import static org.jetbrains.kotlin.cfg.JetControlFlowBuilder.PredefinedOperation.*;
import static org.jetbrains.jet.lang.diagnostics.Errors.*;
import static org.jetbrains.jet.lang.resolve.calls.callUtil.CallUtilPackage.getResolvedCall;
import static org.jetbrains.jet.lexer.JetTokens.*;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg;
package org.jetbrains.kotlin.cfg;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
@@ -27,24 +27,24 @@ import kotlin.Function3;
import kotlin.Unit;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.cfg.PseudocodeVariablesData.VariableInitState;
import org.jetbrains.jet.lang.cfg.PseudocodeVariablesData.VariableUseState;
import org.jetbrains.jet.lang.cfg.pseudocode.PseudoValue;
import org.jetbrains.jet.lang.cfg.pseudocode.Pseudocode;
import org.jetbrains.jet.lang.cfg.pseudocode.PseudocodePackage;
import org.jetbrains.jet.lang.cfg.pseudocode.PseudocodeUtil;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitor;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.JetElementInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.*;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps.*;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.LocalFunctionDeclarationInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.MarkInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.SubroutineExitInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.VariableDeclarationInstruction;
import org.jetbrains.jet.lang.cfg.pseudocodeTraverser.Edges;
import org.jetbrains.jet.lang.cfg.pseudocodeTraverser.PseudocodeTraverserPackage;
import org.jetbrains.jet.lang.cfg.pseudocodeTraverser.TraversalOrder;
import org.jetbrains.kotlin.cfg.PseudocodeVariablesData.VariableInitState;
import org.jetbrains.kotlin.cfg.PseudocodeVariablesData.VariableUseState;
import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue;
import org.jetbrains.kotlin.cfg.pseudocode.Pseudocode;
import org.jetbrains.kotlin.cfg.pseudocode.PseudocodePackage;
import org.jetbrains.kotlin.cfg.pseudocode.PseudocodeUtil;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitor;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.JetElementInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.*;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps.*;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.LocalFunctionDeclarationInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.MarkInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.SubroutineExitInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.VariableDeclarationInstruction;
import org.jetbrains.kotlin.cfg.pseudocodeTraverser.Edges;
import org.jetbrains.kotlin.cfg.pseudocodeTraverser.PseudocodeTraverserPackage;
import org.jetbrains.kotlin.cfg.pseudocodeTraverser.TraversalOrder;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.diagnostics.Diagnostic;
import org.jetbrains.jet.lang.diagnostics.DiagnosticFactory;
@@ -65,12 +65,12 @@ import org.jetbrains.jet.plugin.MainFunctionDetector;
import java.util.*;
import static org.jetbrains.jet.lang.cfg.PseudocodeVariablesData.VariableUseState.*;
import static org.jetbrains.jet.lang.cfg.pseudocodeTraverser.TraversalOrder.FORWARD;
import static org.jetbrains.kotlin.cfg.PseudocodeVariablesData.VariableUseState.*;
import static org.jetbrains.kotlin.cfg.pseudocodeTraverser.TraversalOrder.FORWARD;
import static org.jetbrains.jet.lang.diagnostics.Errors.*;
import static org.jetbrains.jet.lang.resolve.BindingContext.CAPTURED_IN_CLOSURE;
import static org.jetbrains.jet.lang.resolve.BindingContext.TAIL_RECURSION_CALL;
import static org.jetbrains.jet.lang.cfg.TailRecursionKind.*;
import static org.jetbrains.kotlin.cfg.TailRecursionKind.*;
import static org.jetbrains.jet.lang.resolve.calls.callUtil.CallUtilPackage.getResolvedCall;
import static org.jetbrains.jet.lang.types.TypeUtils.NO_EXPECTED_TYPE;
import static org.jetbrains.jet.lang.types.TypeUtils.noExpectedType;
@@ -147,14 +147,14 @@ public class JetFlowInformationProvider {
for (Instruction previousInstruction : exitInstruction.getPreviousInstructions()) {
previousInstruction.accept(new InstructionVisitor() {
@Override
public void visitReturnValue(ReturnValueInstruction instruction) {
public void visitReturnValue(@NotNull ReturnValueInstruction instruction) {
if (instructions.contains(instruction)) { //exclude non-local return expressions
returnedExpressions.add(instruction.getElement());
}
}
@Override
public void visitReturnNoValue(ReturnNoValueInstruction instruction) {
public void visitReturnNoValue(@NotNull ReturnNoValueInstruction instruction) {
if (instructions.contains(instruction)) {
returnedExpressions.add(instruction.getElement());
}
@@ -162,12 +162,12 @@ public class JetFlowInformationProvider {
@Override
public void visitJump(AbstractJumpInstruction instruction) {
public void visitJump(@NotNull AbstractJumpInstruction instruction) {
// Nothing
}
@Override
public void visitUnconditionalJump(UnconditionalJumpInstruction instruction) {
public void visitUnconditionalJump(@NotNull UnconditionalJumpInstruction instruction) {
redirectToPrevInstructions(instruction);
}
@@ -178,17 +178,17 @@ public class JetFlowInformationProvider {
}
@Override
public void visitNondeterministicJump(NondeterministicJumpInstruction instruction) {
public void visitNondeterministicJump(@NotNull NondeterministicJumpInstruction instruction) {
redirectToPrevInstructions(instruction);
}
@Override
public void visitMarkInstruction(MarkInstruction instruction) {
public void visitMarkInstruction(@NotNull MarkInstruction instruction) {
redirectToPrevInstructions(instruction);
}
@Override
public void visitInstruction(Instruction instruction) {
public void visitInstruction(@NotNull Instruction instruction) {
if (instruction instanceof JetElementInstruction) {
JetElementInstruction elementInstruction = (JetElementInstruction) instruction;
returnedExpressions.add(elementInstruction.getElement());
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg;
package org.jetbrains.kotlin.cfg;
import org.jetbrains.annotations.NotNull;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg;
package org.jetbrains.kotlin.cfg;
import org.jetbrains.jet.lang.psi.JetLoopExpression;
@@ -14,15 +14,15 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocodeTraverser
package org.jetbrains.kotlin.cfg.pseudocodeTraverser
import org.jetbrains.jet.lang.cfg.pseudocode.*
import org.jetbrains.kotlin.cfg.pseudocode.*
import java.util.*
import org.jetbrains.jet.lang.cfg.pseudocodeTraverser.TraversalOrder.FORWARD
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.SubroutineSinkInstruction
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.LocalFunctionDeclarationInstruction
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.SubroutineEnterInstruction
import org.jetbrains.kotlin.cfg.pseudocodeTraverser.TraversalOrder.FORWARD
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.SubroutineSinkInstruction
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.LocalFunctionDeclarationInstruction
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.SubroutineEnterInstruction
public fun Pseudocode.traverse(
traversalOrder: TraversalOrder,
@@ -14,16 +14,15 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg
package org.jetbrains.kotlin.cfg
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction
import org.jetbrains.jet.lang.cfg.pseudocode.Pseudocode
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction
import org.jetbrains.kotlin.cfg.pseudocode.Pseudocode
import org.jetbrains.jet.lang.descriptors.VariableDescriptor
import org.jetbrains.jet.lang.resolve.BindingContext
import org.jetbrains.jet.lang.cfg.pseudocodeTraverser.*
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.VariableDeclarationInstruction
import org.jetbrains.kotlin.utils.addToStdlib.*
import org.jetbrains.kotlin.cfg.pseudocodeTraverser.*
import org.jetbrains.kotlin.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.VariableDeclarationInstruction
import java.util.*
@@ -61,7 +60,7 @@ public class PseudocodeVariableDataCollector(
// Variables declared in an inner (deeper) scope can't be accessed from an outer scope.
// Thus they can be filtered out upon leaving the inner scope.
return data.filterKeys_tmp { variable ->
return data.filterKeys { variable ->
val lexicalScope = lexicalScopeVariableInfo.declaredIn[variable]
// '-1' for variables declared outside this pseudocode
val depth = lexicalScope?.depth ?: -1
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg;
package org.jetbrains.kotlin.cfg;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
@@ -22,16 +22,16 @@ import kotlin.Function1;
import kotlin.Unit;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.cfg.pseudocode.Pseudocode;
import org.jetbrains.jet.lang.cfg.pseudocode.PseudocodeUtil;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.ReadValueInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.WriteValueInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.LocalFunctionDeclarationInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.VariableDeclarationInstruction;
import org.jetbrains.jet.lang.cfg.pseudocodeTraverser.Edges;
import org.jetbrains.jet.lang.cfg.pseudocodeTraverser.PseudocodeTraverserPackage;
import org.jetbrains.kotlin.cfg.pseudocode.Pseudocode;
import org.jetbrains.kotlin.cfg.pseudocode.PseudocodeUtil;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.LexicalScope;
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.LocalFunctionDeclarationInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.VariableDeclarationInstruction;
import org.jetbrains.kotlin.cfg.pseudocodeTraverser.Edges;
import org.jetbrains.kotlin.cfg.pseudocodeTraverser.PseudocodeTraverserPackage;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.descriptors.VariableDescriptor;
import org.jetbrains.jet.lang.psi.JetDeclaration;
@@ -43,8 +43,8 @@ import java.util.Collections;
import java.util.Map;
import java.util.Set;
import static org.jetbrains.jet.lang.cfg.pseudocodeTraverser.TraversalOrder.BACKWARD;
import static org.jetbrains.jet.lang.cfg.pseudocodeTraverser.TraversalOrder.FORWARD;
import static org.jetbrains.kotlin.cfg.pseudocodeTraverser.TraversalOrder.BACKWARD;
import static org.jetbrains.kotlin.cfg.pseudocodeTraverser.TraversalOrder.FORWARD;
public class PseudocodeVariablesData {
private final Pseudocode pseudocode;
@@ -14,19 +14,19 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg;
package org.jetbrains.kotlin.cfg;
import kotlin.Function1;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitorWithResult;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.MagicInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.MergeInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps.AbstractJumpInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps.ThrowExceptionInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.MarkInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.SubroutineExitInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.SubroutineSinkInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitorWithResult;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.MagicInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.MergeInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps.AbstractJumpInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps.ThrowExceptionInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.MarkInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.SubroutineExitInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.SubroutineSinkInstruction;
import org.jetbrains.jet.lang.psi.JetElement;
public class TailRecursionDetector extends InstructionVisitorWithResult<Boolean> implements Function1<Instruction, Boolean> {
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg;
package org.jetbrains.kotlin.cfg;
public enum TailRecursionKind {
TAIL_CALL(true),
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg
package org.jetbrains.kotlin.cfg
import org.jetbrains.jet.lang.psi.JetElement
import com.intellij.openapi.util.TextRange
@@ -86,7 +86,7 @@ class UnreachableCodeImpl(
collectSiblingsIfMeaningless(index, direction)
}
}
for ((index, element) in this.withIndices()) {
for ((index, element) in this.withIndex()) {
if (reachableElements.contains(element)) {
childrenToRemove.add(element)
collectSiblingsIfMeaningless(index, -1)
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg;
package org.jetbrains.kotlin.cfg;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -14,17 +14,17 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode;
package org.jetbrains.kotlin.cfg.pseudocode;
import com.intellij.util.containers.Stack;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.cfg.*;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.*;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps.*;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.*;
import org.jetbrains.kotlin.cfg.*;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.LexicalScope;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.*;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps.*;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.*;
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
@@ -14,10 +14,10 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode
package org.jetbrains.kotlin.cfg.pseudocode
import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.InstructionWithValue
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.InstructionWithValue
public trait PseudoValue {
public val debugName: String
@@ -27,4 +27,4 @@ public trait PseudoValue {
public trait PseudoValueFactory {
public fun newValue(element: JetElement?, instruction: InstructionWithValue?): PseudoValue
}
}
@@ -14,10 +14,10 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode
package org.jetbrains.kotlin.cfg.pseudocode
import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.InstructionWithValue
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.InstructionWithValue
class PseudoValueImpl(
override val debugName: String,
@@ -33,4 +33,4 @@ open class PseudoValueFactoryImpl: PseudoValueFactory {
override fun newValue(element: JetElement?, instruction: InstructionWithValue?): PseudoValue {
return PseudoValueImpl((instruction?.let { "" } ?: "!") + "<v${lastIndex++}>", element, instruction)
}
}
}
@@ -14,15 +14,15 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode;
package org.jetbrains.kotlin.cfg.pseudocode;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.LocalFunctionDeclarationInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.SubroutineEnterInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.SubroutineExitInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.SubroutineSinkInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.LocalFunctionDeclarationInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.SubroutineEnterInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.SubroutineExitInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.SubroutineSinkInstruction;
import org.jetbrains.jet.lang.psi.JetElement;
import java.util.List;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode;
package org.jetbrains.kotlin.cfg.pseudocode;
import com.google.common.collect.*;
import com.intellij.util.containers.BidirectionalMap;
@@ -22,23 +22,23 @@ import kotlin.Function0;
import kotlin.KotlinPackage;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.cfg.Label;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.*;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.MergeInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps.AbstractJumpInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps.ConditionalJumpInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps.NondeterministicJumpInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.LocalFunctionDeclarationInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.SubroutineEnterInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.SubroutineExitInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.SubroutineSinkInstruction;
import org.jetbrains.jet.lang.cfg.pseudocodeTraverser.PseudocodeTraverserPackage;
import org.jetbrains.kotlin.cfg.Label;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.*;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.MergeInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps.AbstractJumpInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps.ConditionalJumpInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps.NondeterministicJumpInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.LocalFunctionDeclarationInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.SubroutineEnterInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.SubroutineExitInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.SubroutineSinkInstruction;
import org.jetbrains.kotlin.cfg.pseudocodeTraverser.PseudocodeTraverserPackage;
import org.jetbrains.jet.lang.psi.JetElement;
import java.util.*;
import static org.jetbrains.jet.lang.cfg.pseudocodeTraverser.TraversalOrder.BACKWARD;
import static org.jetbrains.jet.lang.cfg.pseudocodeTraverser.TraversalOrder.FORWARD;
import static org.jetbrains.kotlin.cfg.pseudocodeTraverser.TraversalOrder.BACKWARD;
import static org.jetbrains.kotlin.cfg.pseudocodeTraverser.TraversalOrder.FORWARD;
public class PseudocodeImpl implements Pseudocode {
@@ -357,17 +357,17 @@ public class PseudocodeImpl implements Pseudocode {
private void processInstruction(Instruction instruction, final int currentPosition) {
instruction.accept(new InstructionVisitor() {
@Override
public void visitInstructionWithNext(InstructionWithNext instruction) {
public void visitInstructionWithNext(@NotNull InstructionWithNext instruction) {
instruction.setNext(getNextPosition(currentPosition));
}
@Override
public void visitJump(AbstractJumpInstruction instruction) {
public void visitJump(@NotNull AbstractJumpInstruction instruction) {
instruction.setResolvedTarget(getJumpTarget(instruction.getTargetLabel()));
}
@Override
public void visitNondeterministicJump(NondeterministicJumpInstruction instruction) {
public void visitNondeterministicJump(@NotNull NondeterministicJumpInstruction instruction) {
instruction.setNext(getNextPosition(currentPosition));
List<Label> targetLabels = instruction.getTargetLabels();
for (Label targetLabel : targetLabels) {
@@ -376,7 +376,7 @@ public class PseudocodeImpl implements Pseudocode {
}
@Override
public void visitConditionalJump(ConditionalJumpInstruction instruction) {
public void visitConditionalJump(@NotNull ConditionalJumpInstruction instruction) {
Instruction nextInstruction = getNextPosition(currentPosition);
Instruction jumpTarget = getJumpTarget(instruction.getTargetLabel());
if (instruction.getOnTrue()) {
@@ -391,7 +391,7 @@ public class PseudocodeImpl implements Pseudocode {
}
@Override
public void visitLocalFunctionDeclarationInstruction(LocalFunctionDeclarationInstruction instruction) {
public void visitLocalFunctionDeclarationInstruction(@NotNull LocalFunctionDeclarationInstruction instruction) {
PseudocodeImpl body = (PseudocodeImpl) instruction.getBody();
body.setParent(PseudocodeImpl.this);
body.postProcess();
@@ -399,17 +399,17 @@ public class PseudocodeImpl implements Pseudocode {
}
@Override
public void visitSubroutineExit(SubroutineExitInstruction instruction) {
public void visitSubroutineExit(@NotNull SubroutineExitInstruction instruction) {
// Nothing
}
@Override
public void visitSubroutineSink(SubroutineSinkInstruction instruction) {
public void visitSubroutineSink(@NotNull SubroutineSinkInstruction instruction) {
// Nothing
}
@Override
public void visitInstruction(Instruction instruction) {
public void visitInstruction(@NotNull Instruction instruction) {
throw new UnsupportedOperationException(instruction.toString());
}
});
@@ -494,7 +494,7 @@ public class PseudocodeImpl implements Pseudocode {
}
}
private Instruction copyInstruction(@NotNull Instruction instruction, @NotNull Map<Label, Label> originalToCopy) {
private static Instruction copyInstruction(@NotNull Instruction instruction, @NotNull Map<Label, Label> originalToCopy) {
if (instruction instanceof AbstractJumpInstruction) {
Label originalTarget = ((AbstractJumpInstruction) instruction).getTargetLabel();
if (originalToCopy.containsKey(originalTarget)) {
@@ -510,7 +510,7 @@ public class PseudocodeImpl implements Pseudocode {
}
@NotNull
private List<Label> copyLabels(Collection<Label> labels, Map<Label, Label> originalToCopy) {
private static List<Label> copyLabels(Collection<Label> labels, Map<Label, Label> originalToCopy) {
List<Label> newLabels = Lists.newArrayList();
for (Label label : labels) {
Label newLabel = originalToCopy.get(label);
@@ -14,15 +14,15 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode;
package org.jetbrains.kotlin.cfg.pseudocode;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.cfg.JetControlFlowProcessor;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.ReadValueInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.WriteValueInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.VariableDeclarationInstruction;
import org.jetbrains.kotlin.cfg.JetControlFlowProcessor;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction;
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.jet.lang.descriptors.VariableDescriptor;
import org.jetbrains.jet.lang.diagnostics.Diagnostic;
import org.jetbrains.jet.lang.psi.JetDeclaration;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode
package org.jetbrains.kotlin.cfg.pseudocode
import org.jetbrains.jet.lang.types.JetType
import org.jetbrains.jet.lang.types.checker.JetTypeChecker
@@ -14,11 +14,10 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions
package org.jetbrains.kotlin.cfg.pseudocode.instructions
import org.jetbrains.jet.lang.cfg.pseudocode
import org.jetbrains.jet.lang.cfg.pseudocode.Pseudocode
import org.jetbrains.jet.lang.cfg.pseudocode.PseudoValue
import org.jetbrains.kotlin.cfg.pseudocode.Pseudocode
import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue
public trait Instruction {
public var owner: Pseudocode
@@ -36,4 +35,4 @@ public trait Instruction {
public fun accept(visitor: InstructionVisitor)
public fun <R> accept(visitor: InstructionVisitorWithResult<R>): R
}
}
@@ -14,14 +14,12 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions
package org.jetbrains.kotlin.cfg.pseudocode.instructions
import java.util.Collections
import java.util.LinkedHashSet
import java.util.HashSet
import com.google.common.collect.Sets
import org.jetbrains.jet.lang.cfg.pseudocode.Pseudocode
import org.jetbrains.jet.lang.cfg.pseudocode.PseudoValue
import org.jetbrains.kotlin.cfg.pseudocode.Pseudocode
import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue
public abstract class InstructionImpl(override val lexicalScope: LexicalScope): Instruction {
private var _owner: Pseudocode? = null
@@ -63,4 +61,4 @@ public abstract class InstructionImpl(override val lexicalScope: LexicalScope):
}
override val inputValues: List<PseudoValue> = Collections.emptyList()
}
}
@@ -14,12 +14,12 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions
package org.jetbrains.kotlin.cfg.pseudocode.instructions
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.*
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps.*
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.*
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.*
import org.jetbrains.kotlin.cfg.pseudocode.instructions.*
import org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps.*
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.*
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.*
public open class InstructionVisitor() {
public open fun visitAccessInstruction(instruction: AccessValueInstruction) {
@@ -14,12 +14,12 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions
package org.jetbrains.kotlin.cfg.pseudocode.instructions
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.*
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps.*
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.*
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.*
import org.jetbrains.kotlin.cfg.pseudocode.instructions.*
import org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps.*
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.*
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.*
public abstract class InstructionVisitorWithResult<R>() {
public abstract fun visitInstruction(instruction: Instruction): R
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions
package org.jetbrains.kotlin.cfg.pseudocode.instructions
import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.kotlin.utils.emptyOrSingletonList
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions
package org.jetbrains.kotlin.cfg.pseudocode.instructions
import org.jetbrains.jet.lang.psi.JetElement
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions
package org.jetbrains.kotlin.cfg.pseudocode.instructions
import com.intellij.psi.PsiElement
import org.jetbrains.jet.lang.psi.JetElement
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions
package org.jetbrains.kotlin.cfg.pseudocode.instructions
import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.lang.psi.JetDeclaration
@@ -14,12 +14,12 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval
package org.jetbrains.kotlin.cfg.pseudocode.instructions.eval
import org.jetbrains.jet.lang.cfg.pseudocode.PseudoValue
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction
import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue
public trait InstructionWithReceivers: Instruction {
public val receiverValues: Map<PseudoValue, ReceiverValue>
}
}
@@ -14,11 +14,11 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval
package org.jetbrains.kotlin.cfg.pseudocode.instructions.eval
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.JetElementInstruction
import org.jetbrains.jet.lang.cfg.pseudocode.PseudoValue
import org.jetbrains.kotlin.cfg.pseudocode.instructions.JetElementInstruction
import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue
public trait InstructionWithValue : JetElementInstruction {
public val outputValue: PseudoValue?
}
}
@@ -14,14 +14,14 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval
package org.jetbrains.kotlin.cfg.pseudocode.instructions.eval
import org.jetbrains.jet.lang.psi.JetExpression
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionWithNext
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionImpl
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionWithNext
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.kotlin.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionImpl
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitorWithResult
public class LoadUnitValueInstruction(
expression: JetExpression,
@@ -14,19 +14,19 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval
package org.jetbrains.kotlin.cfg.pseudocode.instructions.eval
import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.lang.cfg.pseudocode.PseudoValue
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionWithNext
import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue
import org.jetbrains.kotlin.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionWithNext
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall
import org.jetbrains.jet.lang.descriptors.VariableDescriptor
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue
import org.jetbrains.jet.lang.cfg.pseudocode.PseudoValueFactory
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionImpl
import org.jetbrains.kotlin.cfg.pseudocode.PseudoValueFactory
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionImpl
import org.jetbrains.jet.lang.psi.JetNamedDeclaration
public trait AccessTarget {
@@ -117,4 +117,4 @@ public class WriteValueInstruction(
override fun createCopy(): InstructionImpl =
WriteValueInstruction(element, lexicalScope, target, receiverValues, lValue, rValue)
}
}
@@ -14,20 +14,20 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval
package org.jetbrains.kotlin.cfg.pseudocode.instructions.eval
import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall
import org.jetbrains.jet.lang.cfg.pseudocode.PseudoValue
import org.jetbrains.jet.lang.cfg.pseudocode.PseudoValueFactory
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionWithNext
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue
import org.jetbrains.kotlin.cfg.pseudocode.PseudoValueFactory
import org.jetbrains.kotlin.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionWithNext
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor
import org.jetbrains.jet.lang.cfg.pseudocode.TypePredicate
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.MagicKind
import org.jetbrains.kotlin.cfg.pseudocode.TypePredicate
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.MagicKind
public abstract class OperationInstruction protected(
element: JetElement,
@@ -174,4 +174,4 @@ class MergeInstruction private(
factory: PseudoValueFactory
): MergeInstruction = MergeInstruction(element, lexicalScope, inputValues).setResult(factory) as MergeInstruction
}
}
}
@@ -14,14 +14,14 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps
package org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps
import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.lang.cfg.Label
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.JetElementInstructionImpl
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionImpl
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction
import org.jetbrains.kotlin.cfg.Label
import org.jetbrains.kotlin.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.kotlin.cfg.pseudocode.instructions.JetElementInstructionImpl
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionImpl
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction
import org.jetbrains.kotlin.utils.emptyOrSingletonList
public abstract class AbstractJumpInstruction(
@@ -14,16 +14,16 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps
package org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps
import org.jetbrains.jet.lang.cfg.pseudocode.PseudoValue
import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue
import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.lang.cfg.Label
import org.jetbrains.kotlin.cfg.Label
import java.util.Arrays
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.kotlin.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.kotlin.utils.emptyOrSingletonList
public class ConditionalJumpInstruction(
@@ -14,8 +14,8 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps
package org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction
public trait JumpInstruction : Instruction
public trait JumpInstruction : Instruction
@@ -14,19 +14,19 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps
package org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps
import org.jetbrains.jet.lang.cfg.pseudocode.PseudoValue
import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue
import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.lang.cfg.Label
import org.jetbrains.kotlin.cfg.Label
import com.google.common.collect.Maps
import com.google.common.collect.Lists
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.JetElementInstructionImpl
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionImpl
import org.jetbrains.kotlin.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.kotlin.cfg.pseudocode.instructions.JetElementInstructionImpl
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionImpl
import org.jetbrains.kotlin.utils.emptyOrSingletonList
public class NondeterministicJumpInstruction(
@@ -14,13 +14,13 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps
package org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps
import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.lang.cfg.Label
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.kotlin.cfg.Label
import org.jetbrains.kotlin.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitorWithResult
public class ReturnNoValueInstruction(
element: JetElement,
@@ -39,4 +39,4 @@ public class ReturnNoValueInstruction(
override fun createCopy(newLabel: Label, lexicalScope: LexicalScope): AbstractJumpInstruction =
ReturnNoValueInstruction(element, lexicalScope, newLabel)
}
}
@@ -14,15 +14,15 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps
package org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps
import org.jetbrains.jet.lang.cfg.pseudocode.PseudoValue
import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue
import org.jetbrains.jet.lang.psi.JetExpression
import org.jetbrains.jet.lang.cfg.Label
import org.jetbrains.kotlin.cfg.Label
import java.util.Collections
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.kotlin.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.jet.lang.psi.JetReturnExpression
public class ReturnValueInstruction(
@@ -14,15 +14,15 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps
package org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps
import org.jetbrains.jet.lang.cfg.pseudocode.PseudoValue
import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue
import org.jetbrains.jet.lang.psi.JetThrowExpression
import org.jetbrains.jet.lang.cfg.Label
import org.jetbrains.kotlin.cfg.Label
import java.util.Collections
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.kotlin.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitorWithResult
public class ThrowExceptionInstruction(
expression: JetThrowExpression,
@@ -47,4 +47,4 @@ public class ThrowExceptionInstruction(
override fun createCopy(newLabel: Label, lexicalScope: LexicalScope): AbstractJumpInstruction {
return ThrowExceptionInstruction((element as JetThrowExpression), lexicalScope, newLabel, thrownValue)
}
}
}
@@ -14,11 +14,11 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps
package org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.*
import org.jetbrains.kotlin.cfg.pseudocode.instructions.*
import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.lang.cfg.Label
import org.jetbrains.kotlin.cfg.Label
public class UnconditionalJumpInstruction(
element: JetElement,
@@ -37,4 +37,4 @@ public class UnconditionalJumpInstruction(
override fun createCopy(newLabel: Label, lexicalScope: LexicalScope): AbstractJumpInstruction =
UnconditionalJumpInstruction(element, newLabel, lexicalScope)
}
}
@@ -14,17 +14,17 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.special
package org.jetbrains.kotlin.cfg.pseudocode.instructions.special
import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.lang.cfg.pseudocode.Pseudocode
import org.jetbrains.kotlin.cfg.pseudocode.Pseudocode
import com.google.common.collect.Lists
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionWithNext
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionImpl
import org.jetbrains.kotlin.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionWithNext
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionImpl
public class LocalFunctionDeclarationInstruction(
element: JetElement,
@@ -58,4 +58,4 @@ public class LocalFunctionDeclarationInstruction(
override fun createCopy(): InstructionImpl =
LocalFunctionDeclarationInstruction(element, body, lexicalScope)
}
}
@@ -14,13 +14,13 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.special
package org.jetbrains.kotlin.cfg.pseudocode.instructions.special
import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionWithNext
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.kotlin.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionWithNext
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitorWithResult
public class MarkInstruction(
element: JetElement,
@@ -38,4 +38,4 @@ public class MarkInstruction(
override fun createCopy() = MarkInstruction(element, lexicalScope)
override fun toString() = "mark(${render(element)})"
}
}
@@ -14,14 +14,14 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.special
package org.jetbrains.kotlin.cfg.pseudocode.instructions.special
import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionWithNext
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionImpl
import org.jetbrains.kotlin.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionWithNext
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionImpl
public class SubroutineEnterInstruction(
public val subroutine: JetElement,
@@ -39,4 +39,4 @@ public class SubroutineEnterInstruction(
override fun createCopy(): InstructionImpl =
SubroutineEnterInstruction(subroutine, lexicalScope)
}
}
@@ -14,15 +14,15 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.special
package org.jetbrains.kotlin.cfg.pseudocode.instructions.special
import org.jetbrains.jet.lang.psi.JetElement
import java.util.Collections
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionImpl
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitorWithResult
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 val subroutine: JetElement,
@@ -52,4 +52,4 @@ public class SubroutineExitInstruction(
override fun createCopy(): InstructionImpl =
SubroutineExitInstruction(subroutine, lexicalScope, isError)
}
}
@@ -14,15 +14,15 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.special
package org.jetbrains.kotlin.cfg.pseudocode.instructions.special
import org.jetbrains.jet.lang.psi.JetElement
import java.util.Collections
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionImpl
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitorWithResult
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 SubroutineSinkInstruction(
public val subroutine: JetElement,
@@ -43,4 +43,4 @@ public class SubroutineSinkInstruction(
override fun createCopy(): InstructionImpl =
SubroutineSinkInstruction(subroutine, lexicalScope, debugLabel)
}
}
@@ -14,16 +14,16 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode.instructions.special
package org.jetbrains.kotlin.cfg.pseudocode.instructions.special
import org.jetbrains.jet.lang.psi.JetDeclaration
import org.jetbrains.jet.lang.psi.JetVariableDeclaration
import org.jetbrains.jet.lang.psi.JetParameter
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionWithNext
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionImpl
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionWithNext
import org.jetbrains.kotlin.cfg.pseudocode.instructions.LexicalScope
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitor
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitorWithResult
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionImpl
public class VariableDeclarationInstruction(
element: JetDeclaration,
@@ -48,4 +48,4 @@ public class VariableDeclarationInstruction(
override fun createCopy(): InstructionImpl =
VariableDeclarationInstruction(variableDeclarationElement, lexicalScope)
}
}
@@ -14,11 +14,11 @@
* limitations under the License.
*/
package org.jetbrains.jet.lang.cfg.pseudocode
package org.jetbrains.kotlin.cfg.pseudocode
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.*
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.*
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps.*
import org.jetbrains.kotlin.cfg.pseudocode.instructions.*
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.*
import org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps.*
import org.jetbrains.jet.lang.psi.*
import org.jetbrains.jet.lang.descriptors.*
import org.jetbrains.jet.lang.resolve.bindingContextUtil.*
@@ -175,4 +175,4 @@ fun Pseudocode.getElementValuesRecursively(element: JetElement): List<PseudoValu
collectValues()
return results
}
}
@@ -14,14 +14,14 @@
* limitations under the License.
*/
package org.jetbrains.jet.cfg;
package org.jetbrains.kotlin.cfg;
import kotlin.Function3;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.cfg.pseudocode.PseudocodeImpl;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionImpl;
import org.jetbrains.kotlin.cfg.pseudocode.PseudocodeImpl;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionImpl;
import org.jetbrains.jet.lang.resolve.BindingContext;
import java.util.*;
@@ -14,16 +14,15 @@
* limitations under the License.
*/
package org.jetbrains.jet.cfg;
package org.jetbrains.kotlin.cfg;
import com.google.common.collect.Lists;
import com.intellij.openapi.util.text.StringUtil;
import kotlin.Function3;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.cfg.PseudocodeVariablesData;
import org.jetbrains.jet.lang.cfg.pseudocode.PseudocodeImpl;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.jet.lang.cfg.pseudocodeTraverser.Edges;
import org.jetbrains.kotlin.cfg.pseudocode.PseudocodeImpl;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.kotlin.cfg.pseudocodeTraverser.Edges;
import org.jetbrains.jet.lang.descriptors.VariableDescriptor;
import org.jetbrains.jet.lang.resolve.BindingContext;
@@ -31,8 +30,8 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import static org.jetbrains.jet.lang.cfg.PseudocodeVariablesData.VariableInitState;
import static org.jetbrains.jet.lang.cfg.PseudocodeVariablesData.VariableUseState;
import static org.jetbrains.kotlin.cfg.PseudocodeVariablesData.VariableInitState;
import static org.jetbrains.kotlin.cfg.PseudocodeVariablesData.VariableUseState;
public abstract class AbstractDataFlowTest extends AbstractPseudocodeTest {
@@ -73,7 +72,7 @@ public abstract class AbstractDataFlowTest extends AbstractPseudocodeTest {
});
}
private <D> int countDataColumnWidth(
private static int countDataColumnWidth(
@NotNull String prefix,
@NotNull List<Instruction> instructions,
@NotNull Map<Instruction, Edges<Map<VariableDescriptor, VariableInitState>>> data
@@ -91,13 +90,13 @@ public abstract class AbstractDataFlowTest extends AbstractPseudocodeTest {
}
@NotNull
private <D> String dumpEdgesData(String prefix, @NotNull Edges<Map<VariableDescriptor, D>> edges) {
private static <D> String dumpEdgesData(String prefix, @NotNull Edges<Map<VariableDescriptor, D>> edges) {
return prefix +
" in: " + renderVariableMap(edges.getIncoming()) +
" out: " + renderVariableMap(edges.getOutgoing());
}
private <D> String renderVariableMap(Map<VariableDescriptor, D> map) {
private static <D> String renderVariableMap(Map<VariableDescriptor, D> map) {
List<String> result = Lists.newArrayList();
for (Map.Entry<VariableDescriptor, D> entry : map.entrySet()) {
VariableDescriptor variable = entry.getKey();
@@ -14,17 +14,17 @@
* limitations under the License.
*/
package org.jetbrains.jet.cfg
package org.jetbrains.kotlin.cfg
import org.jetbrains.jet.lang.cfg.pseudocode.PseudoValue
import org.jetbrains.jet.lang.cfg.pseudocode.PseudocodeImpl
import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue
import org.jetbrains.kotlin.cfg.pseudocode.PseudocodeImpl
import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.lang.psi.JetTreeVisitorVoid
import org.jetbrains.jet.lang.resolve.BindingContext
import java.util.*
import org.jetbrains.jet.lang.cfg.pseudocode.TypePredicate
import org.jetbrains.jet.lang.cfg.pseudocode.getExpectedTypePredicate
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.InstructionWithValue
import org.jetbrains.kotlin.cfg.pseudocode.TypePredicate
import org.jetbrains.kotlin.cfg.pseudocode.getExpectedTypePredicate
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.InstructionWithValue
public abstract class AbstractPseudoValueTest : AbstractPseudocodeTest() {
override fun dumpInstructions(pseudocode: PseudocodeImpl, out: StringBuilder, bindingContext: BindingContext) {
@@ -79,7 +79,7 @@ public abstract class AbstractPseudoValueTest : AbstractPseudocodeTest() {
val elementColumnWidth = elementToValues.keySet().map { elementText(it).length() }.max() ?: 1
val valueColumnWidth = allValues.map { valueDecl(it).length() }.max()!!
val valueDescColumnWidth = valueDescriptions.values().map { it.length }.max()!!
val valueDescColumnWidth = valueDescriptions.values().map { it.length() }.max()!!
for ((ve, description) in valueDescriptions.entrySet()) {
val (value, element) = ve
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.cfg;
package org.jetbrains.kotlin.cfg;
import com.google.common.collect.Sets;
import com.intellij.openapi.util.text.StringUtil;
@@ -24,12 +24,12 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.ConfigurationKind;
import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.analyzer.AnalysisResult;
import org.jetbrains.jet.lang.cfg.pseudocode.Pseudocode;
import org.jetbrains.jet.lang.cfg.pseudocode.PseudocodeImpl;
import org.jetbrains.jet.lang.cfg.pseudocode.PseudocodeUtil;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionImpl;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.LocalFunctionDeclarationInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.Pseudocode;
import org.jetbrains.kotlin.cfg.pseudocode.PseudocodeImpl;
import org.jetbrains.kotlin.cfg.pseudocode.PseudocodeUtil;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionImpl;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.LocalFunctionDeclarationInstruction;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.lazy.KotlinTestWithEnvironment;
@@ -14,20 +14,20 @@
* limitations under the License.
*/
package org.jetbrains.jet.cfg;
package org.jetbrains.kotlin.cfg;
import com.google.common.collect.Sets;
import com.intellij.openapi.util.io.FileUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.lang.cfg.pseudocode.Pseudocode;
import org.jetbrains.jet.lang.cfg.pseudocode.PseudocodeImpl;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionVisitor;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.InstructionWithNext;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.MagicInstruction;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.MagicKind;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps.*;
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.*;
import org.jetbrains.kotlin.cfg.pseudocode.Pseudocode;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionVisitor;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.InstructionWithNext;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.MagicInstruction;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.MagicKind;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps.*;
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.*;
import org.jetbrains.jet.lang.psi.JetElement;
import org.jetbrains.jet.lang.psi.JetNamedDeclaration;
@@ -71,11 +71,11 @@ public class CFGraphToDotFilePrinter {
out.close();
}
private static void dumpEdges(List<Instruction> instructions, final PrintStream out, final int[] count, final Map<Instruction, String> nodeToName) {
private static void dumpEdges(List<Instruction> instructions, final PrintStream out, final int[] count, final Map<Instruction, String> nodeToName) {
for (Instruction fromInst : instructions) {
fromInst.accept(new InstructionVisitor() {
@Override
public void visitLocalFunctionDeclarationInstruction(LocalFunctionDeclarationInstruction instruction) {
public void visitLocalFunctionDeclarationInstruction(@NotNull LocalFunctionDeclarationInstruction instruction) {
int index = count[0];
// instruction.getBody().dumpSubgraph(out, "subgraph cluster_" + index, count, "color=blue;\nlabel = \"f" + index + "\";", nodeToName);
printEdge(out, nodeToName.get(instruction), nodeToName.get(instruction.getBody().getInstructionsIncludingDeadCode().get(0)), null);
@@ -83,58 +83,58 @@ public class CFGraphToDotFilePrinter {
}
@Override
public void visitUnconditionalJump(UnconditionalJumpInstruction instruction) {
public void visitUnconditionalJump(@NotNull UnconditionalJumpInstruction instruction) {
printEdge(out, nodeToName.get(instruction), nodeToName.get(instruction.getResolvedTarget()), null);
}
@Override
public void visitJump(AbstractJumpInstruction instruction) {
public void visitJump(@NotNull AbstractJumpInstruction instruction) {
printEdge(out, nodeToName.get(instruction), nodeToName.get(instruction.getResolvedTarget()), null);
}
@Override
public void visitNondeterministicJump(NondeterministicJumpInstruction instruction) {
public void visitNondeterministicJump(@NotNull NondeterministicJumpInstruction instruction) {
for (Instruction nextInstruction : instruction.getNextInstructions()) {
printEdge(out, nodeToName.get(instruction), nodeToName.get(nextInstruction), null);
}
}
@Override
public void visitReturnValue(ReturnValueInstruction instruction) {
public void visitReturnValue(@NotNull ReturnValueInstruction instruction) {
super.visitReturnValue(instruction);
}
@Override
public void visitReturnNoValue(ReturnNoValueInstruction instruction) {
public void visitReturnNoValue(@NotNull ReturnNoValueInstruction instruction) {
super.visitReturnNoValue(instruction);
}
@Override
public void visitConditionalJump(ConditionalJumpInstruction instruction) {
public void visitConditionalJump(@NotNull ConditionalJumpInstruction instruction) {
String from = nodeToName.get(instruction);
printEdge(out, from, nodeToName.get(instruction.getNextOnFalse()), "no");
printEdge(out, from, nodeToName.get(instruction.getNextOnTrue()), "yes");
}
@Override
public void visitInstructionWithNext(InstructionWithNext instruction) {
public void visitInstructionWithNext(@NotNull InstructionWithNext instruction) {
printEdge(out, nodeToName.get(instruction), nodeToName.get(instruction.getNext()), null);
}
@Override
public void visitSubroutineExit(SubroutineExitInstruction instruction) {
public void visitSubroutineExit(@NotNull SubroutineExitInstruction instruction) {
if (!instruction.getNextInstructions().isEmpty()) {
printEdge(out, nodeToName.get(instruction), nodeToName.get(instruction.getNextInstructions().iterator().next()), null);
}
}
@Override
public void visitSubroutineSink(SubroutineSinkInstruction instruction) {
public void visitSubroutineSink(@NotNull SubroutineSinkInstruction instruction) {
// Nothing
}
@Override
public void visitInstruction(Instruction instruction) {
public void visitInstruction(@NotNull Instruction instruction) {
throw new UnsupportedOperationException(instruction.toString());
}
});
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.cfg;
package org.jetbrains.kotlin.cfg;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.jet.JUnit3RunnerWithInners;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.cfg;
package org.jetbrains.kotlin.cfg;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.jet.JUnit3RunnerWithInners;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.jet.cfg;
package org.jetbrains.kotlin.cfg;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.jet.JUnit3RunnerWithInners;
@@ -39,7 +39,7 @@ import org.jetbrains.jet.modules.xml.AbstractModuleXmlParserTest
import org.jetbrains.jet.jvm.compiler.AbstractWriteSignatureTest
import org.jetbrains.kotlin.cli.AbstractKotlincExecutableTest
import org.jetbrains.jet.repl.AbstractReplInterpreterTest
import org.jetbrains.jet.cfg.AbstractControlFlowTest
import org.jetbrains.kotlin.cfg.AbstractControlFlowTest
import org.jetbrains.jet.checkers.AbstractJetPsiCheckerTest
import org.jetbrains.jet.checkers.AbstractJetJsCheckerTest
import org.jetbrains.jet.plugin.quickfix.AbstractQuickFixTest
@@ -91,7 +91,7 @@ import org.jetbrains.jet.resolve.AbstractReferenceToJavaWithWrongFileStructureTe
import org.jetbrains.jet.plugin.navigation.AbstractKotlinGotoTest
import org.jetbrains.jet.plugin.AbstractExpressionSelectionTest
import org.jetbrains.jet.plugin.refactoring.move.AbstractJetMoveTest
import org.jetbrains.jet.cfg.AbstractDataFlowTest
import org.jetbrains.kotlin.cfg.AbstractDataFlowTest
import org.jetbrains.jet.plugin.imports.AbstractOptimizeImportsTest
import org.jetbrains.jet.plugin.debugger.AbstractSmartStepIntoTest
import org.jetbrains.jet.plugin.stubs.AbstractStubBuilderTest
@@ -107,7 +107,7 @@ import org.jetbrains.jet.plugin.debugger.evaluate.AbstractCodeFragmentCompletion
import org.jetbrains.jet.plugin.debugger.evaluate.AbstractCodeFragmentHighlightingTest
import org.jetbrains.jet.plugin.stubs.AbstractResolveByStubTest
import org.jetbrains.jet.plugin.stubs.AbstractMultiFileHighlightingTest
import org.jetbrains.jet.cfg.AbstractPseudoValueTest
import org.jetbrains.kotlin.cfg.AbstractPseudoValueTest
import org.jetbrains.jet.plugin.structureView.AbstractKotlinFileStructureTest
import org.jetbrains.kotlin.j2k.AbstractJavaToKotlinConverterSingleFileTest
import org.jetbrains.kotlin.jps.build.AbstractIncrementalJpsTest
@@ -25,7 +25,7 @@ import com.intellij.psi.util.PsiTreeUtil;
import kotlin.KotlinPackage;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.analyzer.AnalyzerPackage;
import org.jetbrains.jet.lang.cfg.JetFlowInformationProvider;
import org.jetbrains.kotlin.cfg.JetFlowInformationProvider;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.annotations.Annotated;
import org.jetbrains.jet.lang.descriptors.annotations.Annotations;
@@ -30,9 +30,9 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns
import com.intellij.psi.util.PsiTreeUtil
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue
import org.jetbrains.jet.lang.resolve.scopes.receivers.ThisReceiver
import org.jetbrains.jet.lang.cfg.pseudocode.*
import org.jetbrains.kotlin.cfg.pseudocode.*
import org.jetbrains.jet.lang.resolve.BindingContext
import org.jetbrains.jet.lang.cfg.Label
import org.jetbrains.kotlin.cfg.Label
import org.jetbrains.jet.plugin.refactoring.JetNameValidatorImpl
import org.jetbrains.jet.plugin.codeInsight.DescriptorToDeclarationUtil
import org.jetbrains.jet.plugin.imports.canBeReferencedViaImport
@@ -45,13 +45,13 @@ import com.intellij.util.containers.MultiMap
import org.jetbrains.jet.lang.diagnostics.Errors
import org.jetbrains.jet.plugin.refactoring.extractFunction.AnalysisResult.Status
import org.jetbrains.jet.plugin.refactoring.extractFunction.AnalysisResult.ErrorMessage
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.LocalFunctionDeclarationInstruction
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.*
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.*
import org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps.*
import org.jetbrains.kotlin.cfg.pseudocode.instructions.special.LocalFunctionDeclarationInstruction
import org.jetbrains.kotlin.cfg.pseudocode.instructions.*
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.*
import org.jetbrains.kotlin.cfg.pseudocode.instructions.jumps.*
import kotlin.properties.Delegates
import org.jetbrains.jet.lang.cfg.pseudocodeTraverser.traverse
import org.jetbrains.jet.lang.cfg.pseudocodeTraverser.TraversalOrder
import org.jetbrains.kotlin.cfg.pseudocodeTraverser.traverse
import org.jetbrains.kotlin.cfg.pseudocodeTraverser.TraversalOrder
import org.jetbrains.jet.lang.resolve.bindingContextUtil.getTargetFunctionDescriptor
import org.jetbrains.jet.lang.resolve.OverridingUtil
import org.jetbrains.jet.lang.resolve.bindingContextUtil.isUsedAsStatement
@@ -61,7 +61,7 @@ import org.jetbrains.jet.plugin.refactoring.extractFunction.OutputValue.Initiali
import org.jetbrains.jet.plugin.refactoring.extractFunction.OutputValue.ParameterUpdate
import org.jetbrains.jet.plugin.refactoring.extractFunction.OutputValue.ExpressionValue
import org.jetbrains.jet.plugin.refactoring.extractFunction.OutputValue.Jump
import org.jetbrains.jet.lang.cfg.pseudocodeTraverser.traverseFollowingInstructions
import org.jetbrains.kotlin.cfg.pseudocodeTraverser.traverseFollowingInstructions
import org.jetbrains.jet.plugin.refactoring.extractFunction.OutputValueBoxer.AsList
import org.jetbrains.jet.plugin.refactoring.getContextForContainingDeclarationBody
import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers