"trait" instead of "trait class"

virtual -> open
 "final" introduced
 "wraps" dropped
This commit is contained in:
Andrey Breslav
2011-09-09 16:16:05 +04:00
parent 704a876537
commit 16dcbd41cb
94 changed files with 537 additions and 532 deletions
@@ -127,7 +127,7 @@ public interface JetTokens {
JetKeywordToken GET_KEYWORD = JetKeywordToken.softKeyword("get");
JetKeywordToken SET_KEYWORD = JetKeywordToken.softKeyword("set");
JetKeywordToken ABSTRACT_KEYWORD = JetKeywordToken.softKeyword("abstract");
JetKeywordToken VIRTUAL_KEYWORD = JetKeywordToken.softKeyword("virtual");
JetKeywordToken VIRTUAL_KEYWORD = JetKeywordToken.softKeyword("open");
JetKeywordToken ENUM_KEYWORD = JetKeywordToken.softKeyword("enum");
JetKeywordToken OPEN_KEYWORD = JetKeywordToken.softKeyword("open");
JetKeywordToken ATTRIBUTE_KEYWORD = JetKeywordToken.softKeyword("attribute");
+1 -1
View File
@@ -21,7 +21,7 @@ fun countOnes(x : INumber) = if (x == 0) 0 else mostSignificantBit(x) + countOne
fun Int.matchMask(mask : Int) = this and mask == mask
virtual class INumber<T : this> : IComparable<T> {
open class INumber<T : this> : IComparable<T> {
val bits : Int
[operator] fun plus(other : T) : T
[operator] fun shl(bits : Int) : T
+1 -1
View File
@@ -1,4 +1,4 @@
virtual class IPushPop<T> {
open class IPushPop<T> {
val isEmpty : Boolean
fun push(item : T)
fun pop() : T
+2 -2
View File
@@ -1,9 +1,9 @@
virtual class Builder<E, R> {
open class Builder<E, R> {
[operator] fun plusAssign(item : E)
fun result() : R
}
virtual class Buildable {
open class Buildable {
fun newBuilder<E, R>() : Builder<E, R>
}
+2 -2
View File
@@ -2,11 +2,11 @@
These declarations are "shallow" in the sense that they are not really compiled, only the type-checker uses them
*/
virtual class ReadOnlyArray<out T> : ISized {
open class ReadOnlyArray<out T> : ISized {
[operator] fun get(index : Int) : T
}
virtual class WriteOnlyArray<in T> : ISized { // This is needed to keep IIterator's <T> covariant
open class WriteOnlyArray<in T> : ISized { // This is needed to keep IIterator's <T> covariant
[operator] fun set(index : Int, value : T)
}
+4 -4
View File
@@ -1,15 +1,15 @@
virtual class IEquality {
open class IEquality {
fun equals(other : Any) : Boolean
= (this as java.lang.Object).equals(other as java.lang.Object)
}
virtual class IHashable : IEquality {
open class IHashable : IEquality {
val hashCode : Integer
get() = (this as java.lang.Object).hashCode()
}
virtual class IMap<K, V> {
open class IMap<K, V> {
fun get(key : K) : V
fun set(key : K, value : V) : V
fun remove(key : K) : V
@@ -21,7 +21,7 @@ class HashableWrapper wraps (val obj : Any) : IHashable
[inline] fun Any.hashable() : HashableWrapper = new HashableWrapper(this)
virtual class IHashingStrategy<K> {
open class IHashingStrategy<K> {
fun equals(a : K, b : K) : Boolean
fun hashCode(a : K) : Integer
}
+1 -1
View File
@@ -1,3 +1,3 @@
virtual class IIterable<out T> {
open class IIterable<out T> {
fun iterator() : IIterator<T>
}
+1 -1
View File
@@ -1,4 +1,4 @@
virtual class IIterator<out T> {
open class IIterator<out T> {
fun next() : T
val hasNext : Boolean
+1 -1
View File
@@ -1,4 +1,4 @@
virtual class IList<out T> : IIterable<T>, ISized {
open class IList<out T> : IIterable<T>, ISized {
[operator] fun get(index : Int) : T
val isEmpty : Boolean
}
@@ -1,3 +1,3 @@
virtual class IMutableIterable<out T> : IIterable<T> {
open class IMutableIterable<out T> : IIterable<T> {
fun mutableIterator() : IMutableIterator<T>
}
@@ -1,4 +1,4 @@
virtual class IMutableIterator<out T> : IIterator<T> {
open class IMutableIterator<out T> : IIterator<T> {
fun remove() : T
/*
+1 -1
View File
@@ -1,4 +1,4 @@
virtual class IMutableList<T> : IList<T>, IMutableIterable<T> {
open class IMutableList<T> : IList<T>, IMutableIterable<T> {
fun set(index : Int, value : T) : T
fun add(index : Int, value : T)
fun remove(index : Int) : T
+1 -1
View File
@@ -1,4 +1,4 @@
virtual class IMutableSet<T> : ISet<T>, IMutableIterable<T> {
open class IMutableSet<T> : ISet<T>, IMutableIterable<T> {
fun add(item : T) : Boolean
fun remove(item : T) : Boolean
}
+1 -1
View File
@@ -1,3 +1,3 @@
virtual class ISet<T> : IIterable<T>, ISized {
open class ISet<T> : IIterable<T>, ISized {
fun contains(item : T) : Boolean
}
+1 -1
View File
@@ -1,3 +1,3 @@
virtual class ISized {
open class ISized {
val size : Int
}
+2 -2
View File
@@ -1,8 +1,8 @@
virtual class IAdder<in T> {
open class IAdder<in T> {
fun add(item : T) : Boolean
}
virtual class ICloseable {
open class ICloseable {
fun close()
}
+1 -1
View File
@@ -1,4 +1,4 @@
virtual class IMap<in K, out V> {
open class IMap<in K, out V> {
}
@@ -1,4 +1,4 @@
virtual class IPriorityQueue<T> {
open class IPriorityQueue<T> {
fun extract() : T
fun add(item : T)
val isEmpty : Boolean
+1 -1
View File
@@ -1,3 +1,3 @@
virtual class IComparable<in T> {
open class IComparable<in T> {
fun compareTo(other : T) : Int
}
+2 -2
View File
@@ -17,9 +17,9 @@ internal class Example<X, T : Comparable<X>>(protected val x : Foo<X, T>, y : So
*/
class
: modifiers "class" SimpleName
: modifiers ("class" | "trait") SimpleName
typeParameters?
("wraps" valueParameters? | modifiers valueParameters?)?
modifiers ("(" primaryConstructorParameter{","} ")")?
(":" annotations delegationSpecifier{","})?
typeConstraints
(classBody? | enumClassBody)
+2 -4
View File
@@ -115,17 +115,15 @@ ref
try
Soft:
wraps -- in a class header
where -- in class, function and type headers
by -- in a class header (Delegation specifier)
lazy -- in a property/parameter declaration
get, set -- in a property definition
import
final
abstract
virtual
enum
open
attribute
annotation
override
private
public
+3 -2
View File
@@ -17,7 +17,7 @@ modifier
classModifier
: "abstract"
: "virtual"
: "final"
: "enum"
: "open"
: "attribute"
@@ -25,7 +25,8 @@ classModifier
memberModifier
: "override"
: "virtual"
: "open"
: "final"
: "abstract"
;
+5 -5
View File
@@ -40,12 +40,12 @@ fun Any?.equals(other : Any?) : Boolean// = this === other
// Returns "null" for null
fun Any?.toString() : String// = this === other
trait class Iterator<out T> {
trait Iterator<out T> {
fun next() : T
abstract fun hasNext() : Boolean
}
trait class Iterable<out T> {
trait Iterable<out T> {
fun iterator() : Iterator<T>
}
@@ -56,11 +56,11 @@ class Array<T>(val size : Int) {
fun iterator() : Iterator<T>
}
trait class Comparable<in T> {
trait Comparable<in T> {
fun compareTo(other : T) : Int
}
trait class Hashable {
trait Hashable {
fun hashCode() : Int
fun equals(other : Any?) : Boolean
}
@@ -92,7 +92,7 @@ class String() : Comparable<String> {
fun trim(): String
}
trait class Range<in T : Comparable<T>> {
trait Range<in T : Comparable<T>> {
fun contains(item : T) : Boolean
}
@@ -34,9 +34,9 @@ public class MutableClassDescriptor extends MutableDeclarationDescriptor impleme
private final ClassKind kind;
private JetType superclassType;
public MutableClassDescriptor(@NotNull BindingTrace trace, @NotNull DeclarationDescriptor containingDeclaration, @NotNull JetScope outerScope) {
this(trace, containingDeclaration, outerScope, ClassKind.CLASS);
}
// public MutableClassDescriptor(@NotNull BindingTrace trace, @NotNull DeclarationDescriptor containingDeclaration, @NotNull JetScope outerScope) {
// this(trace, containingDeclaration, outerScope, ClassKind.CLASS);
// }
public MutableClassDescriptor(@NotNull BindingTrace trace, @NotNull DeclarationDescriptor containingDeclaration, @NotNull JetScope outerScope, ClassKind kind) {
super(containingDeclaration);
@@ -20,7 +20,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
private static final TokenSet TYPE_ARGUMENT_LIST_STOPPERS = TokenSet.create(
INTEGER_LITERAL, FLOAT_LITERAL, CHARACTER_LITERAL, OPEN_QUOTE, RAW_STRING_LITERAL,
NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD, THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD,
NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, TRAIT_KEYWORD, CLASS_KEYWORD, THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD,
FUN_KEYWORD, FOR_KEYWORD, NULL_KEYWORD,
TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD,
CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD, TRY_KEYWORD, ELSE_KEYWORD, WHILE_KEYWORD, DO_KEYWORD,
@@ -79,6 +79,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
LBRACKET, // attribute
FUN_KEYWORD,
VAL_KEYWORD, VAR_KEYWORD,
TRAIT_KEYWORD,
CLASS_KEYWORD,
TYPE_KEYWORD
),
@@ -1236,7 +1237,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
private JetNodeType parseLocalDeclarationRest(boolean isEnum) {
IElementType keywordToken = tt();
JetNodeType declType = null;
if (keywordToken == CLASS_KEYWORD) {
if (keywordToken == CLASS_KEYWORD || keywordToken == TRAIT_KEYWORD) {
declType = myJetParsing.parseClass(isEnum);
}
else if (keywordToken == FUN_KEYWORD) {
@@ -28,13 +28,13 @@ public class JetParsing extends AbstractJetParsing {
}
}
private static final TokenSet TOPLEVEL_OBJECT_FIRST = TokenSet.create(TYPE_KEYWORD, CLASS_KEYWORD,
private static final TokenSet TOPLEVEL_OBJECT_FIRST = TokenSet.create(TYPE_KEYWORD, TRAIT_KEYWORD, CLASS_KEYWORD,
FUN_KEYWORD, VAL_KEYWORD, NAMESPACE_KEYWORD);
private static final TokenSet ENUM_MEMBER_FIRST = TokenSet.create(TYPE_KEYWORD, CLASS_KEYWORD,
private static final TokenSet ENUM_MEMBER_FIRST = TokenSet.create(TYPE_KEYWORD, TRAIT_KEYWORD, CLASS_KEYWORD,
FUN_KEYWORD, VAL_KEYWORD, IDENTIFIER);
private static final TokenSet CLASS_NAME_RECOVERY_SET = TokenSet.orSet(TokenSet.create(LT, WRAPS_KEYWORD, LPAR, COLON, LBRACE), TOPLEVEL_OBJECT_FIRST);
private static final TokenSet TYPE_PARAMETER_GT_RECOVERY_SET = TokenSet.create(WHERE_KEYWORD, WRAPS_KEYWORD, LPAR, COLON, LBRACE, GT);
private static final TokenSet CLASS_NAME_RECOVERY_SET = TokenSet.orSet(TokenSet.create(LT, LPAR, COLON, LBRACE), TOPLEVEL_OBJECT_FIRST);
private static final TokenSet TYPE_PARAMETER_GT_RECOVERY_SET = TokenSet.create(WHERE_KEYWORD, LPAR, COLON, LBRACE, GT);
private static final TokenSet PARAMETER_NAME_RECOVERY_SET = TokenSet.create(COLON, EQ, COMMA, RPAR);
private static final TokenSet NAMESPACE_NAME_RECOVERY_SET = TokenSet.create(DOT, EOL_OR_SEMICOLON);
/*package*/ static final TokenSet TYPE_REF_FIRST = TokenSet.create(LBRACKET, IDENTIFIER, FUN_KEYWORD, LPAR, CAPITALIZED_THIS_KEYWORD);
@@ -227,7 +227,7 @@ public class JetParsing extends AbstractJetParsing {
if (keywordToken == NAMESPACE_KEYWORD) {
declType = parseNamespaceBlock();
}
else if (keywordToken == CLASS_KEYWORD) {
else if (keywordToken == CLASS_KEYWORD || keywordToken == TRAIT_KEYWORD) {
declType = parseClass(detector.isDetected());
}
else if (keywordToken == FUN_KEYWORD) {
@@ -404,36 +404,28 @@ public class JetParsing extends AbstractJetParsing {
/*
* class
* : modifiers "class" SimpleName
* : modifiers ("class" | "trait") SimpleName
* typeParameters?
* (
* ("wraps" "(" primaryConstructorParameter{","} ")") |
* (modifiers "(" primaryConstructorParameter{","} ")"))?
* modifiers ("(" primaryConstructorParameter{","} ")")?
* (":" attributes delegationSpecifier{","})?
* typeConstraints
* (classBody? | enumClassBody)
* ;
*/
public JetNodeType parseClass(boolean enumClass) {
assert _at(CLASS_KEYWORD);
advance(); // CLASS_KEYWORD
assert _atSet(CLASS_KEYWORD, TRAIT_KEYWORD);
advance(); // CLASS_KEYWORD or TRAIT_KEYWORD
expect(IDENTIFIER, "Class name expected", CLASS_NAME_RECOVERY_SET);
boolean typeParametersDeclared = parseTypeParameterList(TYPE_PARAMETER_GT_RECOVERY_SET);
if (at(WRAPS_KEYWORD)) {
advance(); // WRAPS_KEYWORD
if (parseModifierList(PRIMARY_CONSTRUCTOR_MODIFIER_LIST, false)) {
parseValueParameterList(false, TokenSet.create(COLON, LBRACE));
}
else {
if (parseModifierList(PRIMARY_CONSTRUCTOR_MODIFIER_LIST, false)) {
if (at(LPAR)) {
parseValueParameterList(false, TokenSet.create(COLON, LBRACE));
}
else {
if (at(LPAR)) {
parseValueParameterList(false, TokenSet.create(COLON, LBRACE));
}
}
}
if (at(COLON)) {
@@ -601,8 +593,11 @@ public class JetParsing extends AbstractJetParsing {
declType = parseClass(isEnum);
}
}
else if (keywordToken == TRAIT_KEYWORD) {
declType = parseClass(isEnum);
}
else if (keywordToken == FUN_KEYWORD) {
declType = parseFunction();
declType = parseFunction();
}
else if (keywordToken == VAL_KEYWORD || keywordToken == VAR_KEYWORD) {
declType = parseProperty();
@@ -5,6 +5,7 @@ import com.intellij.psi.util.PsiTreeUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.JetNodeTypes;
import org.jetbrains.jet.lexer.JetTokens;
import java.util.Collections;
import java.util.List;
@@ -114,4 +115,8 @@ public class JetClass extends JetTypeParameterListOwner implements JetClassOrObj
}
return getName();
}
public boolean isTrait() {
return findChildByType(JetTokens.TRAIT_KEYWORD) != null;
}
}
@@ -694,7 +694,7 @@ public class ClassDescriptorResolver {
);
trace.record(BindingContext.CONSTRUCTOR, declarationToTrace, constructorDescriptor);
if (modifierList != null) {
modifierList.checkNotContains(trace, JetTokens.ABSTRACT_KEYWORD, JetTokens.VIRTUAL_KEYWORD, JetTokens.OVERRIDE_KEYWORD);
modifierList.checkNotContains(trace, JetTokens.ABSTRACT_KEYWORD, JetTokens.OPEN_KEYWORD, JetTokens.OVERRIDE_KEYWORD, JetTokens.FINAL_KEYWORD);
}
return constructorDescriptor.initialize(
typeParameters,
@@ -167,7 +167,7 @@ public class TopDownAnalyzer {
@Override
public void visitClass(JetClass klass) {
MutableClassDescriptor mutableClassDescriptor = new MutableClassDescriptor(trace, owner, outerScope);
MutableClassDescriptor mutableClassDescriptor = new MutableClassDescriptor(trace, owner, outerScope, getClassKind(klass));
if (klass.hasModifier(JetTokens.ENUM_KEYWORD)) {
MutableClassDescriptor classObjectDescriptor = new MutableClassDescriptor(trace, mutableClassDescriptor, outerScope, ClassKind.OBJECT);
@@ -201,7 +201,7 @@ public class TopDownAnalyzer {
classes.put(enumEntry, classDescriptor);
}
else {
MutableClassDescriptor mutableClassDescriptor = new MutableClassDescriptor(trace, classObjectDescriptor, outerScope);
MutableClassDescriptor mutableClassDescriptor = new MutableClassDescriptor(trace, classObjectDescriptor, outerScope, ClassKind.CLASS); // TODO : Special kind for enum entry classes?
visitClassOrObject(
enumEntry,
(Map) classes,
@@ -267,6 +267,14 @@ public class TopDownAnalyzer {
}
}
@NotNull
private ClassKind getClassKind(@NotNull JetClass jetClass) {
if (jetClass.isTrait()) return ClassKind.TRAIT;
if (jetClass.hasModifier(JetTokens.ANNOTATION_KEYWORD)) return ClassKind.ANNOTATION_CLASS;
if (jetClass.hasModifier(JetTokens.ENUM_KEYWORD)) return ClassKind.ENUM_CLASS;
return ClassKind.CLASS;
}
private void processImports(@NotNull JetNamespace namespace, @NotNull WriteThroughScope namespaceScope, @NotNull JetScope outerScope) {
List<JetImportDirective> importDirectives = namespace.getImportDirectives();
for (JetImportDirective importDirective : importDirectives) {
@@ -164,6 +164,7 @@ LONG_TEMPLATE_ENTRY_END=\}
"while" { return JetTokens.WHILE_KEYWORD ;}
"break" { return JetTokens.BREAK_KEYWORD ;}
"class" { return JetTokens.CLASS_KEYWORD ;}
"trait" { return JetTokens.TRAIT_KEYWORD ;}
"throw" { return JetTokens.THROW_KEYWORD ;}
"false" { return JetTokens.FALSE_KEYWORD ;}
"when" { return JetTokens.WHEN_KEYWORD ;}
@@ -119,17 +119,15 @@ public interface JetTokens {
JetToken COMMA = new JetToken("COMMA");
JetToken EOL_OR_SEMICOLON = new JetToken("EOL_OR_SEMICOLON");
JetKeywordToken WRAPS_KEYWORD = JetKeywordToken.softKeyword("wraps");
JetKeywordToken IMPORT_KEYWORD = JetKeywordToken.softKeyword("import");
JetKeywordToken WHERE_KEYWORD = JetKeywordToken.softKeyword("where");
JetKeywordToken BY_KEYWORD = JetKeywordToken.softKeyword("by");
JetKeywordToken GET_KEYWORD = JetKeywordToken.softKeyword("get");
JetKeywordToken SET_KEYWORD = JetKeywordToken.softKeyword("set");
JetKeywordToken ABSTRACT_KEYWORD = JetKeywordToken.softKeyword("abstract");
JetKeywordToken VIRTUAL_KEYWORD = JetKeywordToken.softKeyword("virtual");
JetKeywordToken ENUM_KEYWORD = JetKeywordToken.softKeyword("enum");
JetKeywordToken OPEN_KEYWORD = JetKeywordToken.softKeyword("open");
JetKeywordToken ATTRIBUTE_KEYWORD = JetKeywordToken.softKeyword("attribute");
JetKeywordToken ANNOTATION_KEYWORD = JetKeywordToken.softKeyword("annotation");
JetKeywordToken OVERRIDE_KEYWORD = JetKeywordToken.softKeyword("override");
JetKeywordToken PRIVATE_KEYWORD = JetKeywordToken.softKeyword("private");
JetKeywordToken PUBLIC_KEYWORD = JetKeywordToken.softKeyword("public");
@@ -144,23 +142,23 @@ public interface JetTokens {
// TODO: support this as an annotation on arguments. Then, they it probably can not be a soft keyword
JetKeywordToken REF_KEYWORD = JetKeywordToken.softKeyword("ref");
TokenSet KEYWORDS = TokenSet.create(NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD,
TokenSet KEYWORDS = TokenSet.create(NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD, TRAIT_KEYWORD,
THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, FOR_KEYWORD,
NULL_KEYWORD,
TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD,
IN_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD, CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD,
ELSE_KEYWORD, WHILE_KEYWORD, DO_KEYWORD, TRY_KEYWORD, WHEN_KEYWORD,
NOT_IN, NOT_IS, CAPITALIZED_THIS_KEYWORD, AS_SAFE, TRAIT_KEYWORD
NOT_IN, NOT_IS, CAPITALIZED_THIS_KEYWORD, AS_SAFE
);
TokenSet SOFT_KEYWORDS = TokenSet.create(WRAPS_KEYWORD, IMPORT_KEYWORD, WHERE_KEYWORD, BY_KEYWORD, GET_KEYWORD,
SET_KEYWORD, ABSTRACT_KEYWORD, VIRTUAL_KEYWORD, ENUM_KEYWORD, OPEN_KEYWORD, ATTRIBUTE_KEYWORD,
TokenSet SOFT_KEYWORDS = TokenSet.create(IMPORT_KEYWORD, WHERE_KEYWORD, BY_KEYWORD, GET_KEYWORD,
SET_KEYWORD, ABSTRACT_KEYWORD, ENUM_KEYWORD, OPEN_KEYWORD, ANNOTATION_KEYWORD,
OVERRIDE_KEYWORD, PRIVATE_KEYWORD, PUBLIC_KEYWORD, INTERNAL_KEYWORD, PROTECTED_KEYWORD,
CATCH_KEYWORD, FINALLY_KEYWORD, REF_KEYWORD, OUT_KEYWORD, FINAL_KEYWORD
);
TokenSet MODIFIER_KEYWORDS = TokenSet.create(ABSTRACT_KEYWORD, VIRTUAL_KEYWORD, ENUM_KEYWORD,
OPEN_KEYWORD, ATTRIBUTE_KEYWORD, OVERRIDE_KEYWORD, PRIVATE_KEYWORD, PUBLIC_KEYWORD, INTERNAL_KEYWORD,
TokenSet MODIFIER_KEYWORDS = TokenSet.create(ABSTRACT_KEYWORD, ENUM_KEYWORD,
OPEN_KEYWORD, ANNOTATION_KEYWORD, OVERRIDE_KEYWORD, PRIVATE_KEYWORD, PUBLIC_KEYWORD, INTERNAL_KEYWORD,
PROTECTED_KEYWORD, REF_KEYWORD, OUT_KEYWORD, IN_KEYWORD, FINAL_KEYWORD
);
TokenSet WHITE_SPACE_OR_COMMENT_BIT_SET = TokenSet.create(WHITE_SPACE, BLOCK_COMMENT, EOL_COMMENT, DOC_COMMENT);
+279 -271
View File
@@ -1,4 +1,4 @@
/* The following code was generated by JFlex 1.4.3 on 7/12/11 9:55 PM */
/* The following code was generated by JFlex 1.4.3 on 9/9/11 2:48 PM */
/* It's an automatically generated code. Do not modify it. */
package org.jetbrains.jet.lexer;
@@ -14,7 +14,7 @@ import org.jetbrains.jet.lexer.JetTokens;
/**
* This class is a scanner generated by
* <a href="http://www.jflex.de/">JFlex</a> 1.4.3
* on 7/12/11 9:55 PM from the specification file
* on 9/9/11 2:48 PM from the specification file
* <tt>/Users/abreslav/work/jet/idea/src/org/jetbrains/jet/lexer/Jet.flex</tt>
*/
class _JetLexer implements FlexLexer {
@@ -44,70 +44,70 @@ class _JetLexer implements FlexLexer {
"\11\0\1\3\1\13\1\0\1\3\23\0\1\3\1\60\1\25\1\77"+
"\1\7\1\70\1\65\1\23\1\73\1\74\1\12\1\62\1\76\1\21"+
"\1\17\1\11\1\14\11\1\1\67\1\75\1\63\1\57\1\64\1\61"+
"\1\10\1\2\1\16\2\2\1\20\1\2\5\4\1\4\3\4\1\22"+
"\3\4\1\54\3\4\1\15\2\4\1\71\1\24\1\72\1\0\1\4"+
"\1\6\1\31\1\44\1\36\1\56\1\33\1\52\1\4\1\47\1\41"+
"\1\45\1\51\1\50\1\32\1\30\1\37\1\35\1\4\1\43\1\34"+
"\1\40\1\42\1\55\1\46\1\15\1\53\1\4\1\26\1\66\1\27"+
"\54\0\1\4\12\0\1\4\4\0\1\4\5\0\27\4\1\0\37\4"+
"\1\0\u013f\4\31\0\162\4\4\0\14\4\16\0\5\4\11\0\1\4"+
"\213\0\1\4\13\0\1\4\1\0\3\4\1\0\1\4\1\0\24\4"+
"\1\0\54\4\1\0\46\4\1\0\5\4\4\0\202\4\10\0\105\4"+
"\1\0\46\4\2\0\2\4\6\0\20\4\41\0\46\4\2\0\1\4"+
"\7\0\47\4\110\0\33\4\5\0\3\4\56\0\32\4\5\0\13\4"+
"\25\0\12\5\4\0\2\4\1\0\143\4\1\0\1\4\17\0\2\4"+
"\7\0\2\4\12\5\3\4\2\0\1\4\20\0\1\4\1\0\36\4"+
"\35\0\3\4\60\0\46\4\13\0\1\4\u0152\0\66\4\3\0\1\4"+
"\22\0\1\4\7\0\12\4\4\0\12\5\25\0\10\4\2\0\2\4"+
"\2\0\26\4\1\0\7\4\1\0\1\4\3\0\4\4\3\0\1\4"+
"\36\0\2\4\1\0\3\4\4\0\12\5\2\4\23\0\6\4\4\0"+
"\2\4\2\0\26\4\1\0\7\4\1\0\2\4\1\0\2\4\1\0"+
"\2\4\37\0\4\4\1\0\1\4\7\0\12\5\2\0\3\4\20\0"+
"\11\4\1\0\3\4\1\0\26\4\1\0\7\4\1\0\2\4\1\0"+
"\5\4\3\0\1\4\22\0\1\4\17\0\2\4\4\0\12\5\25\0"+
"\10\4\2\0\2\4\2\0\26\4\1\0\7\4\1\0\2\4\1\0"+
"\5\4\3\0\1\4\36\0\2\4\1\0\3\4\4\0\12\5\1\0"+
"\1\4\21\0\1\4\1\0\6\4\3\0\3\4\1\0\4\4\3\0"+
"\2\4\1\0\1\4\1\0\2\4\3\0\2\4\3\0\3\4\3\0"+
"\10\4\1\0\3\4\55\0\11\5\25\0\10\4\1\0\3\4\1\0"+
"\27\4\1\0\12\4\1\0\5\4\46\0\2\4\4\0\12\5\25\0"+
"\10\4\1\0\3\4\1\0\27\4\1\0\12\4\1\0\5\4\3\0"+
"\1\4\40\0\1\4\1\0\2\4\4\0\12\5\25\0\10\4\1\0"+
"\3\4\1\0\27\4\1\0\20\4\46\0\2\4\4\0\12\5\25\0"+
"\22\4\3\0\30\4\1\0\11\4\1\0\1\4\2\0\7\4\72\0"+
"\60\4\1\0\2\4\14\0\7\4\11\0\12\5\47\0\2\4\1\0"+
"\1\4\2\0\2\4\1\0\1\4\2\0\1\4\6\0\4\4\1\0"+
"\7\4\1\0\3\4\1\0\1\4\1\0\1\4\2\0\2\4\1\0"+
"\4\4\1\0\2\4\11\0\1\4\2\0\5\4\1\0\1\4\11\0"+
"\12\5\2\0\2\4\42\0\1\4\37\0\12\5\26\0\10\4\1\0"+
"\42\4\35\0\4\4\164\0\42\4\1\0\5\4\1\0\2\4\25\0"+
"\12\5\6\0\6\4\112\0\46\4\12\0\51\4\7\0\132\4\5\0"+
"\104\4\5\0\122\4\6\0\7\4\1\0\77\4\1\0\1\4\1\0"+
"\4\4\2\0\7\4\1\0\1\4\1\0\4\4\2\0\47\4\1\0"+
"\1\4\1\0\4\4\2\0\37\4\1\0\1\4\1\0\4\4\2\0"+
"\7\4\1\0\1\4\1\0\4\4\2\0\7\4\1\0\7\4\1\0"+
"\27\4\1\0\37\4\1\0\1\4\1\0\4\4\2\0\7\4\1\0"+
"\47\4\1\0\23\4\16\0\11\5\56\0\125\4\14\0\u026c\4\2\0"+
"\10\4\12\0\32\4\5\0\113\4\25\0\15\4\1\0\4\4\16\0"+
"\22\4\16\0\22\4\16\0\15\4\1\0\3\4\17\0\64\4\43\0"+
"\1\4\4\0\1\4\3\0\12\5\46\0\12\5\6\0\130\4\10\0"+
"\51\4\127\0\35\4\51\0\12\5\36\4\2\0\5\4\u038b\0\154\4"+
"\224\0\234\4\4\0\132\4\6\0\26\4\2\0\6\4\2\0\46\4"+
"\2\0\6\4\2\0\10\4\1\0\1\4\1\0\1\4\1\0\1\4"+
"\1\0\37\4\2\0\65\4\1\0\7\4\1\0\1\4\3\0\3\4"+
"\1\0\7\4\3\0\4\4\2\0\6\4\4\0\15\4\5\0\3\4"+
"\1\0\7\4\164\0\1\4\15\0\1\4\202\0\1\4\4\0\1\4"+
"\2\0\12\4\1\0\1\4\3\0\5\4\6\0\1\4\1\0\1\4"+
"\1\0\1\4\1\0\4\4\1\0\3\4\1\0\7\4\3\0\3\4"+
"\5\0\5\4\u0ebb\0\2\4\52\0\5\4\5\0\2\4\4\0\126\4"+
"\6\0\3\4\1\0\132\4\1\0\4\4\5\0\50\4\4\0\136\4"+
"\21\0\30\4\70\0\20\4\u0200\0\u19b6\4\112\0\u51a6\4\132\0\u048d\4"+
"\u0773\0\u2ba4\4\u215c\0\u012e\4\2\0\73\4\225\0\7\4\14\0\5\4"+
"\5\0\1\4\1\0\12\4\1\0\15\4\1\0\5\4\1\0\1\4"+
"\1\0\2\4\1\0\2\4\1\0\154\4\41\0\u016b\4\22\0\100\4"+
"\2\0\66\4\50\0\14\4\164\0\5\4\1\0\207\4\23\0\12\5"+
"\7\0\32\4\6\0\32\4\13\0\131\4\3\0\6\4\2\0\6\4"+
"\2\0\6\4\2\0\3\4\43\0";
"\1\10\1\2\1\16\2\2\1\20\1\2\11\4\1\22\3\4\1\54"+
"\3\4\1\15\2\4\1\71\1\24\1\72\1\0\1\4\1\6\1\31"+
"\1\44\1\36\1\56\1\33\1\52\1\4\1\47\1\41\1\45\1\51"+
"\1\50\1\32\1\30\1\37\1\35\1\4\1\43\1\34\1\40\1\42"+
"\1\55\1\46\1\15\1\53\1\4\1\26\1\66\1\27\54\0\1\4"+
"\12\0\1\4\4\0\1\4\5\0\27\4\1\0\37\4\1\0\u013f\4"+
"\31\0\162\4\4\0\14\4\16\0\5\4\11\0\1\4\213\0\1\4"+
"\13\0\1\4\1\0\3\4\1\0\1\4\1\0\24\4\1\0\54\4"+
"\1\0\46\4\1\0\5\4\4\0\202\4\10\0\105\4\1\0\46\4"+
"\2\0\2\4\6\0\20\4\41\0\46\4\2\0\1\4\7\0\47\4"+
"\110\0\33\4\5\0\3\4\56\0\32\4\5\0\13\4\25\0\12\5"+
"\4\0\2\4\1\0\143\4\1\0\1\4\17\0\2\4\7\0\2\4"+
"\12\5\3\4\2\0\1\4\20\0\1\4\1\0\36\4\35\0\3\4"+
"\60\0\46\4\13\0\1\4\u0152\0\66\4\3\0\1\4\22\0\1\4"+
"\7\0\12\4\4\0\12\5\25\0\10\4\2\0\2\4\2\0\26\4"+
"\1\0\7\4\1\0\1\4\3\0\4\4\3\0\1\4\36\0\2\4"+
"\1\0\3\4\4\0\12\5\2\4\23\0\6\4\4\0\2\4\2\0"+
"\26\4\1\0\7\4\1\0\2\4\1\0\2\4\1\0\2\4\37\0"+
"\4\4\1\0\1\4\7\0\12\5\2\0\3\4\20\0\11\4\1\0"+
"\3\4\1\0\26\4\1\0\7\4\1\0\2\4\1\0\5\4\3\0"+
"\1\4\22\0\1\4\17\0\2\4\4\0\12\5\25\0\10\4\2\0"+
"\2\4\2\0\26\4\1\0\7\4\1\0\2\4\1\0\5\4\3\0"+
"\1\4\36\0\2\4\1\0\3\4\4\0\12\5\1\0\1\4\21\0"+
"\1\4\1\0\6\4\3\0\3\4\1\0\4\4\3\0\2\4\1\0"+
"\1\4\1\0\2\4\3\0\2\4\3\0\3\4\3\0\10\4\1\0"+
"\3\4\55\0\11\5\25\0\10\4\1\0\3\4\1\0\27\4\1\0"+
"\12\4\1\0\5\4\46\0\2\4\4\0\12\5\25\0\10\4\1\0"+
"\3\4\1\0\27\4\1\0\12\4\1\0\5\4\3\0\1\4\40\0"+
"\1\4\1\0\2\4\4\0\12\5\25\0\10\4\1\0\3\4\1\0"+
"\27\4\1\0\20\4\46\0\2\4\4\0\12\5\25\0\22\4\3\0"+
"\30\4\1\0\11\4\1\0\1\4\2\0\7\4\72\0\60\4\1\0"+
"\2\4\14\0\7\4\11\0\12\5\47\0\2\4\1\0\1\4\2\0"+
"\2\4\1\0\1\4\2\0\1\4\6\0\4\4\1\0\7\4\1\0"+
"\3\4\1\0\1\4\1\0\1\4\2\0\2\4\1\0\4\4\1\0"+
"\2\4\11\0\1\4\2\0\5\4\1\0\1\4\11\0\12\5\2\0"+
"\2\4\42\0\1\4\37\0\12\5\26\0\10\4\1\0\42\4\35\0"+
"\4\4\164\0\42\4\1\0\5\4\1\0\2\4\25\0\12\5\6\0"+
"\6\4\112\0\46\4\12\0\51\4\7\0\132\4\5\0\104\4\5\0"+
"\122\4\6\0\7\4\1\0\77\4\1\0\1\4\1\0\4\4\2\0"+
"\7\4\1\0\1\4\1\0\4\4\2\0\47\4\1\0\1\4\1\0"+
"\4\4\2\0\37\4\1\0\1\4\1\0\4\4\2\0\7\4\1\0"+
"\1\4\1\0\4\4\2\0\7\4\1\0\7\4\1\0\27\4\1\0"+
"\37\4\1\0\1\4\1\0\4\4\2\0\7\4\1\0\47\4\1\0"+
"\23\4\16\0\11\5\56\0\125\4\14\0\u026c\4\2\0\10\4\12\0"+
"\32\4\5\0\113\4\25\0\15\4\1\0\4\4\16\0\22\4\16\0"+
"\22\4\16\0\15\4\1\0\3\4\17\0\64\4\43\0\1\4\4\0"+
"\1\4\3\0\12\5\46\0\12\5\6\0\130\4\10\0\51\4\127\0"+
"\35\4\51\0\12\5\36\4\2\0\5\4\u038b\0\154\4\224\0\234\4"+
"\4\0\132\4\6\0\26\4\2\0\6\4\2\0\46\4\2\0\6\4"+
"\2\0\10\4\1\0\1\4\1\0\1\4\1\0\1\4\1\0\37\4"+
"\2\0\65\4\1\0\7\4\1\0\1\4\3\0\3\4\1\0\7\4"+
"\3\0\4\4\2\0\6\4\4\0\15\4\5\0\3\4\1\0\7\4"+
"\164\0\1\4\15\0\1\4\202\0\1\4\4\0\1\4\2\0\12\4"+
"\1\0\1\4\3\0\5\4\6\0\1\4\1\0\1\4\1\0\1\4"+
"\1\0\4\4\1\0\3\4\1\0\7\4\3\0\3\4\5\0\5\4"+
"\u0ebb\0\2\4\52\0\5\4\5\0\2\4\4\0\126\4\6\0\3\4"+
"\1\0\132\4\1\0\4\4\5\0\50\4\4\0\136\4\21\0\30\4"+
"\70\0\20\4\u0200\0\u19b6\4\112\0\u51a6\4\132\0\u048d\4\u0773\0\u2ba4\4"+
"\u215c\0\u012e\4\2\0\73\4\225\0\7\4\14\0\5\4\5\0\1\4"+
"\1\0\12\4\1\0\15\4\1\0\5\4\1\0\1\4\1\0\2\4"+
"\1\0\2\4\1\0\154\4\41\0\u016b\4\22\0\100\4\2\0\66\4"+
"\50\0\14\4\164\0\5\4\1\0\207\4\23\0\12\5\7\0\32\4"+
"\6\0\32\4\13\0\131\4\3\0\6\4\2\0\6\4\2\0\6\4"+
"\2\0\3\4\43\0";
/**
* Translates characters to character classes
@@ -132,16 +132,16 @@ class _JetLexer implements FlexLexer {
"\1\0\1\66\1\67\1\70\1\71\1\72\1\73\1\74"+
"\1\75\1\76\1\77\1\100\1\0\1\101\1\102\1\0"+
"\1\103\1\43\1\3\2\0\1\50\1\104\4\0\1\105"+
"\2\3\1\106\5\3\1\107\10\3\1\110\1\111\1\3"+
"\2\3\1\106\6\3\1\107\10\3\1\110\1\111\1\3"+
"\1\112\1\113\1\114\1\115\1\116\1\117\1\0\1\40"+
"\1\44\1\45\1\0\2\104\1\43\2\0\1\3\1\120"+
"\1\121\3\3\1\122\1\123\1\3\1\124\2\3\1\125"+
"\1\121\4\3\1\122\1\123\1\3\1\124\2\3\1\125"+
"\2\3\1\126\1\100\1\50\2\0\2\3\1\127\1\3"+
"\1\130\1\3\1\131\1\132\1\133\1\105\2\3\1\134"+
"\1\135\3\3\1\136\1\137";
"\1\130\1\131\1\3\1\132\1\133\1\134\1\105\2\3"+
"\1\135\1\136\3\3\1\137\1\140";
private static int [] zzUnpackAction() {
int [] result = new int[210];
int [] result = new int[213];
int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
return result;
@@ -183,19 +183,19 @@ class _JetLexer implements FlexLexer {
"\0\u0100\0\u0100\0\u0100\0\u0100\0\u0100\0\u0100\0\u1480\0\u14c0"+
"\0\u0100\0\u0100\0\u1500\0\u0100\0\u1540\0\u0100\0\u1580\0\u15c0"+
"\0\u1600\0\u1640\0\u1680\0\u16c0\0\u1700\0\u1740\0\u1780\0\u17c0"+
"\0\u1800\0\u0100\0\u1840\0\u1880\0\u18c0\0\u1900\0\u1940\0\u0180"+
"\0\u1980\0\u19c0\0\u1a00\0\u1a40\0\u1a80\0\u1ac0\0\u1b00\0\u1b40"+
"\0\u0180\0\u0180\0\u1b80\0\u0180\0\u0180\0\u0100\0\u0100\0\u0100"+
"\0\u0100\0\u1bc0\0\u0100\0\u0100\0\u0100\0\u1c00\0\u1c40\0\u0100"+
"\0\u1c80\0\u1540\0\u1cc0\0\u1d00\0\u0180\0\u0180\0\u1d40\0\u1d80"+
"\0\u1dc0\0\u0180\0\u0180\0\u1e00\0\u0180\0\u1e40\0\u1e80\0\u0180"+
"\0\u1ec0\0\u1f00\0\u0180\0\u0100\0\u0100\0\u1f40\0\u1f80\0\u1fc0"+
"\0\u2000\0\u0180\0\u2040\0\u0180\0\u2080\0\u0180\0\u0180\0\u0180"+
"\0\u0100\0\u20c0\0\u2100\0\u0180\0\u0180\0\u2140\0\u2180\0\u21c0"+
"\0\u0180\0\u0180";
"\0\u1800\0\u0100\0\u1840\0\u1880\0\u18c0\0\u1900\0\u1940\0\u1980"+
"\0\u0180\0\u19c0\0\u1a00\0\u1a40\0\u1a80\0\u1ac0\0\u1b00\0\u1b40"+
"\0\u1b80\0\u0180\0\u0180\0\u1bc0\0\u0180\0\u0180\0\u0100\0\u0100"+
"\0\u0100\0\u0100\0\u1c00\0\u0100\0\u0100\0\u0100\0\u1c40\0\u1c80"+
"\0\u0100\0\u1cc0\0\u1540\0\u1d00\0\u1d40\0\u0180\0\u0180\0\u1d80"+
"\0\u1dc0\0\u1e00\0\u1e40\0\u0180\0\u0180\0\u1e80\0\u0180\0\u1ec0"+
"\0\u1f00\0\u0180\0\u1f40\0\u1f80\0\u0180\0\u0100\0\u0100\0\u1fc0"+
"\0\u2000\0\u2040\0\u2080\0\u0180\0\u20c0\0\u0180\0\u0180\0\u2100"+
"\0\u0180\0\u0180\0\u0180\0\u0100\0\u2140\0\u2180\0\u0180\0\u0180"+
"\0\u21c0\0\u2200\0\u2240\0\u0180\0\u0180";
private static int [] zzUnpackRowMap() {
int [] result = new int[210];
int [] result = new int[213];
int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
return result;
@@ -315,110 +315,114 @@ class _JetLexer implements FlexLexer {
"\5\0\1\7\1\215\25\7\22\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\15\7"+
"\1\216\11\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\12\7\1\217\10\7"+
"\1\220\3\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\11\7\1\221\1\7"+
"\1\222\13\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\5\7\1\223\21\7"+
"\1\0\1\7\1\0\1\7\5\0\1\7\1\217\10\7"+
"\1\220\10\7\1\221\3\7\22\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\11\7"+
"\1\222\1\7\1\223\13\7\22\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\5\7"+
"\1\224\21\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\10\7\1\225\16\7"+
"\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+
"\1\0\1\7\5\0\10\7\1\224\16\7\22\0\2\7"+
"\1\0\1\7\5\0\3\7\1\226\23\7\22\0\2\7"+
"\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+
"\5\0\3\7\1\225\23\7\22\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\3\7"+
"\1\226\5\7\1\227\15\7\22\0\2\7\1\0\2\7"+
"\5\0\3\7\1\227\5\7\1\230\15\7\22\0\2\7"+
"\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+
"\5\0\20\7\1\231\6\7\22\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\13\7"+
"\1\232\13\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\1\233\26\7\22\0"+
"\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+
"\1\7\5\0\11\7\1\234\15\7\22\0\2\7\1\0"+
"\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+
"\13\7\1\235\4\7\1\236\6\7\100\0\1\237\50\0"+
"\1\240\3\0\1\241\122\0\1\242\21\0\2\167\1\0"+
"\2\167\6\0\3\167\1\0\1\167\1\0\1\167\5\0"+
"\27\167\23\0\1\243\1\0\1\243\10\0\2\243\1\0"+
"\1\243\1\0\1\243\5\0\27\243\22\0\2\173\1\0"+
"\2\173\1\244\5\0\3\173\1\0\1\173\1\0\1\173"+
"\5\0\27\173\22\0\1\175\12\0\1\175\64\0\2\177"+
"\1\0\2\177\1\245\5\0\3\177\1\0\1\177\1\0"+
"\1\177\5\0\27\177\22\0\2\200\1\0\2\200\1\246"+
"\5\0\3\200\1\0\1\200\1\0\1\200\5\0\27\200"+
"\21\0\12\201\1\247\65\201\11\250\1\251\1\202\65\250"+
"\1\0\1\114\12\0\1\114\64\0\2\252\11\0\1\252"+
"\1\0\1\252\1\174\1\252\10\0\1\252\1\0\1\252"+
"\2\0\1\252\5\0\1\252\5\0\1\252\3\0\1\252"+
"\22\0\1\175\12\0\1\175\4\0\1\253\40\0\1\253"+
"\34\0\1\174\60\0\25\207\1\254\52\207\1\0\2\7"+
"\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+
"\5\0\3\7\1\255\23\7\22\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\20\7"+
"\1\230\6\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\13\7\1\231\13\7"+
"\1\256\6\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\3\7\1\257\23\7"+
"\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+
"\1\0\1\7\5\0\1\232\26\7\22\0\2\7\1\0"+
"\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+
"\11\7\1\233\15\7\22\0\2\7\1\0\2\7\6\0"+
"\3\7\1\0\1\7\1\0\1\7\5\0\13\7\1\234"+
"\4\7\1\235\6\7\100\0\1\236\50\0\1\237\3\0"+
"\1\240\122\0\1\241\21\0\2\167\1\0\2\167\6\0"+
"\3\167\1\0\1\167\1\0\1\167\5\0\27\167\23\0"+
"\1\242\1\0\1\242\10\0\2\242\1\0\1\242\1\0"+
"\1\242\5\0\27\242\22\0\2\173\1\0\2\173\1\243"+
"\5\0\3\173\1\0\1\173\1\0\1\173\5\0\27\173"+
"\22\0\1\175\12\0\1\175\64\0\2\177\1\0\2\177"+
"\1\244\5\0\3\177\1\0\1\177\1\0\1\177\5\0"+
"\27\177\22\0\2\200\1\0\2\200\1\245\5\0\3\200"+
"\1\0\1\200\1\0\1\200\5\0\27\200\21\0\12\201"+
"\1\246\65\201\11\247\1\250\1\202\65\247\1\0\1\114"+
"\12\0\1\114\64\0\2\251\11\0\1\251\1\0\1\251"+
"\1\174\1\251\10\0\1\251\1\0\1\251\2\0\1\251"+
"\5\0\1\251\5\0\1\251\3\0\1\251\22\0\1\175"+
"\12\0\1\175\4\0\1\252\40\0\1\252\34\0\1\174"+
"\60\0\25\207\1\253\52\207\1\0\2\7\1\0\2\7"+
"\1\0\1\7\5\0\10\7\1\260\16\7\22\0\2\7"+
"\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+
"\5\0\4\7\1\261\22\7\22\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\3\7"+
"\1\254\23\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\20\7\1\255\6\7"+
"\1\262\23\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\11\7\1\263\15\7"+
"\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+
"\1\0\1\7\5\0\3\7\1\256\23\7\22\0\2\7"+
"\1\0\1\7\5\0\3\7\1\264\23\7\22\0\2\7"+
"\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+
"\5\0\10\7\1\257\16\7\22\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\4\7"+
"\1\260\22\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\3\7\1\261\23\7"+
"\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+
"\1\0\1\7\5\0\3\7\1\262\23\7\22\0\2\7"+
"\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+
"\5\0\4\7\1\263\22\7\22\0\2\7\1\0\2\7"+
"\5\0\4\7\1\265\22\7\22\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\7\7"+
"\1\264\17\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\3\7\1\265\23\7"+
"\1\266\17\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\3\7\1\267\23\7"+
"\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+
"\1\0\1\7\5\0\12\7\1\266\14\7\22\0\2\7"+
"\1\0\1\7\5\0\12\7\1\270\14\7\22\0\2\7"+
"\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+
"\5\0\1\7\1\267\25\7\22\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\1\270"+
"\5\0\1\7\1\271\25\7\22\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\1\272"+
"\26\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+
"\1\7\1\0\1\7\5\0\20\7\1\271\6\7\22\0"+
"\1\7\1\0\1\7\5\0\20\7\1\273\6\7\22\0"+
"\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+
"\1\7\5\0\4\7\1\272\22\7\22\0\2\7\1\0"+
"\1\7\5\0\4\7\1\274\22\7\22\0\2\7\1\0"+
"\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+
"\4\7\1\273\22\7\22\0\2\242\1\0\2\242\1\274"+
"\5\0\3\242\1\0\1\242\1\0\1\242\5\0\27\242"+
"\21\0\11\201\1\275\1\246\65\201\12\247\1\276\65\247"+
"\1\0\2\251\11\0\1\251\1\0\1\251\1\0\1\251"+
"\1\0\1\205\6\0\1\251\1\0\1\251\1\0\1\205"+
"\1\251\5\0\1\251\5\0\1\251\3\0\1\251\21\0"+
"\25\207\1\277\52\207\1\0\2\7\1\0\2\7\6\0"+
"\3\7\1\0\1\7\1\0\1\7\5\0\4\7\1\300"+
"\4\7\1\275\22\7\22\0\2\243\1\0\2\243\1\276"+
"\5\0\3\243\1\0\1\243\1\0\1\243\5\0\27\243"+
"\21\0\11\201\1\277\1\247\65\201\12\250\1\300\65\250"+
"\1\0\2\252\11\0\1\252\1\0\1\252\1\0\1\252"+
"\1\0\1\205\6\0\1\252\1\0\1\252\1\0\1\205"+
"\1\252\5\0\1\252\5\0\1\252\3\0\1\252\21\0"+
"\25\207\1\301\52\207\1\0\2\7\1\0\2\7\6\0"+
"\3\7\1\0\1\7\1\0\1\7\5\0\4\7\1\302"+
"\22\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+
"\1\7\1\0\1\7\5\0\11\7\1\301\15\7\22\0"+
"\1\7\1\0\1\7\5\0\11\7\1\303\15\7\22\0"+
"\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+
"\1\7\5\0\4\7\1\302\22\7\22\0\2\7\1\0"+
"\1\7\5\0\4\7\1\304\22\7\22\0\2\7\1\0"+
"\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+
"\6\7\1\303\20\7\22\0\2\7\1\0\2\7\6\0"+
"\3\7\1\0\1\7\1\0\1\7\5\0\16\7\1\304"+
"\10\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+
"\1\7\1\0\1\7\5\0\13\7\1\305\13\7\22\0"+
"\6\7\1\305\20\7\22\0\2\7\1\0\2\7\6\0"+
"\3\7\1\0\1\7\1\0\1\7\5\0\10\7\1\306"+
"\16\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+
"\1\7\1\0\1\7\5\0\16\7\1\307\10\7\22\0"+
"\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+
"\1\7\5\0\21\7\1\306\5\7\22\0\2\7\1\0"+
"\1\7\5\0\13\7\1\310\13\7\22\0\2\7\1\0"+
"\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+
"\3\7\1\307\23\7\22\0\2\7\1\0\2\7\6\0"+
"\3\7\1\0\1\7\1\0\1\7\5\0\3\7\1\310"+
"\23\7\21\0\11\247\1\250\1\276\65\247\25\207\1\311"+
"\52\207\1\0\2\7\1\0\2\7\6\0\3\7\1\0"+
"\1\7\1\0\1\7\5\0\5\7\1\312\21\7\22\0"+
"\21\7\1\311\5\7\22\0\2\7\1\0\2\7\6\0"+
"\3\7\1\0\1\7\1\0\1\7\5\0\3\7\1\312"+
"\23\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+
"\1\7\1\0\1\7\5\0\3\7\1\313\23\7\21\0"+
"\11\250\1\251\1\300\65\250\25\207\1\314\52\207\1\0"+
"\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+
"\1\7\5\0\1\313\26\7\22\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\10\7"+
"\1\314\16\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\1\315\26\7\22\0"+
"\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+
"\1\7\5\0\1\7\1\316\25\7\22\0\2\7\1\0"+
"\1\7\5\0\5\7\1\315\21\7\22\0\2\7\1\0"+
"\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+
"\12\7\1\317\14\7\22\0\2\7\1\0\2\7\6\0"+
"\3\7\1\0\1\7\1\0\1\7\5\0\6\7\1\320"+
"\20\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+
"\1\7\1\0\1\7\5\0\3\7\1\321\23\7\22\0"+
"\1\316\26\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\10\7\1\317\16\7"+
"\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+
"\1\0\1\7\5\0\1\320\26\7\22\0\2\7\1\0"+
"\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+
"\1\7\1\321\25\7\22\0\2\7\1\0\2\7\6\0"+
"\3\7\1\0\1\7\1\0\1\7\5\0\12\7\1\322"+
"\14\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+
"\1\7\1\0\1\7\5\0\6\7\1\323\20\7\22\0"+
"\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+
"\1\7\5\0\3\7\1\322\23\7\21\0";
"\1\7\5\0\3\7\1\324\23\7\22\0\2\7\1\0"+
"\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+
"\3\7\1\325\23\7\21\0";
private static int [] zzUnpackTrans() {
int [] result = new int[8704];
int [] result = new int[8832];
int offset = 0;
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
return result;
@@ -464,12 +468,12 @@ class _JetLexer implements FlexLexer {
"\1\1\1\0\1\1\1\0\1\1\1\0\1\11\2\1"+
"\2\11\4\1\5\11\1\1\1\0\27\1\1\11\1\0"+
"\1\1\11\11\1\1\1\0\2\11\1\0\1\11\1\1"+
"\1\11\2\0\2\1\4\0\3\1\1\11\23\1\4\11"+
"\1\0\3\11\1\0\1\1\1\11\1\1\2\0\20\1"+
"\2\11\2\0\11\1\1\11\11\1";
"\1\11\2\0\2\1\4\0\3\1\1\11\24\1\4\11"+
"\1\0\3\11\1\0\1\1\1\11\1\1\2\0\21\1"+
"\2\11\2\0\12\1\1\11\11\1";
private static int [] zzUnpackAttribute() {
int [] result = new int[210];
int [] result = new int[213];
int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result;
@@ -578,7 +582,7 @@ class _JetLexer implements FlexLexer {
char [] map = new char[0x10000];
int i = 0; /* index in packed string */
int j = 0; /* index in unpacked array */
while (i < 1330) {
while (i < 1326) {
int count = packed.charAt(i++);
char value = packed.charAt(i++);
do map[j++] = value; while (--count > 0);
@@ -803,23 +807,23 @@ class _JetLexer implements FlexLexer {
case 3:
{ return JetTokens.IDENTIFIER;
}
case 96: break;
case 97: break;
case 11:
{ pushState(STRING); return JetTokens.OPEN_QUOTE;
}
case 97: break;
case 98: break;
case 72:
{ return JetTokens.FOR_KEYWORD ;
}
case 98: break;
case 93:
case 99: break;
case 94:
{ return JetTokens.RETURN_KEYWORD ;
}
case 99: break;
case 100: break;
case 80:
{ return JetTokens.NULL_KEYWORD ;
}
case 100: break;
case 101: break;
case 34:
{ if (lBraceCount == 0) {
popState();
@@ -828,365 +832,369 @@ class _JetLexer implements FlexLexer {
lBraceCount--;
return JetTokens.RBRACE;
}
case 101: break;
case 102: break;
case 18:
{ return JetTokens.LT ;
}
case 102: break;
case 103: break;
case 51:
{ return JetTokens.DO_KEYWORD ;
}
case 103: break;
case 104: break;
case 17:
{ return JetTokens.PLUS ;
}
case 104: break;
case 105: break;
case 69:
{ return JetTokens.RAW_STRING_LITERAL;
}
case 105: break;
case 106: break;
case 57:
{ return JetTokens.PLUSEQ ;
}
case 106: break;
case 107: break;
case 27:
{ return JetTokens.COMMA ;
}
case 107: break;
case 108: break;
case 19:
{ return JetTokens.GT ;
}
case 108: break;
case 109: break;
case 4:
{ return JetTokens.WHITE_SPACE;
}
case 109: break;
case 110: break;
case 25:
{ return JetTokens.RPAR ;
}
case 110: break;
case 111: break;
case 53:
{ return JetTokens.DOUBLE_ARROW;
}
case 111: break;
case 112: break;
case 82:
{ return JetTokens.TRUE_KEYWORD ;
}
case 112: break;
case 113: break;
case 36:
{ return JetTokens.FIELD_IDENTIFIER;
}
case 113: break;
case 114: break;
case 61:
{ return JetTokens.ANDAND ;
}
case 114: break;
case 115: break;
case 65:
{ pushState(LONG_TEMPLATE_ENTRY); return JetTokens.LONG_TEMPLATE_ENTRY_START;
}
case 115: break;
case 116: break;
case 68:
{ return JetTokens.DOC_COMMENT;
}
case 116: break;
case 117: break;
case 35:
{ return JetTokens.FLOAT_LITERAL;
}
case 117: break;
case 118: break;
case 39:
{ return JetTokens.EOL_COMMENT;
}
case 118: break;
case 119: break;
case 85:
{ return JetTokens.WHEN_KEYWORD ;
}
case 119: break;
case 120: break;
case 20:
{ return JetTokens.COLON ;
}
case 120: break;
case 121: break;
case 59:
{ return JetTokens.LTEQ ;
}
case 121: break;
case 122: break;
case 46:
{ return JetTokens.ARROW ;
}
case 122: break;
case 123: break;
case 32:
{ popState(); return JetTokens.IDENTIFIER;
}
case 123: break;
case 124: break;
case 22:
{ return JetTokens.LBRACKET ;
}
case 124: break;
case 125: break;
case 67:
{ yypushback(2); return JetTokens.INTEGER_LITERAL;
}
case 125: break;
case 126: break;
case 10:
{ return JetTokens.CHARACTER_LITERAL;
}
case 126: break;
case 127: break;
case 74:
{ return JetTokens.VAR_KEYWORD ;
}
case 127: break;
case 128: break;
case 60:
{ return JetTokens.GTEQ ;
}
case 128: break;
case 129: break;
case 2:
{ return JetTokens.INTEGER_LITERAL;
}
case 129: break;
case 130: break;
case 13:
{ return JetTokens.RBRACE ;
}
case 130: break;
case 131: break;
case 87:
{ return JetTokens.CLASS_KEYWORD ;
}
case 131: break;
case 132: break;
case 15:
{ return JetTokens.EXCL ;
}
case 132: break;
case 133: break;
case 71:
{ return JetTokens.TRY_KEYWORD ;
}
case 133: break;
case 134: break;
case 54:
{ return JetTokens.EXCLEQ ;
}
case 134: break;
case 135: break;
case 45:
{ return JetTokens.MINUSEQ ;
}
case 135: break;
case 88:
case 136: break;
case 89:
{ return JetTokens.THROW_KEYWORD ;
}
case 136: break;
case 90:
case 137: break;
case 91:
{ return JetTokens.WHILE_KEYWORD ;
}
case 137: break;
case 138: break;
case 44:
{ return JetTokens.MINUSMINUS;
}
case 138: break;
case 94:
case 139: break;
case 95:
{ return JetTokens.CONTINUE_KEYWORD ;
}
case 139: break;
case 140: break;
case 77:
{ return JetTokens.NOT_IN;
}
case 140: break;
case 141: break;
case 38:
{ return JetTokens.ATAT ;
}
case 141: break;
case 142: break;
case 6:
{ return JetTokens.DIV ;
}
case 142: break;
case 143: break;
case 56:
{ return JetTokens.ELVIS ;
}
case 143: break;
case 144: break;
case 37:
{ return JetTokens.LABEL_IDENTIFIER;
}
case 144: break;
case 145: break;
case 29:
{ return JetTokens.REGULAR_STRING_PART;
}
case 145: break;
case 146: break;
case 16:
{ return JetTokens.QUEST ;
}
case 146: break;
case 147: break;
case 62:
{ return JetTokens.OROR ;
}
case 147: break;
case 148: break;
case 21:
{ return JetTokens.PERC ;
}
case 148: break;
case 149: break;
case 79:
{ return JetTokens.EXCLEQEQEQ;
}
case 149: break;
case 150: break;
case 63:
{ return JetTokens.PERCEQ ;
}
case 150: break;
case 151: break;
case 43:
{ return JetTokens.RANGE ;
}
case 151: break;
case 152: break;
case 1:
{ return TokenType.BAD_CHARACTER;
}
case 152: break;
case 153: break;
case 55:
{ return JetTokens.SAFE_ACCESS;
}
case 153: break;
case 95:
case 154: break;
case 96:
{ return JetTokens.NAMESPACE_KEYWORD ;
}
case 154: break;
case 155: break;
case 78:
{ return JetTokens.NOT_IS;
}
case 155: break;
case 156: break;
case 7:
{ return JetTokens.MUL ;
}
case 156: break;
case 157: break;
case 23:
{ return JetTokens.RBRACKET ;
}
case 157: break;
case 158: break;
case 58:
{ return JetTokens.PLUSPLUS ;
}
case 158: break;
case 159: break;
case 83:
{ return JetTokens.THIS_KEYWORD ;
}
case 159: break;
case 160: break;
case 8:
{ return JetTokens.DOT ;
}
case 160: break;
case 161: break;
case 26:
{ return JetTokens.SEMICOLON ;
}
case 161: break;
case 162: break;
case 50:
{ return JetTokens.IF_KEYWORD ;
}
case 162: break;
case 163: break;
case 66:
{ return JetTokens.ESCAPE_SEQUENCE;
}
case 163: break;
case 164: break;
case 31:
{ popState(); return JetTokens.CLOSING_QUOTE;
}
case 164: break;
case 165: break;
case 14:
{ return JetTokens.EQ ;
}
case 165: break;
case 166: break;
case 5:
{ return JetTokens.AT ;
}
case 166: break;
case 167: break;
case 70:
{ return JetTokens.AS_SAFE;
}
case 167: break;
case 168: break;
case 24:
{ return JetTokens.LPAR ;
}
case 168: break;
case 169: break;
case 9:
{ return JetTokens.MINUS ;
}
case 169: break;
case 91:
case 170: break;
case 92:
{ return JetTokens.FALSE_KEYWORD ;
}
case 170: break;
case 171: break;
case 84:
{ return JetTokens.TYPE_KEYWORD ;
}
case 171: break;
case 172: break;
case 73:
{ return JetTokens.FUN_KEYWORD ;
}
case 172: break;
case 173: break;
case 49:
{ return JetTokens.IS_KEYWORD ;
}
case 173: break;
case 174: break;
case 30:
{ popState(); yypushback(1); return JetTokens.DANGLING_NEWLINE;
}
case 174: break;
case 175: break;
case 33:
{ lBraceCount++; return JetTokens.LBRACE;
}
case 175: break;
case 176: break;
case 41:
{ return JetTokens.DIVEQ ;
}
case 176: break;
case 177: break;
case 81:
{ return JetTokens.ELSE_KEYWORD ;
}
case 177: break;
case 178: break;
case 47:
{ return JetTokens.AS_KEYWORD ;
}
case 178: break;
case 179: break;
case 48:
{ return JetTokens.IN_KEYWORD ;
}
case 179: break;
case 180: break;
case 52:
{ return JetTokens.EQEQ ;
}
case 180: break;
case 181: break;
case 76:
{ return JetTokens.EQEQEQ ;
}
case 181: break;
case 182: break;
case 75:
{ return JetTokens.VAL_KEYWORD ;
}
case 182: break;
case 183: break;
case 86:
{ return JetTokens.CAPITALIZED_THIS_KEYWORD ;
}
case 183: break;
case 184: break;
case 42:
{ return JetTokens.MULTEQ ;
}
case 184: break;
case 185: break;
case 64:
{ pushState(SHORT_TEMPLATE_ENTRY);
yypushback(yylength() - 1);
return JetTokens.SHORT_TEMPLATE_ENTRY_START;
}
case 185: break;
case 186: break;
case 12:
{ return JetTokens.LBRACE ;
}
case 186: break;
case 92:
case 187: break;
case 93:
{ return JetTokens.OBJECT_KEYWORD ;
}
case 187: break;
case 89:
case 188: break;
case 90:
{ return JetTokens.BREAK_KEYWORD ;
}
case 188: break;
case 189: break;
case 40:
{ return JetTokens.BLOCK_COMMENT;
}
case 189: break;
case 190: break;
case 88:
{ return JetTokens.TRAIT_KEYWORD ;
}
case 191: break;
case 28:
{ return JetTokens.HASH ;
}
case 190: break;
case 192: break;
default:
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
zzAtEOF = true;
@@ -54,12 +54,10 @@ public class JetPsiChecker implements Annotator {
if (reference instanceof MultiRangeReference) {
MultiRangeReference mrr = (MultiRangeReference) reference;
for (TextRange range : mrr.getRanges()) {
System.out.println("Unresolved1");
holder.createErrorAnnotation(range.shiftRight(referenceExpression.getTextOffset()), "Unresolved").setHighlightType(ProblemHighlightType.LIKE_UNKNOWN_SYMBOL);
}
}
else {
System.out.println("Unresolved2");
holder.createErrorAnnotation(referenceExpression, "Unresolved").setHighlightType(ProblemHighlightType.LIKE_UNKNOWN_SYMBOL);
}
}
@@ -80,8 +78,9 @@ public class JetPsiChecker implements Annotator {
PsiElement declarationPsiElement = bindingContext.get(BindingContext.DESCRIPTOR_TO_DECLARATION, redeclaration);
if (declarationPsiElement instanceof JetNamedDeclaration) {
PsiElement nameIdentifier = ((JetNamedDeclaration) declarationPsiElement).getNameIdentifier();
assert nameIdentifier != null : declarationPsiElement.getText() + " has nameIdentifier 'null'";
holder.createErrorAnnotation(nameIdentifier, "Redeclaration");
if (nameIdentifier != null) {
holder.createErrorAnnotation(nameIdentifier, "Redeclaration");
}
}
else if (declarationPsiElement != null) {
holder.createErrorAnnotation(declarationPsiElement, "Redeclaration");
@@ -100,8 +99,6 @@ public class JetPsiChecker implements Annotator {
};
if (errorReportingEnabled) {
System.out.println("Checked: " + bindingContext.getDiagnostics().size());
System.out.println(Thread.currentThread().getId());
AnalyzingUtils.applyHandler(errorHandler, bindingContext);
}
@@ -251,7 +251,7 @@ public class DescriptorRenderer {
@Override
public Void visitClassDescriptor(ClassDescriptor descriptor, StringBuilder builder) {
String keyword = descriptor.getKind() == ClassKind.TRAIT ? "trait class" : "class";
String keyword = descriptor.getKind() == ClassKind.TRAIT ? "trait" : "class";
renderClassDescriptor(descriptor, builder, keyword);
return super.visitClassDescriptor(descriptor, builder);
}
+1 -1
View File
@@ -14,7 +14,7 @@ abstract class MyAbstractClass() {
<error>abstract</error> fun j() {}
}
trait class MyTrait {
trait MyTrait {
fun f()
fun g() {}
<warning>abstract</warning> fun h()
+1 -1
View File
@@ -4,7 +4,7 @@ open class A() {
fun foo() : Int = 1
}
trait class B {
trait B {
fun bar() : Double = 1.0;
}
+1 -1
View File
@@ -1,6 +1,6 @@
namespace toplevelObjectDeclarations {
open class Foo(y : Int) {
virtual fun foo() : Int = 1
open fun foo() : Int = 1
}
class T : <error>Foo</error> {}
@@ -17,25 +17,25 @@ open class C2 {}
open class C3 {}
trait class T1 {}
trait T1 {}
trait class T2<T> {}
trait T2<T> {}
trait class Test<error>()</error> {
trait Test<error>()</error> {
<error>this</error>(x : Int) {}
}
trait class Test1 : C2<error>()</error> {}
trait Test1 : C2<error>()</error> {}
trait class Test2 : C2 {}
trait Test2 : C2 {}
trait class Test3 : C2, <error>C3</error> {}
trait Test3 : C2, <error>C3</error> {}
trait class Test4 : T1 {}
trait Test4 : T1 {}
trait class Test5 : T1, <error>T1</error> {}
trait Test5 : T1, <error>T1</error> {}
trait class Test6 : <error>C1</error> {}
trait Test6 : <error>C1</error> {}
class CTest1() : OC1() {}
+2 -2
View File
@@ -1,10 +1,10 @@
open class bar()
trait open class Foo<error>()</error> : bar<error>()</error>, <error>bar</error>, <error>bar</error> {
trait Foo<error>()</error> : bar<error>()</error>, <error>bar</error>, <error>bar</error> {
<error>this</error>(x : Int) {}
}
trait open class Foo2 : bar, Foo {
trait Foo2 : bar, Foo {
}
open class Foo1() : bar(), <error>bar</error>, Foo, <error>Foo</error><error>()</error> {}
@@ -4,7 +4,7 @@ fun box() {
}
open class A {
virtual fun foo() {}
open fun foo() {}
}
open class B : A {
+1 -1
View File
@@ -1,7 +1,7 @@
import java.lang.Integer
open class C {
virtual fun f(): Any = "C f"
open fun f(): Any = "C f"
}
class D() : C {
@@ -5,7 +5,7 @@ open class Base() {
}
open class Left() : Base() {}
trait class Right : Base {}
trait Right : Base {}
class D() : Left(), Right
@@ -2,7 +2,7 @@ open class Base() {
fun n(n : Int) : Int = n + 1
}
trait class Abstract {}
trait Abstract {}
class Derived1() : Base(), Abstract {}
class Derived2() : Abstract, Base() {}
@@ -1,7 +1,7 @@
// Changed when traits were introduced. May not make sense any more
open class X(val x : Int) {}
trait class Y {
trait Y {
abstract val y : Int
}
@@ -11,7 +11,7 @@ class Point(x : Int, yy : Int) : X(x) , Y {
override val y : Int = yy
}
trait class Abstract {}
trait Abstract {}
class P1(x : Int, yy : Y) : Abstract, X(x), Y by yy {}
class P2(x : Int, yy : Y) : X(x), Abstract, Y by yy {}
@@ -10,7 +10,7 @@ open class Base() {
}
}
trait class Abstract {}
trait Abstract {}
class Derived1() : Base(), Abstract {}
class Derived2() : Abstract, Base() {}
@@ -1,8 +1,8 @@
// Changed when traits were introduced. May not make sense any more
trait class Left {}
trait Left {}
open class Right() {
virtual fun f() = 42
open fun f() = 42
}
class D() : Left, Right() {
+6 -6
View File
@@ -1,12 +1,12 @@
namespace foo.bar.goo
abstract
virtual
open
enum
open
attribute
annotation
override
virtual
open
abstract
private
protected
@@ -19,15 +19,15 @@ in
out
ref
class Bar<abstract
virtual
open
[sdfsdf(1+1) a]
[sdfsdf(1+1)]
[a() sdfsdf(1+1)]
enum
open
attribute
annotation
override
virtual
open
abstract
[sdfsd sdfsd a.b.f.c]
private
+6 -6
View File
@@ -13,17 +13,17 @@ JetFile: Attributes.jet
MODIFIER_LIST
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiElement(enum)('enum')
PsiWhiteSpace('\n')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiElement(attribute)('attribute')
PsiElement(annotation)('annotation')
PsiWhiteSpace('\n')
PsiElement(override)('override')
PsiWhiteSpace('\n')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n')
@@ -163,7 +163,7 @@ JetFile: Attributes.jet
MODIFIER_LIST
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n')
ANNOTATION
PsiElement(LBRACKET)('[')
@@ -249,11 +249,11 @@ JetFile: Attributes.jet
PsiWhiteSpace('\n')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiElement(attribute)('attribute')
PsiElement(annotation)('annotation')
PsiWhiteSpace('\n')
PsiElement(override)('override')
PsiWhiteSpace('\n')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n')
+6 -6
View File
@@ -1,12 +1,12 @@
namespace foo.bar.goo
abstract
virtual
open
enum
open
attribute
annotation
override
virtual
open
abstract
[]
private
@@ -21,12 +21,12 @@ in
out
ref
class Bar<abstract
virtual
open
enum
open
attribute
annotation
override
virtual
open
abstract
[sdfsd sdfsd a.b.f.c]
private
+6 -6
View File
@@ -13,17 +13,17 @@ JetFile: Attributes_ERR.jet
MODIFIER_LIST
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiElement(enum)('enum')
PsiWhiteSpace('\n')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiElement(attribute)('attribute')
PsiElement(annotation)('annotation')
PsiWhiteSpace('\n')
PsiElement(override)('override')
PsiWhiteSpace('\n')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n')
@@ -199,17 +199,17 @@ JetFile: Attributes_ERR.jet
MODIFIER_LIST
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiElement(enum)('enum')
PsiWhiteSpace('\n')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiElement(attribute)('attribute')
PsiElement(annotation)('annotation')
PsiWhiteSpace('\n')
PsiElement(override)('override')
PsiWhiteSpace('\n')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n')
+9 -9
View File
@@ -1,12 +1,12 @@
namespace foo.bar.goo
abstract
virtual
open
enum
open
attribute
annotation
override
virtual
open
abstract
private
protected
@@ -16,12 +16,12 @@ in
out
ref
class Bar<abstract
virtual
open
enum
open
attribute
annotation
override
virtual
open
abstract
private
protected
@@ -31,12 +31,12 @@ ref
out
ref T> {
val abstract
val virtual
val open
val enum
val open
val attribute
val annotation
val override
val virtual
val open
val abstract
val private
val protected
+9 -9
View File
@@ -13,17 +13,17 @@ JetFile: SimpleModifiers.jet
MODIFIER_LIST
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiElement(enum)('enum')
PsiWhiteSpace('\n')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiElement(attribute)('attribute')
PsiElement(annotation)('annotation')
PsiWhiteSpace('\n')
PsiElement(override)('override')
PsiWhiteSpace('\n')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n')
@@ -50,17 +50,17 @@ JetFile: SimpleModifiers.jet
MODIFIER_LIST
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n ')
PsiElement(enum)('enum')
PsiWhiteSpace('\n ')
PsiElement(open)('open')
PsiWhiteSpace('\n ')
PsiElement(attribute)('attribute')
PsiElement(annotation)('annotation')
PsiWhiteSpace('\n ')
PsiElement(override)('override')
PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n ')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n ')
@@ -92,7 +92,7 @@ JetFile: SimpleModifiers.jet
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual')
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
@@ -107,7 +107,7 @@ JetFile: SimpleModifiers.jet
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('attribute')
PsiElement(IDENTIFIER)('annotation')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
@@ -117,7 +117,7 @@ JetFile: SimpleModifiers.jet
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual')
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
+26 -26
View File
@@ -4,12 +4,12 @@ import foo
public protected private internal
abstract
virtual
open
enum
open
attribute
annotation
override
virtual
open
abstract
private
protected
@@ -18,27 +18,27 @@ internal
in
out
ref
class Bar<abstract, abstract enum : T, out virtual,
class Bar<abstract, abstract enum : T, out open,
public protected private internal abstract
virtual
open
enum
open
attribute
annotation
override
virtual
open
abstract
private
protected
public
internal open
> wraps (a : B) : A by b {
> (a : B) : A by b {
public protected private internal val abstract
val virtual
val open
val enum
val open
val attribute
val annotation
val override
val virtual
val open
val abstract
val private
val protected
@@ -61,12 +61,12 @@ ref
public protected private internal
fun abstract () : abstract
fun virtual () : virtual
fun open () : open
fun enum () : enum
fun open () : open
fun attribute () : attribute
fun annotation () : annotation
fun override () : override
fun virtual () : virtual
fun open () : open
fun abstract () : abstract
fun private () : private
fun protected () : protected
@@ -86,12 +86,12 @@ ref
fun test(
abstract : t,
virtual : t,
open : t,
enum : t,
open : t,
attribute : t,
annotation : t,
override : t,
virtual : t,
open : t,
abstract : t,
private : t,
protected : t,
@@ -109,12 +109,12 @@ ref
protected : t,
internal : t,
public protected private internal abstract
virtual
open
enum
open
attribute
annotation
override
virtual
open
abstract
private
protected
@@ -128,12 +128,12 @@ ref
class F(val foo : bar,
abstract : t,
virtual : t,
open : t,
enum : t,
open : t,
attribute : t,
annotation : t,
override : t,
virtual : t,
open : t,
abstract : t,
private : t,
protected : t,
@@ -151,12 +151,12 @@ class F(val foo : bar,
protected : t,
internal : t,
public protected private internal abstract
virtual
open
enum
open
attribute
annotation
override
virtual
open
abstract
private
protected
+28 -30
View File
@@ -27,17 +27,17 @@ JetFile: SoftKeywords.jet
PsiWhiteSpace('\n')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiElement(enum)('enum')
PsiWhiteSpace('\n')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiElement(attribute)('attribute')
PsiElement(annotation)('annotation')
PsiWhiteSpace('\n')
PsiElement(override)('override')
PsiWhiteSpace('\n')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n')
@@ -82,7 +82,7 @@ JetFile: SoftKeywords.jet
MODIFIER_LIST
PsiElement(out)('out')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual')
PsiElement(IDENTIFIER)('open')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
TYPE_PARAMETER
@@ -97,17 +97,17 @@ JetFile: SoftKeywords.jet
PsiWhiteSpace(' ')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n ')
PsiElement(enum)('enum')
PsiWhiteSpace('\n ')
PsiElement(open)('open')
PsiWhiteSpace('\n ')
PsiElement(attribute)('attribute')
PsiElement(annotation)('annotation')
PsiWhiteSpace('\n ')
PsiElement(override)('override')
PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n ')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n ')
@@ -123,8 +123,6 @@ JetFile: SoftKeywords.jet
PsiWhiteSpace('\n ')
PsiElement(GT)('>')
PsiWhiteSpace(' ')
PsiElement(wraps)('wraps')
PsiWhiteSpace(' ')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
VALUE_PARAMETER
@@ -172,7 +170,7 @@ JetFile: SoftKeywords.jet
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual')
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
@@ -187,7 +185,7 @@ JetFile: SoftKeywords.jet
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('attribute')
PsiElement(IDENTIFIER)('annotation')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
@@ -197,7 +195,7 @@ JetFile: SoftKeywords.jet
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual')
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
@@ -336,7 +334,7 @@ JetFile: SoftKeywords.jet
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual')
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace(' ')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
@@ -347,7 +345,7 @@ JetFile: SoftKeywords.jet
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('virtual')
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
@@ -384,7 +382,7 @@ JetFile: SoftKeywords.jet
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('attribute')
PsiElement(IDENTIFIER)('annotation')
PsiWhiteSpace(' ')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
@@ -395,7 +393,7 @@ JetFile: SoftKeywords.jet
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('attribute')
PsiElement(IDENTIFIER)('annotation')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
@@ -416,7 +414,7 @@ JetFile: SoftKeywords.jet
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual')
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace(' ')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
@@ -427,7 +425,7 @@ JetFile: SoftKeywords.jet
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('virtual')
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
@@ -704,7 +702,7 @@ JetFile: SoftKeywords.jet
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('virtual')
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
@@ -737,7 +735,7 @@ JetFile: SoftKeywords.jet
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('attribute')
PsiElement(IDENTIFIER)('annotation')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
@@ -759,7 +757,7 @@ JetFile: SoftKeywords.jet
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('virtual')
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
@@ -957,17 +955,17 @@ JetFile: SoftKeywords.jet
PsiWhiteSpace(' ')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n ')
PsiElement(enum)('enum')
PsiWhiteSpace('\n ')
PsiElement(open)('open')
PsiWhiteSpace('\n ')
PsiElement(attribute)('attribute')
PsiElement(annotation)('annotation')
PsiWhiteSpace('\n ')
PsiElement(override)('override')
PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n ')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n ')
@@ -1025,7 +1023,7 @@ JetFile: SoftKeywords.jet
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('virtual')
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
@@ -1058,7 +1056,7 @@ JetFile: SoftKeywords.jet
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('attribute')
PsiElement(IDENTIFIER)('annotation')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
@@ -1080,7 +1078,7 @@ JetFile: SoftKeywords.jet
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('virtual')
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
@@ -1278,17 +1276,17 @@ JetFile: SoftKeywords.jet
PsiWhiteSpace(' ')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n ')
PsiElement(enum)('enum')
PsiWhiteSpace('\n ')
PsiElement(open)('open')
PsiWhiteSpace('\n ')
PsiElement(attribute)('attribute')
PsiElement(annotation)('annotation')
PsiWhiteSpace('\n ')
PsiElement(override)('override')
PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace('\n ')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n ')
+1 -1
View File
@@ -21,7 +21,7 @@ fun countOnes(x : INumber) = if (x == 0) 0 else mostSignificantBit(x) + countOne
fun Int.matchMask(mask : Int) = this and mask == mask
virtual class INumber : IComparable<This> {
open class INumber : IComparable<This> {
val bits : Int
[operator] fun plus(other : This) : This
[operator] fun shl(bits : Int) : This
+1 -1
View File
@@ -515,7 +515,7 @@ JetFile: BitArith.jet
PsiWhiteSpace('\n\n')
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
+1 -1
View File
@@ -1,4 +1,4 @@
virtual class IPushPop<T> {
open class IPushPop<T> {
val isEmpty : Boolean
fun push(item : T)
fun pop() : T
+1 -1
View File
@@ -2,7 +2,7 @@ JetFile: IPushPop.jet
NAMESPACE
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -1,9 +1,9 @@
virtual class Builder<E, R> {
open class Builder<E, R> {
[operator] fun plusAssign(item : E)
fun result() : R
}
virtual class Buildable {
open class Buildable {
fun newBuilder<E, R>() : Builder<E, R>
}
@@ -2,7 +2,7 @@ JetFile: PolymorphicClassObjects.jet
NAMESPACE
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -67,7 +67,7 @@ JetFile: PolymorphicClassObjects.jet
PsiWhiteSpace('\n\n')
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -2,11 +2,11 @@
These declarations are "shallow" in the sense that they are not really compiled, only the type-checker uses them
*/
virtual class ReadOnlyArray<out T> : ISized {
open class ReadOnlyArray<out T> : ISized {
[operator] fun get(index : Int) : T
}
virtual class WriteOnlyArray<in T> : ISized { // This is needed to keep IIterator's <T> covariant
open class WriteOnlyArray<in T> : ISized { // This is needed to keep IIterator's <T> covariant
[operator] fun set(index : Int, value : T)
}
@@ -4,7 +4,7 @@ JetFile: MutableArray.jet
NAMESPACE
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -69,7 +69,7 @@ JetFile: MutableArray.jet
PsiWhiteSpace('\n\n')
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -1,27 +1,27 @@
virtual class IEquality {
open class IEquality {
fun equals(other : Any) : Boolean
= (this as java.lang.Object).equals(other as java.lang.Object)
}
virtual class IHashable : IEquality {
open class IHashable : IEquality {
val hashCode : Integer
get() = (this as java.lang.Object).hashCode()
}
virtual class IMap<K, V> {
open class IMap<K, V> {
fun get(key : K) : V
fun set(key : K, value : V) : V
fun remove(key : K) : V
fun containsKey(key : K) : Boolean
}
class HashableWrapper wraps (val obj : Any) : IHashable
class HashableWrapper(val obj : Any) : IHashable
// equals and hashCode implementations are inherited
[inline] fun Any.hashable() : HashableWrapper = HashableWrapper(this)
virtual class IHashingStrategy<K> {
open class IHashingStrategy<K> {
fun equals(a : K, b : K) : Boolean
fun hashCode(a : K) : Integer
}
@@ -2,7 +2,7 @@ JetFile: HashMap.jet
NAMESPACE
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -95,7 +95,7 @@ JetFile: HashMap.jet
PsiWhiteSpace('\n\n')
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -170,7 +170,7 @@ JetFile: HashMap.jet
PsiWhiteSpace('\n\n')
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -301,11 +301,8 @@ JetFile: HashMap.jet
PsiElement(class)('class')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('HashableWrapper')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(wraps)('wraps')
PsiWhiteSpace(' ')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
VALUE_PARAMETER
@@ -378,7 +375,7 @@ JetFile: HashMap.jet
PsiWhiteSpace('\n\n')
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -1,3 +1,3 @@
virtual class IIterable<out T> {
open class IIterable<out T> {
fun iterator() : IIterator<T>
}
@@ -2,7 +2,7 @@ JetFile: IIterable.jet
NAMESPACE
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -1,4 +1,4 @@
virtual class IIterator<out T> {
open class IIterator<out T> {
fun next() : T
val hasNext : Boolean
@@ -2,7 +2,7 @@ JetFile: IIterator.jet
NAMESPACE
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -1,4 +1,4 @@
virtual class IList<out T> : IIterable<T>, ISized {
open class IList<out T> : IIterable<T>, ISized {
[operator] fun get(index : Int) : T
val isEmpty : Boolean
}
@@ -2,7 +2,7 @@ JetFile: IList.jet
NAMESPACE
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -1,3 +1,3 @@
virtual class IMutableIterable<out T> : IIterable<T> {
open class IMutableIterable<out T> : IIterable<T> {
fun mutableIterator() : IMutableIterator<T>
}
@@ -2,7 +2,7 @@ JetFile: IMutableIterable.jet
NAMESPACE
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -1,4 +1,4 @@
virtual class IMutableIterator<out T> : IIterator<T> {
open class IMutableIterator<out T> : IIterator<T> {
fun remove() : T
/*
@@ -2,7 +2,7 @@ JetFile: IMutableIterator.jet
NAMESPACE
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -1,4 +1,4 @@
virtual class IMutableList<T> : IList<T>, IMutableIterable<T> {
open class IMutableList<T> : IList<T>, IMutableIterable<T> {
fun set(index : Int, value : T) : T
fun add(index : Int, value : T)
fun remove(index : Int) : T
@@ -2,7 +2,7 @@ JetFile: IMutableList.jet
NAMESPACE
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -1,4 +1,4 @@
virtual class IMutableSet<T> : ISet<T>, IMutableIterable<T> {
open class IMutableSet<T> : ISet<T>, IMutableIterable<T> {
fun add(item : T) : Boolean
fun remove(item : T) : Boolean
}
@@ -2,7 +2,7 @@ JetFile: IMutableSet.jet
NAMESPACE
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -1,3 +1,3 @@
virtual class ISet<T> : IIterable<T>, ISized {
open class ISet<T> : IIterable<T>, ISized {
fun contains(item : T) : Boolean
}
@@ -2,7 +2,7 @@ JetFile: ISet.jet
NAMESPACE
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -1,3 +1,3 @@
virtual class ISized {
open class ISized {
val size : Int
}
@@ -2,7 +2,7 @@ JetFile: ISized.jet
NAMESPACE
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
+2 -2
View File
@@ -1,8 +1,8 @@
virtual class IAdder<in T> {
open class IAdder<in T> {
fun add(item : T) : Boolean
}
virtual class ICloseable {
open class ICloseable {
fun close()
}
+2 -2
View File
@@ -2,7 +2,7 @@ JetFile: IOSamples.jet
NAMESPACE
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -47,7 +47,7 @@ JetFile: IOSamples.jet
PsiWhiteSpace('\n\n')
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
+1 -1
View File
@@ -1,4 +1,4 @@
virtual class IMap<in K, out V> {
open class IMap<in K, out V> {
}
+1 -1
View File
@@ -2,7 +2,7 @@ JetFile: IMap.jet
NAMESPACE
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -1,4 +1,4 @@
virtual class IPriorityQueue<T> {
open class IPriorityQueue<T> {
fun extract() : T
fun add(item : T)
val isEmpty : Boolean
@@ -2,7 +2,7 @@ JetFile: IPriorityQueue.jet
NAMESPACE
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -1,4 +1,4 @@
class PriorityQueueAsPushPop<T> wraps(wrapped : IPriorityQueue<T>) : IPushPop<T> {
class PriorityQueueAsPushPop<T>(wrapped : IPriorityQueue<T>) : IPushPop<T> {
override fun pop() = wrapped.extract()
override fun push(item : T) = wrapped.add(item)
override val isEmpty
@@ -9,8 +9,6 @@ JetFile: PriorityQueueAsPushPop.jet
TYPE_PARAMETER
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiWhiteSpace(' ')
PsiElement(wraps)('wraps')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
VALUE_PARAMETER
@@ -1,3 +1,3 @@
virtual class IComparable<in T> {
open class IComparable<in T> {
fun compareTo(other : T) : Int
}
@@ -2,7 +2,7 @@ JetFile: IComparable.jet
NAMESPACE
CLASS
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiElement(open)('open')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
@@ -12,11 +12,11 @@ val {foo.bar.() : ()}.foo = foo
val {foo.bar.() : ()}.foo : bar = foo
[a] public get() {}
virtual set(a : b) {}
open set(a : b) {}
val {foo.bar.() : ()}.foo : bar = foo
virtual set(a : b) {}
open set(a : b) {}
val {foo.bar.() : ()}.foo : bar = foo
+1 -1
View File
@@ -1,6 +1,6 @@
namespace toplevelObjectDeclarations {
class Foo(y : Int) {
~foo()~virtual fun foo() : Int = 1
~foo()~open fun foo() : Int = 1
}
object ~A~A : Foo(0) {