fixed exponential building of cf graph
if there was en error in chained qualified expression
This commit is contained in:
committed by
Andrey Breslav
parent
7055ce2a1f
commit
c3ff6a2430
@@ -18,7 +18,6 @@ package org.jetbrains.jet.lang.cfg;
|
|||||||
|
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.intellij.openapi.util.Ref;
|
|
||||||
import com.intellij.psi.PsiElement;
|
import com.intellij.psi.PsiElement;
|
||||||
import com.intellij.psi.tree.IElementType;
|
import com.intellij.psi.tree.IElementType;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -744,26 +743,18 @@ public class JetControlFlowProcessor {
|
|||||||
public void visitQualifiedExpressionVoid(@NotNull JetQualifiedExpression expression, CFPContext context) {
|
public void visitQualifiedExpressionVoid(@NotNull JetQualifiedExpression expression, CFPContext context) {
|
||||||
mark(expression);
|
mark(expression);
|
||||||
JetExpression selectorExpression = expression.getSelectorExpression();
|
JetExpression selectorExpression = expression.getSelectorExpression();
|
||||||
if (selectorExpression != null) {
|
|
||||||
final Ref<Boolean> error = new Ref<Boolean>(false);
|
|
||||||
JetControlFlowBuilderAdapter adapter = new JetControlFlowBuilderAdapter() {
|
|
||||||
@NotNull
|
|
||||||
@Override
|
|
||||||
protected JetControlFlowBuilder getDelegateBuilder() {
|
|
||||||
return builder;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
if (selectorExpression == null) {
|
||||||
public void compilationError(@NotNull JetElement element, @NotNull String message) {
|
generateInstructions(expression.getReceiverExpression(), NOT_IN_CONDITION);
|
||||||
error.set(true);
|
return;
|
||||||
super.compilationError(element, message);
|
}
|
||||||
}
|
|
||||||
};
|
|
||||||
new CFPVisitor(adapter).generateInstructions(selectorExpression, NOT_IN_CONDITION);
|
|
||||||
|
|
||||||
if (error.get()) {
|
generateInstructions(selectorExpression, NOT_IN_CONDITION);
|
||||||
generateInstructions(expression.getReceiverExpression(), NOT_IN_CONDITION);
|
|
||||||
}
|
// receiver was generated for resolvedCall
|
||||||
|
JetExpression calleeExpression = JetPsiUtil.getCalleeExpressionIfAny(selectorExpression);
|
||||||
|
if (calleeExpression == null || getResolvedCall(calleeExpression) == null) {
|
||||||
|
generateInstructions(expression.getReceiverExpression(), NOT_IN_CONDITION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -865,6 +865,9 @@ public class JetPsiUtil {
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static JetExpression getCalleeExpressionIfAny(@NotNull JetExpression expression) {
|
public static JetExpression getCalleeExpressionIfAny(@NotNull JetExpression expression) {
|
||||||
|
if (expression instanceof JetSimpleNameExpression) {
|
||||||
|
return expression;
|
||||||
|
}
|
||||||
if (expression instanceof JetCallElement) {
|
if (expression instanceof JetCallElement) {
|
||||||
JetCallElement callExpression = (JetCallElement) expression;
|
JetCallElement callExpression = (JetCallElement) expression;
|
||||||
return callExpression.getCalleeExpression();
|
return callExpression.getCalleeExpression();
|
||||||
|
|||||||
@@ -0,0 +1,574 @@
|
|||||||
|
== JetToken ==
|
||||||
|
class JetToken
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== JetKeywordCompletionContributor ==
|
||||||
|
public open class JetKeywordCompletionContributor() {
|
||||||
|
{
|
||||||
|
val inTopLevel = 1.0
|
||||||
|
|
||||||
|
BunchKeywordRegister()
|
||||||
|
.add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
|
||||||
|
.add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
|
||||||
|
.add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
|
||||||
|
.add(IMPORT_KEYWORD, inTopLevel)
|
||||||
|
.add(PACKAGE_KEYWORD, inTopLevel)
|
||||||
|
|
||||||
|
.add(OVERRIDE_KEYWORD, inTopLevel)
|
||||||
|
|
||||||
|
.add(IN_KEYWORD, inTopLevel, inTopLevel)
|
||||||
|
|
||||||
|
.add(OUT_KEYWORD, inTopLevel)
|
||||||
|
|
||||||
|
.add(OBJECT_KEYWORD, unresolvedCode)
|
||||||
|
|
||||||
|
.registerAll()
|
||||||
|
}
|
||||||
|
|
||||||
|
private inner class BunchKeywordRegister() {
|
||||||
|
fun add(keyword= JetToken(), vararg filters: Double): BunchKeywordRegister {
|
||||||
|
}
|
||||||
|
|
||||||
|
fun registerAll() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
mark({ val inTopLevel = 1.0 BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) .add(IN_KEYWORD, inTopLevel, inTopLevel) .add(OUT_KEYWORD, inTopLevel) .add(OBJECT_KEYWORD, unresolvedCode) .registerAll() })
|
||||||
|
v(val inTopLevel = 1.0)
|
||||||
|
r(1.0)
|
||||||
|
w(inTopLevel)
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) .add(IN_KEYWORD, inTopLevel, inTopLevel) .add(OUT_KEYWORD, inTopLevel) .add(OBJECT_KEYWORD, unresolvedCode) .registerAll())
|
||||||
|
mark(registerAll())
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) .add(IN_KEYWORD, inTopLevel, inTopLevel) .add(OUT_KEYWORD, inTopLevel) .add(OBJECT_KEYWORD, unresolvedCode))
|
||||||
|
mark(add(OBJECT_KEYWORD, unresolvedCode))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) .add(IN_KEYWORD, inTopLevel, inTopLevel) .add(OUT_KEYWORD, inTopLevel))
|
||||||
|
mark(add(OUT_KEYWORD, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) .add(IN_KEYWORD, inTopLevel, inTopLevel))
|
||||||
|
mark(add(IN_KEYWORD, inTopLevel, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel))
|
||||||
|
mark(add(OVERRIDE_KEYWORD, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel))
|
||||||
|
mark(add(PACKAGE_KEYWORD, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel))
|
||||||
|
mark(add(IMPORT_KEYWORD, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
|
||||||
|
mark(BunchKeywordRegister())
|
||||||
|
call(BunchKeywordRegister, <init>)
|
||||||
|
r(ABSTRACT_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(FINAL_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(OPEN_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(INTERNAL_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(PRIVATE_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(PROTECTED_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(PUBLIC_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(CLASS_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(ENUM_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(FUN_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(GET_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(SET_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(TRAIT_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(VAL_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(VAR_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(TYPE_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(IMPORT_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(PACKAGE_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(OVERRIDE_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(IN_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(OUT_KEYWORD)
|
||||||
|
r(inTopLevel)
|
||||||
|
call(add, add)
|
||||||
|
r(OBJECT_KEYWORD)
|
||||||
|
error(unresolvedCode, No resolved call)
|
||||||
|
call(add, add)
|
||||||
|
call(registerAll, registerAll)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== ABSTRACT_KEYWORD ==
|
||||||
|
val ABSTRACT_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val ABSTRACT_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(ABSTRACT_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== FINAL_KEYWORD ==
|
||||||
|
val FINAL_KEYWORD OPEN_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val FINAL_KEYWORD OPEN_KEYWORD = JetToken())
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== OPEN_KEYWORD ==
|
||||||
|
val OPEN_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val OPEN_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(OPEN_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== INTERNAL_KEYWORD ==
|
||||||
|
val INTERNAL_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val INTERNAL_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(INTERNAL_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== PRIVATE_KEYWORD ==
|
||||||
|
val PRIVATE_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val PRIVATE_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(PRIVATE_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== PROTECTED_KEYWORD ==
|
||||||
|
val PROTECTED_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val PROTECTED_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(PROTECTED_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== PUBLIC_KEYWORD ==
|
||||||
|
val PUBLIC_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val PUBLIC_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(PUBLIC_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== CLASS_KEYWORD ==
|
||||||
|
val CLASS_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val CLASS_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(CLASS_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== ENUM_KEYWORD ==
|
||||||
|
val ENUM_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val ENUM_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(ENUM_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== FUN_KEYWORD ==
|
||||||
|
val FUN_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val FUN_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(FUN_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== GET_KEYWORD ==
|
||||||
|
val GET_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val GET_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(GET_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== SET_KEYWORD ==
|
||||||
|
val SET_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val SET_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(SET_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== TRAIT_KEYWORD ==
|
||||||
|
val TRAIT_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val TRAIT_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(TRAIT_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== VAL_KEYWORD ==
|
||||||
|
val VAL_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val VAL_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(VAL_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== VAR_KEYWORD ==
|
||||||
|
val VAR_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val VAR_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(VAR_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== TYPE_KEYWORD ==
|
||||||
|
val TYPE_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val TYPE_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(TYPE_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== IMPORT_KEYWORD ==
|
||||||
|
val IMPORT_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val IMPORT_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(IMPORT_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== PACKAGE_KEYWORD ==
|
||||||
|
val PACKAGE_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val PACKAGE_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(PACKAGE_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== OVERRIDE_KEYWORD ==
|
||||||
|
val OVERRIDE_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val OVERRIDE_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(OVERRIDE_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== IN_KEYWORD ==
|
||||||
|
val IN_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val IN_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(IN_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== OUT_KEYWORD ==
|
||||||
|
val OUT_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val OUT_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(OUT_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
|
== OBJECT_KEYWORD ==
|
||||||
|
val OBJECT_KEYWORD = JetToken()
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(val OBJECT_KEYWORD = JetToken())
|
||||||
|
mark(JetToken())
|
||||||
|
call(JetToken, <init>)
|
||||||
|
w(OBJECT_KEYWORD)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
package test
|
||||||
|
|
||||||
|
class JetToken
|
||||||
|
|
||||||
|
public open class JetKeywordCompletionContributor() {
|
||||||
|
{
|
||||||
|
val inTopLevel = 1.0
|
||||||
|
|
||||||
|
BunchKeywordRegister()
|
||||||
|
.add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
|
||||||
|
.add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
|
||||||
|
.add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
.add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel)
|
||||||
|
|
||||||
|
.add(IMPORT_KEYWORD, inTopLevel)
|
||||||
|
.add(PACKAGE_KEYWORD, inTopLevel)
|
||||||
|
|
||||||
|
.add(OVERRIDE_KEYWORD, inTopLevel)
|
||||||
|
|
||||||
|
.add(IN_KEYWORD, inTopLevel, inTopLevel)
|
||||||
|
|
||||||
|
.add(OUT_KEYWORD, inTopLevel)
|
||||||
|
|
||||||
|
.add(OBJECT_KEYWORD, unresolvedCode)
|
||||||
|
|
||||||
|
.registerAll()
|
||||||
|
}
|
||||||
|
|
||||||
|
private inner class BunchKeywordRegister() {
|
||||||
|
fun add(keyword= JetToken(), vararg filters: Double): BunchKeywordRegister {
|
||||||
|
}
|
||||||
|
|
||||||
|
fun registerAll() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val ABSTRACT_KEYWORD = JetToken()
|
||||||
|
val FINAL_KEYWORD OPEN_KEYWORD = JetToken()
|
||||||
|
val OPEN_KEYWORD = JetToken()
|
||||||
|
val INTERNAL_KEYWORD = JetToken()
|
||||||
|
val PRIVATE_KEYWORD = JetToken()
|
||||||
|
val PROTECTED_KEYWORD = JetToken()
|
||||||
|
val PUBLIC_KEYWORD = JetToken()
|
||||||
|
val CLASS_KEYWORD = JetToken()
|
||||||
|
val ENUM_KEYWORD = JetToken()
|
||||||
|
val FUN_KEYWORD = JetToken()
|
||||||
|
val GET_KEYWORD = JetToken()
|
||||||
|
val SET_KEYWORD = JetToken()
|
||||||
|
val TRAIT_KEYWORD = JetToken()
|
||||||
|
val VAL_KEYWORD = JetToken()
|
||||||
|
val VAR_KEYWORD = JetToken()
|
||||||
|
val TYPE_KEYWORD = JetToken()
|
||||||
|
val IMPORT_KEYWORD = JetToken()
|
||||||
|
val PACKAGE_KEYWORD = JetToken()
|
||||||
|
val OVERRIDE_KEYWORD = JetToken()
|
||||||
|
val IN_KEYWORD = JetToken()
|
||||||
|
val OUT_KEYWORD = JetToken()
|
||||||
|
val OBJECT_KEYWORD = JetToken()
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
== foo ==
|
||||||
|
fun foo(s: String) {
|
||||||
|
s.
|
||||||
|
}
|
||||||
|
---------------------
|
||||||
|
L0:
|
||||||
|
<START>
|
||||||
|
v(s: String)
|
||||||
|
w(s)
|
||||||
|
mark({ s. })
|
||||||
|
mark(s.)
|
||||||
|
r(s)
|
||||||
|
L1:
|
||||||
|
<END> NEXT:[<SINK>]
|
||||||
|
error:
|
||||||
|
<ERROR> PREV:[]
|
||||||
|
sink:
|
||||||
|
<SINK> PREV:[<ERROR>, <END>]
|
||||||
|
=====================
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fun foo(s: String) {
|
||||||
|
s.
|
||||||
|
}
|
||||||
@@ -92,6 +92,11 @@ public class ControlFlowTestGenerated extends AbstractControlFlowTest {
|
|||||||
doTest("compiler/testData/cfg/Basic.kt");
|
doTest("compiler/testData/cfg/Basic.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("chainedQualifiedExpression.kt")
|
||||||
|
public void testChainedQualifiedExpression() throws Exception {
|
||||||
|
doTest("compiler/testData/cfg/chainedQualifiedExpression.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("DelegatedProperty.kt")
|
@TestMetadata("DelegatedProperty.kt")
|
||||||
public void testDelegatedProperty() throws Exception {
|
public void testDelegatedProperty() throws Exception {
|
||||||
doTest("compiler/testData/cfg/DelegatedProperty.kt");
|
doTest("compiler/testData/cfg/DelegatedProperty.kt");
|
||||||
@@ -187,6 +192,11 @@ public class ControlFlowTestGenerated extends AbstractControlFlowTest {
|
|||||||
doTest("compiler/testData/cfg/propertySafeCall.kt");
|
doTest("compiler/testData/cfg/propertySafeCall.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("qualifiedExpressionWithoutSelector.kt")
|
||||||
|
public void testQualifiedExpressionWithoutSelector() throws Exception {
|
||||||
|
doTest("compiler/testData/cfg/qualifiedExpressionWithoutSelector.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("ReturnFromExpression.kt")
|
@TestMetadata("ReturnFromExpression.kt")
|
||||||
public void testReturnFromExpression() throws Exception {
|
public void testReturnFromExpression() throws Exception {
|
||||||
doTest("compiler/testData/cfg/ReturnFromExpression.kt");
|
doTest("compiler/testData/cfg/ReturnFromExpression.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user