remove support for 'trait' keyword

This commit is contained in:
Dmitry Jemerov
2015-09-18 16:17:02 +02:00
parent 86833c1a74
commit 4ca434da54
217 changed files with 705 additions and 821 deletions
@@ -149,7 +149,6 @@ public interface Errors {
DiagnosticFactory0<JetDelegatorToSuperClass> SUPERTYPE_NOT_INITIALIZED = DiagnosticFactory0.create(ERROR);
DiagnosticFactory0<PsiElement> DEPRECATED_TRAIT_KEYWORD = DiagnosticFactory0.create(WARNING);
DiagnosticFactory0<JetTypeReference> DELEGATION_NOT_TO_TRAIT = DiagnosticFactory0.create(ERROR);
DiagnosticFactory0<JetTypeReference> SUPERTYPE_NOT_A_CLASS_OR_TRAIT = DiagnosticFactory0.create(ERROR);
@@ -280,7 +280,6 @@ public class DefaultErrorMessages {
MAP.put(DELEGATION_IN_TRAIT, "Interfaces cannot use delegation");
MAP.put(DELEGATION_NOT_TO_TRAIT, "Only interfaces can be delegated to");
MAP.put(DEPRECATED_TRAIT_KEYWORD, "'trait' keyword is deprecated, use 'interface' instead");
MAP.put(NO_CONSTRUCTOR, "This class does not have a constructor");
MAP.put(NOT_A_CLASS, "Not a class");
MAP.put(ILLEGAL_ESCAPE_SEQUENCE, "Illegal escape sequence");
@@ -72,7 +72,6 @@ public interface JetTokens {
JetKeywordToken WHILE_KEYWORD = JetKeywordToken.keyword("while");
JetKeywordToken DO_KEYWORD = JetKeywordToken.keyword("do");
JetKeywordToken WHEN_KEYWORD = JetKeywordToken.keyword("when");
JetKeywordToken TRAIT_KEYWORD = JetKeywordToken.keyword("trait");
JetKeywordToken INTERFACE_KEYWORD = JetKeywordToken.keyword("interface");
// TODO: Discuss "This" keyword
JetKeywordToken CAPITALIZED_THIS_KEYWORD = JetKeywordToken.keyword("This");
@@ -178,7 +177,7 @@ public interface JetTokens {
JetModifierKeywordToken ANNOTATION_KEYWORD = JetModifierKeywordToken.softKeywordModifier("annotation");
JetModifierKeywordToken CROSSINLINE_KEYWORD = JetModifierKeywordToken.softKeywordModifier("crossinline");
TokenSet KEYWORDS = TokenSet.create(PACKAGE_KEYWORD, AS_KEYWORD, TYPE_ALIAS_KEYWORD, CLASS_KEYWORD, TRAIT_KEYWORD, INTERFACE_KEYWORD,
TokenSet KEYWORDS = TokenSet.create(PACKAGE_KEYWORD, AS_KEYWORD, TYPE_ALIAS_KEYWORD, CLASS_KEYWORD, INTERFACE_KEYWORD,
THIS_KEYWORD, SUPER_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, FOR_KEYWORD,
NULL_KEYWORD,
TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD,
@@ -249,7 +249,6 @@ LONG_TEMPLATE_ENTRY_START=\$\{
"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 ;}
"super" { return JetTokens.SUPER_KEYWORD ;}
@@ -1,4 +1,4 @@
/* The following code was generated by JFlex 1.4.3 on 4/29/15 4:44 PM */
/* The following code was generated by JFlex 1.4.3 on 9/18/15 3:17 PM */
package org.jetbrains.kotlin.lexer;
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.lexer.JetTokens;
/**
* This class is a scanner generated by
* <a href="http://www.jflex.de/">JFlex</a> 1.4.3
* on 4/29/15 4:44 PM from the specification file
* on 9/18/15 3:17 PM from the specification file
* <tt>/Users/yole/jetbrains/kotlin/compiler/frontend/src/org/jetbrains/kotlin/lexer/Kotlin.flex</tt>
*/
class _JetLexer implements FlexLexer {
@@ -136,17 +136,16 @@ class _JetLexer implements FlexLexer {
"\1\70\1\71\1\72\1\73\1\74\1\75\1\76\1\77"+
"\1\0\1\100\2\101\2\0\1\40\1\102\1\103\1\0"+
"\1\104\1\44\1\3\1\0\1\105\1\106\1\107\1\110"+
"\1\0\1\2\2\0\1\111\4\3\1\112\5\3\1\113"+
"\1\0\1\2\2\0\1\111\4\3\1\112\4\3\1\113"+
"\2\3\1\114\1\3\1\115\7\3\1\116\1\117\1\120"+
"\2\0\1\121\2\40\1\45\1\122\1\123\2\44\1\0"+
"\1\124\2\3\1\125\4\3\1\126\1\127\7\3\1\130"+
"\1\131\1\77\1\0\1\132\1\133\1\3\1\134\1\3"+
"\1\135\2\3\1\136\1\137\2\3\1\140\1\141\1\0"+
"\3\3\1\142\1\3\1\143\2\3\1\144\3\3\1\145"+
"\1\146\1\147";
"\1\124\2\3\1\125\3\3\1\126\1\127\7\3\1\130"+
"\1\131\1\77\1\0\1\132\1\133\2\3\1\134\2\3"+
"\1\135\1\136\2\3\1\137\1\140\1\0\3\3\1\141"+
"\1\3\1\142\2\3\1\143\3\3\1\144\1\145\1\146";
private static int [] zzUnpackAction() {
int [] result = new int[240];
int [] result = new int[237];
int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
return result;
@@ -191,19 +190,19 @@ class _JetLexer implements FlexLexer {
"\0\u018c\0\u018c\0\u1944\0\u018c\0\u1986\0\u018c\0\u19c8\0\u1a0a"+
"\0\u1a4c\0\u1a4c\0\u018c\0\u1a8e\0\u1ad0\0\u1b12\0\u1b54\0\u018c"+
"\0\u1b96\0\u1bd8\0\u1c1a\0\u1c5c\0\u0210\0\u1c9e\0\u1ce0\0\u1d22"+
"\0\u1d64\0\u1da6\0\u018c\0\u1de8\0\u1e2a\0\u0210\0\u1e6c\0\u0210"+
"\0\u1eae\0\u1ef0\0\u1f32\0\u1f74\0\u1fb6\0\u1ff8\0\u203a\0\u0210"+
"\0\u0210\0\u018c\0\u207c\0\u20be\0\u187e\0\u018c\0\u2100\0\u018c"+
"\0\u018c\0\u018c\0\u2142\0\u2184\0\u2184\0\u0210\0\u21c6\0\u2208"+
"\0\u0210\0\u224a\0\u228c\0\u22ce\0\u2310\0\u0210\0\u0210\0\u2352"+
"\0\u2394\0\u23d6\0\u2418\0\u245a\0\u249c\0\u24de\0\u0210\0\u0210"+
"\0\u018c\0\u2520\0\u0ca2\0\u0210\0\u2562\0\u0210\0\u25a4\0\u0210"+
"\0\u25e6\0\u2628\0\u0210\0\u0210\0\u266a\0\u26ac\0\u0210\0\u0210"+
"\0\u26ee\0\u2730\0\u2772\0\u27b4\0\u0210\0\u27f6\0\u0210\0\u2838"+
"\0\u287a\0\u0210\0\u28bc\0\u28fe\0\u2940\0\u0210\0\u0210\0\u0210";
"\0\u1d64\0\u018c\0\u1da6\0\u1de8\0\u0210\0\u1e2a\0\u0210\0\u1e6c"+
"\0\u1eae\0\u1ef0\0\u1f32\0\u1f74\0\u1fb6\0\u1ff8\0\u0210\0\u0210"+
"\0\u018c\0\u203a\0\u207c\0\u187e\0\u018c\0\u20be\0\u018c\0\u018c"+
"\0\u018c\0\u2100\0\u2142\0\u2142\0\u0210\0\u2184\0\u21c6\0\u0210"+
"\0\u2208\0\u224a\0\u228c\0\u0210\0\u0210\0\u22ce\0\u2310\0\u2352"+
"\0\u2394\0\u23d6\0\u2418\0\u245a\0\u0210\0\u0210\0\u018c\0\u249c"+
"\0\u0ca2\0\u0210\0\u24de\0\u2520\0\u0210\0\u2562\0\u25a4\0\u0210"+
"\0\u0210\0\u25e6\0\u2628\0\u0210\0\u0210\0\u266a\0\u26ac\0\u26ee"+
"\0\u2730\0\u0210\0\u2772\0\u0210\0\u27b4\0\u27f6\0\u0210\0\u2838"+
"\0\u287a\0\u28bc\0\u0210\0\u0210\0\u0210";
private static int [] zzUnpackRowMap() {
int [] result = new int[240];
int [] result = new int[237];
int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
return result;
@@ -330,181 +329,177 @@ class _JetLexer implements FlexLexer {
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
"\2\0\4\11\2\0\1\11\1\233\20\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
"\2\0\1\234\2\0\4\11\2\0\1\235\2\11\1\236"+
"\16\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+
"\2\11\1\0\1\11\2\0\1\11\2\0\1\237\3\11"+
"\2\0\1\234\2\0\4\11\2\0\1\235\21\11\21\0"+
"\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
"\1\11\2\0\1\11\2\0\1\236\3\11\2\0\22\11"+
"\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
"\1\0\1\11\2\0\1\11\2\0\4\11\2\0\1\11"+
"\1\237\20\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\2\11\1\0\1\11\2\0\1\11\2\0\4\11"+
"\2\0\10\11\1\240\11\11\21\0\2\11\1\0\2\11"+
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
"\2\0\3\11\1\241\2\0\22\11\21\0\2\11\1\0"+
"\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
"\1\11\2\0\4\11\2\0\22\11\1\0\1\242\17\0"+
"\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
"\1\11\2\0\1\11\2\0\4\11\2\0\4\11\1\243"+
"\15\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+
"\2\11\1\0\1\11\2\0\1\11\2\0\1\244\3\11"+
"\2\0\22\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\2\11\1\0\1\11\2\0\1\11\2\0\4\11"+
"\2\0\1\11\1\240\20\11\21\0\2\11\1\0\2\11"+
"\2\0\5\11\1\245\14\11\21\0\2\11\1\0\2\11"+
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
"\2\0\4\11\2\0\10\11\1\241\11\11\21\0\2\11"+
"\2\0\4\11\2\0\4\11\1\246\15\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
"\2\0\1\11\2\0\3\11\1\242\2\0\22\11\21\0"+
"\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
"\1\11\2\0\1\11\2\0\4\11\2\0\22\11\1\0"+
"\1\243\17\0\2\11\1\0\2\11\6\0\4\11\1\0"+
"\2\11\1\0\1\11\2\0\1\11\2\0\4\11\2\0"+
"\4\11\1\244\15\11\21\0\2\11\1\0\2\11\6\0"+
"\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
"\1\245\3\11\2\0\22\11\21\0\2\11\1\0\2\11"+
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
"\2\0\4\11\2\0\5\11\1\246\14\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
"\2\0\1\11\2\0\4\11\2\0\4\11\1\247\15\11"+
"\2\0\1\11\2\0\4\11\2\0\6\11\1\247\13\11"+
"\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
"\1\0\1\11\2\0\1\11\2\0\4\11\2\0\6\11"+
"\1\250\13\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\1\11\2\0\1\11\2\0\4\11\2\0\3\11"+
"\1\250\16\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\2\11\1\0\1\11\2\0\1\11\2\0\4\11"+
"\2\0\3\11\1\251\16\11\21\0\2\11\1\0\2\11"+
"\2\0\5\11\1\251\14\11\21\0\2\11\1\0\2\11"+
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
"\2\0\4\11\2\0\5\11\1\252\14\11\21\0\2\11"+
"\2\0\4\11\2\0\15\11\1\252\4\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
"\2\0\1\11\2\0\4\11\2\0\15\11\1\253\4\11"+
"\2\0\1\11\2\0\4\11\2\0\2\11\1\253\17\11"+
"\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
"\1\0\1\11\2\0\1\11\2\0\2\11\1\254\1\11"+
"\2\0\2\11\1\255\17\11\21\0\2\11\1\0\2\11"+
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
"\2\0\2\11\1\256\1\11\2\0\22\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
"\2\0\1\11\2\0\4\11\2\0\4\11\1\257\1\11"+
"\1\260\13\11\102\0\1\261\20\0\2\201\1\0\2\201"+
"\6\0\4\201\1\0\2\201\1\0\1\201\2\0\1\201"+
"\2\0\4\201\2\0\22\201\20\0\6\262\2\0\72\262"+
"\1\0\2\263\11\0\1\263\1\0\1\263\2\0\2\263"+
"\17\0\2\263\3\0\2\263\3\0\1\263\4\0\1\263"+
"\50\0\1\264\51\0\6\207\1\265\1\0\72\207\1\0"+
"\2\77\1\0\2\77\6\0\4\77\1\0\2\77\1\0"+
"\1\77\2\0\1\77\2\0\2\77\1\266\1\77\2\0"+
"\22\77\40\0\1\214\62\0\1\215\12\0\1\215\4\0"+
"\1\111\25\0\1\111\32\0\6\217\1\267\1\0\72\217"+
"\11\0\1\270\71\0\2\271\1\0\2\271\6\0\4\271"+
"\1\0\2\271\1\0\1\271\2\0\1\271\2\0\4\271"+
"\2\0\22\271\21\0\1\127\12\0\1\127\105\0\1\213"+
"\3\0\1\227\14\0\1\227\41\0\2\272\11\0\1\272"+
"\1\0\1\272\1\0\1\214\2\272\17\0\2\272\3\0"+
"\2\272\3\0\1\272\4\0\1\272\21\0\1\273\12\0"+
"\1\273\6\0\1\274\40\0\1\274\16\0\2\11\1\0"+
"\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
"\1\11\2\0\3\11\1\275\2\0\22\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
"\2\0\1\11\2\0\4\11\2\0\11\11\1\276\10\11"+
"\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
"\1\0\1\11\2\0\1\11\2\0\4\11\2\0\2\11"+
"\1\254\17\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\2\11\1\0\1\11\2\0\1\11\2\0\2\11"+
"\1\255\1\11\2\0\2\11\1\256\17\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
"\2\0\1\11\2\0\2\11\1\257\1\11\2\0\22\11"+
"\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
"\1\0\1\11\2\0\1\11\2\0\4\11\2\0\4\11"+
"\1\260\1\11\1\261\13\11\102\0\1\262\20\0\2\201"+
"\1\0\2\201\6\0\4\201\1\0\2\201\1\0\1\201"+
"\2\0\1\201\2\0\4\201\2\0\22\201\20\0\6\263"+
"\2\0\72\263\1\0\2\264\11\0\1\264\1\0\1\264"+
"\2\0\2\264\17\0\2\264\3\0\2\264\3\0\1\264"+
"\4\0\1\264\50\0\1\265\51\0\6\207\1\266\1\0"+
"\72\207\1\0\2\77\1\0\2\77\6\0\4\77\1\0"+
"\2\77\1\0\1\77\2\0\1\77\2\0\2\77\1\267"+
"\1\77\2\0\22\77\40\0\1\214\62\0\1\215\12\0"+
"\1\215\4\0\1\111\25\0\1\111\32\0\6\217\1\270"+
"\1\0\72\217\11\0\1\271\71\0\2\272\1\0\2\272"+
"\6\0\4\272\1\0\2\272\1\0\1\272\2\0\1\272"+
"\2\0\4\272\2\0\22\272\21\0\1\127\12\0\1\127"+
"\105\0\1\213\3\0\1\227\14\0\1\227\41\0\2\273"+
"\11\0\1\273\1\0\1\273\1\0\1\214\2\273\17\0"+
"\2\273\3\0\2\273\3\0\1\273\4\0\1\273\21\0"+
"\1\274\12\0\1\274\6\0\1\275\40\0\1\275\16\0"+
"\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
"\1\11\2\0\1\11\2\0\3\11\1\276\2\0\22\11"+
"\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
"\1\0\1\11\2\0\1\11\2\0\4\11\2\0\11\11"+
"\1\277\10\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\277\17\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\2\11\1\0\1\11\2\0\1\11\2\0\4\11"+
"\2\0\2\11\1\300\17\11\21\0\2\11\1\0\2\11"+
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
"\2\0\4\11\2\0\2\11\1\301\17\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
"\2\0\1\11\2\0\2\11\1\302\1\11\2\0\22\11"+
"\2\0\1\11\2\0\4\11\2\0\2\11\1\302\17\11"+
"\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
"\1\0\1\11\2\0\1\11\2\0\4\11\2\0\2\11"+
"\1\303\17\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\1\11\2\0\1\11\2\0\4\11\2\0\12\11"+
"\1\303\7\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\2\11\1\0\1\11\2\0\1\11\2\0\4\11"+
"\2\0\2\11\1\304\17\11\21\0\2\11\1\0\2\11"+
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
"\2\0\4\11\2\0\12\11\1\305\7\11\21\0\2\11"+
"\2\0\4\11\2\0\4\11\1\305\15\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
"\2\0\1\11\2\0\4\11\2\0\2\11\1\306\17\11"+
"\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
"\1\0\1\11\2\0\1\11\2\0\4\11\2\0\4\11"+
"\1\307\15\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\2\11\1\0\1\11\2\0\1\310\2\0\4\11"+
"\2\0\22\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\2\11\1\0\1\11\2\0\1\11\2\0\3\11"+
"\1\311\2\0\22\11\21\0\2\11\1\0\2\11\6\0"+
"\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
"\3\11\1\312\2\0\22\11\21\0\2\11\1\0\2\11"+
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
"\2\0\1\313\3\11\2\0\22\11\21\0\2\11\1\0"+
"\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
"\1\11\2\0\4\11\2\0\2\11\1\314\17\11\21\0"+
"\2\0\1\306\2\0\4\11\2\0\22\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
"\2\0\1\11\2\0\3\11\1\307\2\0\22\11\21\0"+
"\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
"\1\11\2\0\1\11\2\0\4\11\2\0\3\11\1\315"+
"\1\11\2\0\1\11\2\0\3\11\1\310\2\0\22\11"+
"\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
"\1\0\1\11\2\0\1\11\2\0\1\311\3\11\2\0"+
"\22\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+
"\2\11\1\0\1\11\2\0\1\11\2\0\4\11\2\0"+
"\2\11\1\312\17\11\21\0\2\11\1\0\2\11\6\0"+
"\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
"\4\11\2\0\3\11\1\313\16\11\21\0\2\11\1\0"+
"\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
"\1\11\2\0\4\11\2\0\4\11\1\314\15\11\21\0"+
"\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
"\1\11\2\0\1\11\2\0\4\11\2\0\5\11\1\315"+
"\14\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+
"\2\11\1\0\1\11\2\0\1\11\2\0\3\11\1\316"+
"\2\0\22\11\20\0\6\262\1\317\1\0\72\262\1\0"+
"\2\320\11\0\1\320\1\0\1\320\2\0\2\320\17\0"+
"\2\320\3\0\2\320\3\0\1\320\4\0\1\320\21\0"+
"\2\77\1\0\2\77\6\0\4\77\1\0\2\77\1\0"+
"\1\77\2\0\1\77\2\0\3\77\1\321\2\0\22\77"+
"\21\0\2\272\11\0\1\272\1\0\1\272\2\0\2\272"+
"\1\0\1\227\14\0\1\227\2\272\3\0\2\272\3\0"+
"\1\272\4\0\1\272\21\0\1\273\12\0\1\273\66\0"+
"\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
"\1\11\2\0\1\11\2\0\4\11\2\0\16\11\1\322"+
"\3\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+
"\2\11\1\0\1\11\2\0\1\11\2\0\4\11\2\0"+
"\3\11\1\323\16\11\21\0\2\11\1\0\2\11\6\0"+
"\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
"\4\11\2\0\6\11\1\324\13\11\21\0\2\11\1\0"+
"\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
"\1\11\2\0\4\11\2\0\6\11\1\325\13\11\21\0"+
"\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
"\1\11\2\0\1\11\2\0\4\11\2\0\3\11\1\326"+
"\16\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+
"\2\11\1\0\1\11\2\0\1\11\2\0\4\11\2\0"+
"\4\11\1\316\15\11\21\0\2\11\1\0\2\11\6\0"+
"\6\11\1\327\13\11\21\0\2\11\1\0\2\11\6\0"+
"\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
"\4\11\2\0\5\11\1\317\14\11\21\0\2\11\1\0"+
"\4\11\2\0\2\11\1\330\17\11\21\0\2\11\1\0"+
"\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
"\1\11\2\0\3\11\1\320\2\0\22\11\20\0\6\263"+
"\1\321\1\0\72\263\1\0\2\322\11\0\1\322\1\0"+
"\1\322\2\0\2\322\17\0\2\322\3\0\2\322\3\0"+
"\1\322\4\0\1\322\21\0\2\77\1\0\2\77\6\0"+
"\4\77\1\0\2\77\1\0\1\77\2\0\1\77\2\0"+
"\3\77\1\323\2\0\22\77\21\0\2\273\11\0\1\273"+
"\1\0\1\273\2\0\2\273\1\0\1\227\14\0\1\227"+
"\2\273\3\0\2\273\3\0\1\273\4\0\1\273\21\0"+
"\1\274\12\0\1\274\66\0\2\11\1\0\2\11\6\0"+
"\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
"\4\11\2\0\16\11\1\324\3\11\21\0\2\11\1\0"+
"\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
"\1\11\2\0\4\11\2\0\3\11\1\325\16\11\21\0"+
"\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
"\1\11\2\0\1\11\2\0\1\326\3\11\2\0\22\11"+
"\1\11\2\0\3\11\1\331\2\0\22\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
"\2\0\1\11\2\0\2\11\1\332\1\11\2\0\22\11"+
"\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
"\1\0\1\11\2\0\1\11\2\0\4\11\2\0\6\11"+
"\1\327\13\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\1\11\2\0\1\11\2\0\4\11\2\0\10\11"+
"\1\333\11\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\2\11\1\0\1\11\2\0\1\11\2\0\4\11"+
"\2\0\6\11\1\330\13\11\21\0\2\11\1\0\2\11"+
"\2\0\12\11\1\334\7\11\21\0\2\11\1\0\2\11"+
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
"\2\0\4\11\2\0\3\11\1\331\16\11\21\0\2\11"+
"\2\0\4\11\2\0\2\11\1\335\17\11\21\0\2\336"+
"\11\0\1\336\1\0\1\336\2\0\2\336\17\0\2\336"+
"\3\0\2\336\3\0\1\336\4\0\1\336\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
"\2\0\1\11\2\0\4\11\2\0\6\11\1\332\13\11"+
"\2\0\1\11\2\0\4\11\2\0\4\11\1\337\15\11"+
"\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
"\1\0\1\11\2\0\1\11\2\0\4\11\2\0\2\11"+
"\1\333\17\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\2\11\1\0\1\11\2\0\1\11\2\0\3\11"+
"\1\334\2\0\22\11\21\0\2\11\1\0\2\11\6\0"+
"\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
"\2\11\1\335\1\11\2\0\22\11\21\0\2\11\1\0"+
"\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
"\1\11\2\0\4\11\2\0\10\11\1\336\11\11\21\0"+
"\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
"\1\11\2\0\1\11\2\0\4\11\2\0\12\11\1\337"+
"\7\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+
"\2\11\1\0\1\11\2\0\1\11\2\0\4\11\2\0"+
"\2\11\1\340\17\11\21\0\2\341\11\0\1\341\1\0"+
"\1\341\2\0\2\341\17\0\2\341\3\0\2\341\3\0"+
"\1\341\4\0\1\341\21\0\2\11\1\0\2\11\6\0"+
"\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
"\4\11\2\0\4\11\1\342\15\11\21\0\2\11\1\0"+
"\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
"\1\11\2\0\4\11\2\0\7\11\1\343\12\11\21\0"+
"\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
"\1\11\2\0\1\11\2\0\4\11\2\0\13\11\1\344"+
"\6\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+
"\2\11\1\0\1\11\2\0\1\11\2\0\4\11\2\0"+
"\5\11\1\345\14\11\21\0\2\11\1\0\2\11\6\0"+
"\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
"\4\11\2\0\5\11\1\346\14\11\21\0\2\11\1\0"+
"\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
"\1\11\2\0\1\347\3\11\2\0\22\11\21\0\2\204"+
"\11\0\1\204\1\0\1\204\2\0\2\204\17\0\2\204"+
"\3\0\2\204\3\0\1\204\4\0\1\204\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
"\2\0\1\11\2\0\2\11\1\350\1\11\2\0\22\11"+
"\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
"\1\0\1\11\2\0\1\11\2\0\4\11\2\0\3\11"+
"\1\351\16\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\1\11\2\0\1\11\2\0\4\11\2\0\7\11"+
"\1\340\12\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\2\11\1\0\1\11\2\0\1\11\2\0\4\11"+
"\2\0\2\11\1\352\17\11\21\0\2\11\1\0\2\11"+
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\353"+
"\2\0\4\11\2\0\22\11\21\0\2\11\1\0\2\11"+
"\2\0\13\11\1\341\6\11\21\0\2\11\1\0\2\11"+
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
"\2\0\4\11\2\0\3\11\1\354\16\11\21\0\2\11"+
"\2\0\4\11\2\0\5\11\1\342\14\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
"\2\0\1\11\2\0\4\11\2\0\10\11\1\355\11\11"+
"\2\0\1\11\2\0\4\11\2\0\5\11\1\343\14\11"+
"\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
"\1\0\1\11\2\0\1\11\2\0\4\11\2\0\2\11"+
"\1\356\17\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\2\11\1\0\1\11\2\0\1\11\2\0\3\11"+
"\1\357\2\0\22\11\21\0\2\11\1\0\2\11\6\0"+
"\1\0\1\11\2\0\1\11\2\0\1\344\3\11\2\0"+
"\22\11\21\0\2\204\11\0\1\204\1\0\1\204\2\0"+
"\2\204\17\0\2\204\3\0\2\204\3\0\1\204\4\0"+
"\1\204\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+
"\2\11\1\0\1\11\2\0\1\11\2\0\2\11\1\345"+
"\1\11\2\0\22\11\21\0\2\11\1\0\2\11\6\0"+
"\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
"\4\11\2\0\2\11\1\360\17\11\20\0";
"\4\11\2\0\3\11\1\346\16\11\21\0\2\11\1\0"+
"\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
"\1\11\2\0\4\11\2\0\2\11\1\347\17\11\21\0"+
"\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
"\1\11\2\0\1\350\2\0\4\11\2\0\22\11\21\0"+
"\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
"\1\11\2\0\1\11\2\0\4\11\2\0\3\11\1\351"+
"\16\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+
"\2\11\1\0\1\11\2\0\1\11\2\0\4\11\2\0"+
"\10\11\1\352\11\11\21\0\2\11\1\0\2\11\6\0"+
"\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
"\4\11\2\0\2\11\1\353\17\11\21\0\2\11\1\0"+
"\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
"\1\11\2\0\3\11\1\354\2\0\22\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
"\2\0\1\11\2\0\4\11\2\0\2\11\1\355\17\11"+
"\20\0";
private static int [] zzUnpackTrans() {
int [] result = new int[10626];
int [] result = new int[10494];
int offset = 0;
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
return result;
@@ -552,12 +547,12 @@ class _JetLexer implements FlexLexer {
"\5\11\1\1\1\0\7\1\1\11\21\1\11\11\1\1"+
"\1\0\2\11\1\1\2\0\1\1\2\11\1\0\1\11"+
"\1\1\1\11\1\0\3\1\1\11\1\0\1\1\2\0"+
"\1\11\12\1\1\11\16\1\1\11\2\0\1\1\1\11"+
"\1\1\3\11\2\1\1\0\23\1\1\11\1\0\16\1"+
"\1\11\11\1\1\11\16\1\1\11\2\0\1\1\1\11"+
"\1\1\3\11\2\1\1\0\22\1\1\11\1\0\15\1"+
"\1\0\17\1";
private static int [] zzUnpackAttribute() {
int [] result = new int[240];
int [] result = new int[237];
int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result;
@@ -904,34 +899,34 @@ class _JetLexer implements FlexLexer {
zzMarkedPos = zzMarkedPosL;
switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
case 102:
case 101:
{ return JetTokens.TYPE_ALIAS_KEYWORD ;
}
case 104: break;
case 103: break;
case 3:
{ return JetTokens.IDENTIFIER;
}
case 105: break;
case 104: break;
case 11:
{ pushState(STRING); return JetTokens.OPEN_QUOTE;
}
case 106: break;
case 105: break;
case 77:
{ return JetTokens.FOR_KEYWORD ;
}
case 107: break;
case 98:
case 106: break;
case 97:
{ return JetTokens.RETURN_KEYWORD ;
}
case 108: break;
case 103:
case 107: break;
case 102:
{ return JetTokens.INTERFACE_KEYWORD ;
}
case 109: break;
case 108: break;
case 87:
{ return JetTokens.NULL_KEYWORD ;
}
case 110: break;
case 109: break;
case 35:
{ if (lBraceCount == 0) {
popState();
@@ -940,155 +935,155 @@ class _JetLexer implements FlexLexer {
lBraceCount--;
return JetTokens.RBRACE;
}
case 111: break;
case 110: break;
case 18:
{ return JetTokens.LT ;
}
case 112: break;
case 111: break;
case 52:
{ return JetTokens.DO_KEYWORD ;
}
case 113: break;
case 112: break;
case 17:
{ return JetTokens.PLUS ;
}
case 114: break;
case 113: break;
case 55:
{ return JetTokens.PLUSEQ ;
}
case 115: break;
case 114: break;
case 90:
{ popState(); return JetTokens.THIS_KEYWORD;
}
case 116: break;
case 115: break;
case 27:
{ return JetTokens.COMMA ;
}
case 117: break;
case 116: break;
case 19:
{ return JetTokens.GT ;
}
case 118: break;
case 117: break;
case 4:
{ return JetTokens.WHITE_SPACE;
}
case 119: break;
case 118: break;
case 25:
{ return JetTokens.RPAR ;
}
case 120: break;
case 119: break;
case 54:
{ return JetTokens.DOUBLE_ARROW;
}
case 121: break;
case 120: break;
case 85:
{ return JetTokens.TRUE_KEYWORD ;
}
case 122: break;
case 121: break;
case 37:
{ return JetTokens.FIELD_IDENTIFIER;
}
case 123: break;
case 122: break;
case 59:
{ return JetTokens.ANDAND ;
}
case 124: break;
case 123: break;
case 64:
{ pushState(LONG_TEMPLATE_ENTRY); return JetTokens.LONG_TEMPLATE_ENTRY_START;
}
case 125: break;
case 124: break;
case 36:
{ return JetTokens.FLOAT_LITERAL;
}
case 126: break;
case 125: break;
case 38:
{ return JetTokens.EOL_COMMENT;
}
case 127: break;
case 126: break;
case 88:
{ return JetTokens.WHEN_KEYWORD ;
}
case 128: break;
case 127: break;
case 73:
{ pushState(RAW_STRING); return JetTokens.OPEN_QUOTE;
}
case 129: break;
case 128: break;
case 21:
{ return JetTokens.COLON ;
}
case 130: break;
case 129: break;
case 57:
{ return JetTokens.LTEQ ;
}
case 131: break;
case 130: break;
case 46:
{ return JetTokens.ARROW ;
}
case 132: break;
case 131: break;
case 32:
{ popState(); return JetTokens.IDENTIFIER;
}
case 133: break;
case 132: break;
case 22:
{ return JetTokens.LBRACKET ;
}
case 134: break;
case 133: break;
case 68:
{ yypushback(2); return JetTokens.INTEGER_LITERAL;
}
case 135: break;
case 134: break;
case 10:
{ return JetTokens.CHARACTER_LITERAL;
}
case 136: break;
case 135: break;
case 79:
{ return JetTokens.VAR_KEYWORD ;
}
case 137: break;
case 136: break;
case 58:
{ return JetTokens.GTEQ ;
}
case 138: break;
case 137: break;
case 2:
{ return JetTokens.INTEGER_LITERAL;
}
case 139: break;
case 138: break;
case 13:
{ return JetTokens.RBRACE ;
}
case 140: break;
case 95:
case 139: break;
case 94:
{ return JetTokens.CLASS_KEYWORD ;
}
case 141: break;
case 140: break;
case 74:
{ return JetTokens.TRY_KEYWORD ;
}
case 142: break;
case 141: break;
case 7:
{ return JetTokens.EXCL ;
}
case 143: break;
case 142: break;
case 42:
{ return JetTokens.EXCLEQ ;
}
case 144: break;
case 143: break;
case 45:
{ return JetTokens.MINUSEQ ;
}
case 145: break;
case 100:
case 144: break;
case 99:
{ return JetTokens.PACKAGE_KEYWORD ;
}
case 146: break;
case 145: break;
case 91:
{ return JetTokens.THROW_KEYWORD ;
}
case 147: break;
case 93:
case 146: break;
case 92:
{ return JetTokens.SUPER_KEYWORD ;
}
case 148: break;
case 147: break;
case 67:
{ if (commentDepth > 0) {
commentDepth--;
@@ -1100,27 +1095,27 @@ class _JetLexer implements FlexLexer {
return commentStateToTokenType(state);
}
}
case 149: break;
case 97:
case 148: break;
case 96:
{ return JetTokens.WHILE_KEYWORD ;
}
case 150: break;
case 149: break;
case 44:
{ return JetTokens.MINUSMINUS;
}
case 151: break;
case 101:
case 150: break;
case 100:
{ return JetTokens.CONTINUE_KEYWORD ;
}
case 152: break;
case 151: break;
case 71:
{ return JetTokens.NOT_IN;
}
case 153: break;
case 152: break;
case 5:
{ return JetTokens.DIV ;
}
case 154: break;
case 153: break;
case 81:
{ int length = yytext().length();
if (length <= 3) { // closing """
@@ -1132,181 +1127,181 @@ class _JetLexer implements FlexLexer {
return JetTokens.REGULAR_STRING_PART;
}
}
case 155: break;
case 154: break;
case 29:
{ return JetTokens.REGULAR_STRING_PART;
}
case 156: break;
case 155: break;
case 16:
{ return JetTokens.QUEST ;
}
case 157: break;
case 156: break;
case 69:
{ pushState(DOC_COMMENT);
commentDepth = 0;
commentStart = getTokenStart();
}
case 158: break;
case 157: break;
case 60:
{ return JetTokens.OROR ;
}
case 159: break;
case 158: break;
case 20:
{ return JetTokens.PERC ;
}
case 160: break;
case 159: break;
case 72:
{ return JetTokens.EXCLEQEQEQ;
}
case 161: break;
case 160: break;
case 61:
{ return JetTokens.PERCEQ ;
}
case 162: break;
case 161: break;
case 43:
{ return JetTokens.RANGE ;
}
case 163: break;
case 162: break;
case 1:
{ return TokenType.BAD_CHARACTER;
}
case 164: break;
case 163: break;
case 63:
{ pushState(SHORT_TEMPLATE_ENTRY);
yypushback(yylength() - 1);
return JetTokens.SHORT_TEMPLATE_ENTRY_START;
}
case 165: break;
case 164: break;
case 70:
{ return JetTokens.NOT_IS;
}
case 166: break;
case 165: break;
case 14:
{ return JetTokens.MUL ;
}
case 167: break;
case 166: break;
case 23:
{ return JetTokens.RBRACKET ;
}
case 168: break;
case 167: break;
case 56:
{ return JetTokens.PLUSPLUS ;
}
case 169: break;
case 168: break;
case 39:
{ pushState(BLOCK_COMMENT);
commentDepth = 0;
commentStart = getTokenStart();
}
case 170: break;
case 169: break;
case 84:
{ return JetTokens.THIS_KEYWORD ;
}
case 171: break;
case 170: break;
case 8:
{ return JetTokens.DOT ;
}
case 172: break;
case 171: break;
case 26:
{ return JetTokens.SEMICOLON ;
}
case 173: break;
case 172: break;
case 49:
{ return JetTokens.IF_KEYWORD ;
}
case 174: break;
case 173: break;
case 65:
{ return JetTokens.ESCAPE_SEQUENCE;
}
case 175: break;
case 174: break;
case 31:
{ popState(); return JetTokens.CLOSING_QUOTE;
}
case 176: break;
case 175: break;
case 15:
{ return JetTokens.EQ ;
}
case 177: break;
case 176: break;
case 28:
{ return JetTokens.AT ;
}
case 178: break;
case 177: break;
case 75:
{ return JetTokens.AS_SAFE;
}
case 179: break;
case 178: break;
case 24:
{ return JetTokens.LPAR ;
}
case 180: break;
case 179: break;
case 9:
{ return JetTokens.MINUS ;
}
case 181: break;
case 94:
case 180: break;
case 93:
{ return JetTokens.FALSE_KEYWORD ;
}
case 182: break;
case 181: break;
case 66:
{ commentDepth++;
}
case 183: break;
case 182: break;
case 76:
{ return JetTokens.FUN_KEYWORD ;
}
case 184: break;
case 183: break;
case 47:
{ return JetTokens.IS_KEYWORD ;
}
case 185: break;
case 184: break;
case 30:
{ popState(); yypushback(1); return JetTokens.DANGLING_NEWLINE;
}
case 186: break;
case 185: break;
case 34:
{ lBraceCount++; return JetTokens.LBRACE;
}
case 187: break;
case 186: break;
case 83:
{ yypushback(3); return JetTokens.EXCL;
}
case 188: break;
case 187: break;
case 40:
{ return JetTokens.DIVEQ ;
}
case 189: break;
case 188: break;
case 86:
{ return JetTokens.ELSE_KEYWORD ;
}
case 190: break;
case 189: break;
case 51:
{ return JetTokens.AS_KEYWORD ;
}
case 191: break;
case 190: break;
case 48:
{ return JetTokens.IN_KEYWORD ;
}
case 192: break;
case 191: break;
case 53:
{ return JetTokens.EQEQ ;
}
case 193: break;
case 192: break;
case 80:
{ return JetTokens.EQEQEQ ;
}
case 194: break;
case 193: break;
case 78:
{ return JetTokens.VAL_KEYWORD ;
}
case 195: break;
case 194: break;
case 89:
{ return JetTokens.CAPITALIZED_THIS_KEYWORD ;
}
case 196: break;
case 195: break;
case 50:
{ return JetTokens.MULTEQ ;
}
case 197: break;
case 196: break;
case 41:
{ if (zzCurrentPos == 0) {
return JetTokens.SHEBANG_COMMENT;
@@ -1316,39 +1311,35 @@ class _JetLexer implements FlexLexer {
return JetTokens.HASH;
}
}
case 198: break;
case 197: break;
case 12:
{ return JetTokens.LBRACE ;
}
case 199: break;
case 99:
case 198: break;
case 98:
{ return JetTokens.OBJECT_KEYWORD ;
}
case 200: break;
case 96:
case 199: break;
case 95:
{ return JetTokens.BREAK_KEYWORD ;
}
case 201: break;
case 200: break;
case 82:
{ return JetTokens.BLOCK_COMMENT;
}
case 202: break;
case 92:
{ return JetTokens.TRAIT_KEYWORD ;
}
case 203: break;
case 201: break;
case 62:
{ return JetTokens.COLONCOLON;
}
case 204: break;
case 202: break;
case 33:
{
}
case 205: break;
case 203: break;
case 6:
{ return JetTokens.HASH ;
}
case 206: break;
case 204: break;
default:
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
zzAtEOF = true;
@@ -1360,14 +1351,14 @@ class _JetLexer implements FlexLexer {
zzStartRead = commentStart;
return commentStateToTokenType(state);
}
case 241: break;
case 238: break;
case DOC_COMMENT: {
int state = yystate();
popState();
zzStartRead = commentStart;
return commentStateToTokenType(state);
}
case 242: break;
case 239: break;
default:
return null;
}
@@ -54,7 +54,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
private static final TokenSet TYPE_ARGUMENT_LIST_STOPPERS = TokenSet.create(
INTEGER_LITERAL, FLOAT_LITERAL, CHARACTER_LITERAL, OPEN_QUOTE,
PACKAGE_KEYWORD, AS_KEYWORD, TYPE_ALIAS_KEYWORD, TRAIT_KEYWORD, INTERFACE_KEYWORD, CLASS_KEYWORD, THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD,
PACKAGE_KEYWORD, AS_KEYWORD, TYPE_ALIAS_KEYWORD, INTERFACE_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,
@@ -119,7 +119,6 @@ public class JetExpressionParsing extends AbstractJetParsing {
// declaration
FUN_KEYWORD,
VAL_KEYWORD, VAR_KEYWORD,
TRAIT_KEYWORD,
INTERFACE_KEYWORD,
CLASS_KEYWORD,
TYPE_ALIAS_KEYWORD
@@ -1367,7 +1366,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
private IElementType parseLocalDeclarationRest(boolean isEnum) {
IElementType keywordToken = tt();
IElementType declType = null;
if (keywordToken == CLASS_KEYWORD || keywordToken == TRAIT_KEYWORD || keywordToken == INTERFACE_KEYWORD) {
if (keywordToken == CLASS_KEYWORD || keywordToken == INTERFACE_KEYWORD) {
declType = myJetParsing.parseClass(isEnum, LOCAL);
}
else if (keywordToken == FUN_KEYWORD) {
@@ -46,7 +46,7 @@ public class JetParsing extends AbstractJetParsing {
}
private static final TokenSet TOP_LEVEL_DECLARATION_FIRST = TokenSet.create(
TYPE_ALIAS_KEYWORD, TRAIT_KEYWORD, INTERFACE_KEYWORD, CLASS_KEYWORD, OBJECT_KEYWORD,
TYPE_ALIAS_KEYWORD, INTERFACE_KEYWORD, CLASS_KEYWORD, OBJECT_KEYWORD,
FUN_KEYWORD, VAL_KEYWORD, PACKAGE_KEYWORD);
private static final TokenSet DECLARATION_FIRST = TokenSet.orSet(TOP_LEVEL_DECLARATION_FIRST,
TokenSet.create(INIT_KEYWORD, GET_KEYWORD, SET_KEYWORD, CONSTRUCTOR_KEYWORD));
@@ -399,7 +399,7 @@ public class JetParsing extends AbstractJetParsing {
// declType = parsePackageBlock();
// }
// else
if (keywordToken == CLASS_KEYWORD || keywordToken == TRAIT_KEYWORD || keywordToken == INTERFACE_KEYWORD) {
if (keywordToken == CLASS_KEYWORD || keywordToken == INTERFACE_KEYWORD) {
declType = parseClass(detector.isEnumDetected(), TOP_LEVEL);
}
else if (keywordToken == FUN_KEYWORD) {
@@ -774,9 +774,9 @@ public class JetParsing extends AbstractJetParsing {
assert _at(OBJECT_KEYWORD);
}
else {
assert _atSet(CLASS_KEYWORD, TRAIT_KEYWORD, INTERFACE_KEYWORD);
assert _atSet(CLASS_KEYWORD, INTERFACE_KEYWORD);
}
advance(); // CLASS_KEYWORD, TRAIT_KEYWORD or OBJECT_KEYWORD
advance(); // CLASS_KEYWORD, INTERFACE_KEYWORD or OBJECT_KEYWORD
if (nameParsingMode == NameParsingMode.REQUIRED) {
OptionalMarker marker = new OptionalMarker(object);
@@ -1068,7 +1068,7 @@ public class JetParsing extends AbstractJetParsing {
private IElementType parseMemberDeclarationRest(boolean isEnum, boolean isDefault) {
IElementType keywordToken = tt();
IElementType declType = null;
if (keywordToken == CLASS_KEYWORD || keywordToken == TRAIT_KEYWORD || keywordToken == INTERFACE_KEYWORD) {
if (keywordToken == CLASS_KEYWORD || keywordToken == INTERFACE_KEYWORD) {
declType = parseClass(isEnum, CLASS_MEMBER);
}
else if (keywordToken == FUN_KEYWORD) {
@@ -41,8 +41,7 @@ public open class JetClass : JetClassOrObject {
public fun getProperties(): List<JetProperty> = getBody()?.getProperties().orEmpty()
public fun isInterface(): Boolean =
getStub()?.isInterface()
?: (findChildByType<PsiElement>(JetTokens.TRAIT_KEYWORD) != null || findChildByType<PsiElement>(JetTokens.INTERFACE_KEYWORD) != null)
getStub()?.isInterface() ?: (findChildByType<PsiElement>(JetTokens.INTERFACE_KEYWORD) != null)
public fun isEnum(): Boolean = hasModifier(JetTokens.ENUM_KEYWORD)
public fun isSealed(): Boolean = hasModifier(JetTokens.SEALED_KEYWORD)
@@ -18,7 +18,6 @@ package org.jetbrains.kotlin.resolve;
import com.google.common.collect.Multimap;
import com.google.common.collect.Sets;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -233,11 +232,6 @@ public class DeclarationsChecker {
checkTypeParameters(aClass);
if (aClass.isInterface()) {
ASTNode traitKeyword = aClass.getNode().findChildByType(JetTokens.TRAIT_KEYWORD);
if (traitKeyword != null) {
trace.report(Errors.DEPRECATED_TRAIT_KEYWORD.on(traitKeyword.getPsi()));
}
checkConstructorInTrait(aClass);
}
else if (classDescriptor.getKind() == ClassKind.ANNOTATION_CLASS) {
+1 -1
View File
@@ -1,4 +1,4 @@
trait Id<T> {
interface Id<T> {
val id: T
}
@@ -1,4 +1,4 @@
trait A {
interface A {
fun visit(a:String, b:String="") : String = b + a
}
@@ -1,4 +1,4 @@
trait Base
interface Base
class Derived: Base
class Another: Base
fun Base.inc(): Derived { return Derived() }
@@ -1,4 +1,4 @@
trait Base
interface Base
class Derived: Base
class Another: Base
fun Base.inc(): Derived { return Derived() }
@@ -1,6 +1,6 @@
// KT-3407 Implementing (in Java) an abstract Kotlin class that implements a trait does not respect trait method definition
trait T {
interface T {
fun foo() = "OK"
}
@@ -1,4 +1,4 @@
trait KTrait : Simple {
interface KTrait : Simple {
fun bar(): String {
return test("O") + Simple.testStatic("O")
}
@@ -1,4 +1,4 @@
trait KTrait: Simple {
interface KTrait: Simple {
override fun test(s: String): String {
return s + "K"
}
@@ -1,4 +1,4 @@
trait KTrait {
interface KTrait {
fun test(): String {
return "base";
}
@@ -1,4 +1,4 @@
trait KTrait : Test {
interface KTrait : Test {
}
@@ -1,2 +0,0 @@
<!DEPRECATED_TRAIT_KEYWORD!>trait<!> A {
}
@@ -1,7 +0,0 @@
package
public interface A {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -2,6 +2,6 @@ package test
annotation class A
trait Foo<T : @A Number> : @A CharSequence {
interface Foo<T : @A Number> : @A CharSequence {
fun <E, F : @A E> bar()
}
@@ -10,7 +10,7 @@ fun func() {}
class C
@file:
trait T
interface T
@file:[]
trait T
interface T
@@ -85,7 +85,7 @@ JetFile: fileAnnotationInWrongPlace.kt
PsiElement(IDENTIFIER)('file')
PsiElement(COLON)(':')
PsiWhiteSpace('\n')
PsiElement(trait)('trait')
PsiElement(interface)('interface')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('T')
PsiWhiteSpace('\n\n')
@@ -101,6 +101,6 @@ JetFile: fileAnnotationInWrongPlace.kt
<empty list>
PsiElement(RBRACKET)(']')
PsiWhiteSpace('\n')
PsiElement(trait)('trait')
PsiElement(interface)('interface')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('T')
+2 -2
View File
@@ -1,10 +1,10 @@
trait A1() {
interface A1() {
constructor(x: Int = "", y: Int) : this() {
x + y
}
}
trait A2 private constructor(private val prop: Int) {
interface A2 private constructor(private val prop: Int) {
constructor(x: Int = "", y: Int) : this(x * y) {
x + y
}
@@ -181,12 +181,6 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
doTest(fileName);
}
@TestMetadata("DeprecatedTraitKeyword.kt")
public void testDeprecatedTraitKeyword() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/DeprecatedTraitKeyword.kt");
doTest(fileName);
}
@TestMetadata("DiamondFunction.kt")
public void testDiamondFunction() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/DiamondFunction.kt");
@@ -50,7 +50,7 @@ public class KotlinSyntheticClassAnnotationTest extends CodegenTestCase {
public void testTraitImpl() {
doTestKotlinSyntheticClass(
"trait A { fun foo() = 42 }",
"interface A { fun foo() = 42 }",
JvmAbi.TRAIT_IMPL_SUFFIX,
TRAIT_IMPL
);
@@ -106,7 +106,7 @@ public class KotlinSyntheticClassAnnotationTest extends CodegenTestCase {
public void testLocalTraitImpl() {
doTestKotlinSyntheticClass(
"fun foo() { trait Local { fun bar() = 42 } }",
"fun foo() { interface Local { fun bar() = 42 } }",
"Local$$TImpl.class",
LOCAL_TRAIT_IMPL
);
@@ -114,7 +114,7 @@ public class KotlinSyntheticClassAnnotationTest extends CodegenTestCase {
public void testLocalTraitInterface() {
doTestKotlinClass(
"fun foo() { trait Local { fun bar() = 42 } }",
"fun foo() { interface Local { fun bar() = 42 } }",
"Local.class",
LOCAL_CLASS
);
@@ -28,7 +28,7 @@ public class MethodOrderTest: CodegenTestCase() {
public fun testDelegatedMethod() {
doTest(
"""
trait Trait {
interface Trait {
fun f0()
fun f4()
fun f3()
@@ -23,14 +23,13 @@ import org.jetbrains.kotlin.load.kotlin.PackageClassUtils
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.JetFile
import org.jetbrains.kotlin.test.InTextDirectivesUtils
import org.jetbrains.kotlin.test.JetTestUtils
import org.jetbrains.org.objectweb.asm.ClassReader
import org.jetbrains.org.objectweb.asm.ClassVisitor
import org.jetbrains.org.objectweb.asm.Opcodes
import org.junit.Assert
import java.io.File
public trait AbstractSMAPBaseTest {
public interface AbstractSMAPBaseTest {
private fun extractSMAPFromClasses(outputFiles: Iterable<OutputFile>): List<SMAPAndFile> {
return outputFiles.map { outputFile ->
@@ -227,9 +227,9 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture {
tc.testEnumModality("abstract enum class A {}", Modality.ABSTRACT);
tc.testEnumModality("final enum class A {}", Modality.FINAL);
tc.testTraitModality("trait A {}", Modality.ABSTRACT);
tc.testTraitModality("open trait A {}", Modality.ABSTRACT);
tc.testTraitModality("abstract trait A {}", Modality.ABSTRACT);
tc.testTraitModality("interface A {}", Modality.ABSTRACT);
tc.testTraitModality("open interface A {}", Modality.ABSTRACT);
tc.testTraitModality("abstract interface A {}", Modality.ABSTRACT);
}
public void testFunctionModality() {
@@ -248,11 +248,11 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture {
tc.testFunctionModalityInEnum("abstract enum class A { ; open fun foo() }", Modality.OPEN);
tc.testFunctionModalityInEnum("abstract enum class A { ; abstract fun foo() }", Modality.ABSTRACT);
tc.testFunctionModalityInTrait("trait A { fun foo() }", Modality.ABSTRACT);
tc.testFunctionModalityInTrait("trait A { abstract fun foo() }", Modality.ABSTRACT);
tc.testFunctionModalityInTrait("trait A { fun foo() {} }", Modality.OPEN);
tc.testFunctionModalityInTrait("trait A { open fun foo() {} }", Modality.OPEN);
tc.testFunctionModalityInTrait("trait A { final fun foo() {} }", Modality.FINAL);
tc.testFunctionModalityInTrait("interface A { fun foo() }", Modality.ABSTRACT);
tc.testFunctionModalityInTrait("interface A { abstract fun foo() }", Modality.ABSTRACT);
tc.testFunctionModalityInTrait("interface A { fun foo() {} }", Modality.OPEN);
tc.testFunctionModalityInTrait("interface A { open fun foo() {} }", Modality.OPEN);
tc.testFunctionModalityInTrait("interface A { final fun foo() {} }", Modality.FINAL);
}
public void testFunctionModalityWithOverride() {
@@ -272,11 +272,11 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture {
tc.testFunctionModalityInEnum("abstract enum class A : C { ; open override fun foo() }", Modality.OPEN);
tc.testFunctionModalityInEnum("abstract enum class A : C { ; abstract override fun foo() }", Modality.ABSTRACT);
tc.testFunctionModalityInTrait("trait A : C { override fun foo() }", Modality.ABSTRACT);
tc.testFunctionModalityInTrait("trait A : C { abstract override fun foo() }", Modality.ABSTRACT);
tc.testFunctionModalityInTrait("trait A : C { override fun foo() {} }", Modality.OPEN);
tc.testFunctionModalityInTrait("trait A : C { open override fun foo() {} }", Modality.OPEN);
tc.testFunctionModalityInTrait("trait A : C { final override fun foo() {} }", Modality.FINAL);
tc.testFunctionModalityInTrait("interface A : C { override fun foo() }", Modality.ABSTRACT);
tc.testFunctionModalityInTrait("interface A : C { abstract override fun foo() }", Modality.ABSTRACT);
tc.testFunctionModalityInTrait("interface A : C { override fun foo() {} }", Modality.OPEN);
tc.testFunctionModalityInTrait("interface A : C { open override fun foo() {} }", Modality.OPEN);
tc.testFunctionModalityInTrait("interface A : C { final override fun foo() {} }", Modality.FINAL);
}
public void testPropertyModality() {
@@ -297,18 +297,18 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture {
tc.testPropertyModalityInEnum("abstract enum class A { ; open val a: Int = 0 }", Modality.OPEN);
tc.testPropertyModalityInEnum("abstract enum class A { ; abstract val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A { val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A { open val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A { abstract val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A { open abstract val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("interface A { val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("interface A { open val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("interface A { abstract val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("interface A { open abstract val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A { val a: Int get() = 10 }", Modality.OPEN);
tc.testPropertyModalityInTrait("trait A { var a: Int get() = 1; set(v: Int) {} }", Modality.OPEN);
tc.testPropertyModalityInTrait("trait A { val a: Int open get }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A { var a: Int open get open set}", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A { open val a: Int get }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A { open val a: Int get() = 1 }", Modality.OPEN);
tc.testPropertyModalityInTrait("trait A { open val a: Int final get() = 1 }", Modality.OPEN);
tc.testPropertyModalityInTrait("interface A { val a: Int get() = 10 }", Modality.OPEN);
tc.testPropertyModalityInTrait("interface A { var a: Int get() = 1; set(v: Int) {} }", Modality.OPEN);
tc.testPropertyModalityInTrait("interface A { val a: Int open get }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("interface A { var a: Int open get open set}", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("interface A { open val a: Int get }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("interface A { open val a: Int get() = 1 }", Modality.OPEN);
tc.testPropertyModalityInTrait("interface A { open val a: Int final get() = 1 }", Modality.OPEN);
}
public void testPropertyModalityWithOverride() {
@@ -329,18 +329,18 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture {
tc.testPropertyModalityInEnum("abstract enum class A : C { ; open override val a: Int = 0 }", Modality.OPEN);
tc.testPropertyModalityInEnum("abstract enum class A : C { ; abstract override val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A : C { override val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A : C { open override val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A : C { abstract override val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A : C { open abstract override val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("interface A : C { override val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("interface A : C { open override val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("interface A : C { abstract override val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("interface A : C { open abstract override val a: Int }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A : C { override val a: Int get() = 10 }", Modality.OPEN);
tc.testPropertyModalityInTrait("trait A : C { override var a: Int get() = 1; set(v: Int) {} }", Modality.OPEN);
tc.testPropertyModalityInTrait("trait A : C { override val a: Int open get }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A : C { override var a: Int open get open set }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A : C { open override val a: Int get }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("trait A : C { open override val a: Int get() = 1 }", Modality.OPEN);
tc.testPropertyModalityInTrait("trait A : C { open override val a: Int final get() = 1 }", Modality.OPEN);
tc.testPropertyModalityInTrait("interface A : C { override val a: Int get() = 10 }", Modality.OPEN);
tc.testPropertyModalityInTrait("interface A : C { override var a: Int get() = 1; set(v: Int) {} }", Modality.OPEN);
tc.testPropertyModalityInTrait("interface A : C { override val a: Int open get }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("interface A : C { override var a: Int open get open set }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("interface A : C { open override val a: Int get }", Modality.ABSTRACT);
tc.testPropertyModalityInTrait("interface A : C { open override val a: Int get() = 1 }", Modality.OPEN);
tc.testPropertyModalityInTrait("interface A : C { open override val a: Int final get() = 1 }", Modality.OPEN);
}
public void testPropertyAccessorModality() {
@@ -381,23 +381,23 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture {
tc.testPropertyAccessorModalityInClass("abstract class A { open val a: Int open get() = 10 }", Modality.OPEN);
tc.testPropertyAccessorModalityInClass("abstract class A { open val a: Int final get() = 10 }", Modality.FINAL);
tc.testPropertyAccessorModalityInTrait("trait A { val a: Int }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("trait A { val a: Int get }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("trait A { val a: Int get() = 1 }", Modality.OPEN);
tc.testPropertyAccessorModalityInTrait("trait A { val a: Int abstract get }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("trait A { val a: Int open get }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("trait A { val a: Int open get() = 1 }", Modality.OPEN);
tc.testPropertyAccessorModalityInTrait("trait A { val a: Int final get }", Modality.FINAL);
tc.testPropertyAccessorModalityInTrait("trait A { val a: Int final get() = 1 }", Modality.FINAL);
tc.testPropertyAccessorModalityInTrait("interface A { val a: Int }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("interface A { val a: Int get }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("interface A { val a: Int get() = 1 }", Modality.OPEN);
tc.testPropertyAccessorModalityInTrait("interface A { val a: Int abstract get }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("interface A { val a: Int open get }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("interface A { val a: Int open get() = 1 }", Modality.OPEN);
tc.testPropertyAccessorModalityInTrait("interface A { val a: Int final get }", Modality.FINAL);
tc.testPropertyAccessorModalityInTrait("interface A { val a: Int final get() = 1 }", Modality.FINAL);
tc.testPropertyAccessorModalityInTrait("abstract trait A { val a: Int }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("abstract trait A { val a: Int get }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("abstract trait A { val a: Int get() = 1 }", Modality.OPEN);
tc.testPropertyAccessorModalityInTrait("abstract trait A { val a: Int abstract get }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("abstract trait A { val a: Int open get }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("abstract trait A { val a: Int open get() = 1 }", Modality.OPEN);
tc.testPropertyAccessorModalityInTrait("abstract trait A { val a: Int final get }", Modality.FINAL);
tc.testPropertyAccessorModalityInTrait("abstract trait A { val a: Int final get() = 1 }", Modality.FINAL);
tc.testPropertyAccessorModalityInTrait("abstract interface A { val a: Int }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("abstract interface A { val a: Int get }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("abstract interface A { val a: Int get() = 1 }", Modality.OPEN);
tc.testPropertyAccessorModalityInTrait("abstract interface A { val a: Int abstract get }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("abstract interface A { val a: Int open get }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("abstract interface A { val a: Int open get() = 1 }", Modality.OPEN);
tc.testPropertyAccessorModalityInTrait("abstract interface A { val a: Int final get }", Modality.FINAL);
tc.testPropertyAccessorModalityInTrait("abstract interface A { val a: Int final get() = 1 }", Modality.FINAL);
}
public void testPropertyAccessorModalityWithOverride() {
@@ -446,14 +446,14 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture {
tc.testPropertyAccessorModalityInClass("abstract class A : C { open override val a: Int open override get() = 10 }", Modality.OPEN);
tc.testPropertyAccessorModalityInClass("abstract class A : C { open override val a: Int final override get() = 10 }", Modality.FINAL);
tc.testPropertyAccessorModalityInTrait("trait A : C { override val a: Int }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("trait A : C { override val a: Int get }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("trait A : C { override val a: Int override get() = 1 }", Modality.OPEN);
tc.testPropertyAccessorModalityInTrait("trait A : C { override val a: Int abstract get }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("trait A : C { override val a: Int open get }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("trait A : C { override val a: Int open override get() = 1 }", Modality.OPEN);
tc.testPropertyAccessorModalityInTrait("trait A : C { override val a: Int override get() = 1 }", Modality.OPEN);
tc.testPropertyAccessorModalityInTrait("trait A : C { override val a: Int final get }", Modality.FINAL);
tc.testPropertyAccessorModalityInTrait("trait A : C { override val a: Int final override get() = 1 }", Modality.FINAL);
tc.testPropertyAccessorModalityInTrait("interface A : C { override val a: Int }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("interface A : C { override val a: Int get }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("interface A : C { override val a: Int override get() = 1 }", Modality.OPEN);
tc.testPropertyAccessorModalityInTrait("interface A : C { override val a: Int abstract get }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("interface A : C { override val a: Int open get }", Modality.ABSTRACT);
tc.testPropertyAccessorModalityInTrait("interface A : C { override val a: Int open override get() = 1 }", Modality.OPEN);
tc.testPropertyAccessorModalityInTrait("interface A : C { override val a: Int override get() = 1 }", Modality.OPEN);
tc.testPropertyAccessorModalityInTrait("interface A : C { override val a: Int final get }", Modality.FINAL);
tc.testPropertyAccessorModalityInTrait("interface A : C { override val a: Int final override get() = 1 }", Modality.FINAL);
}
}
@@ -51,7 +51,6 @@ public class KeywordStringsGenerated {
"while",
"do",
"when",
"trait",
"interface",
"This"
));
@@ -60,7 +60,6 @@ fun box(): String {
commonCasesWithTestNotRenamed()
case("class", "class $KEYWORD_MARKER { companion object {} }", "", testNotRenamedByName)
case("trait", "trait $KEYWORD_MARKER { companion object {} }", "", testNotRenamedByName)
case("interface", "interface $KEYWORD_MARKER { companion object {} }", "", testNotRenamedByName)
case("enum", "enum class $KEYWORD_MARKER { foo }", "", testNotRenamed("$KEYWORD_MARKER.foo"))
case("object", "object $KEYWORD_MARKER {}", "", testNotRenamedByName)
@@ -165,7 +164,7 @@ fun box(): String {
suite("delegated",
"""
trait Trait {
interface Trait {
$DECLARATION_MARKER
}
@@ -151,9 +151,7 @@ public open class JetPsiChecker : Annotator, HighlightRangeExtension {
when (factory) {
Errors.DEPRECATED_SYMBOL,
Errors.DEPRECATED_SYMBOL_WITH_MESSAGE,
Errors.DEPRECATED_TRAIT_KEYWORD
-> annotation.setTextAttributes(CodeInsightColors.DEPRECATED_ATTRIBUTES)
Errors.DEPRECATED_SYMBOL_WITH_MESSAGE -> annotation.setTextAttributes(CodeInsightColors.DEPRECATED_ATTRIBUTES)
}
setUpAnnotation(diagnostic, annotation, if (factory in Errors.UNUSED_ELEMENT_DIAGNOSTICS)
@@ -41,8 +41,7 @@ open class KeywordLookupObject
object KeywordCompletion {
private val NON_ACTUAL_KEYWORDS = setOf(CAPITALIZED_THIS_KEYWORD,
TYPE_ALIAS_KEYWORD,
TRAIT_KEYWORD)
TYPE_ALIAS_KEYWORD)
private val ALL_KEYWORDS = (KEYWORDS.getTypes() + SOFT_KEYWORDS.getTypes())
.filter { it !in NON_ACTUAL_KEYWORDS }
.map { it as JetKeywordToken }
+1 -1
View File
@@ -2,7 +2,7 @@ fun foo(p: Iterable<D>) {
p.filter { it.<caret> }
}
trait D {
interface D {
fun bar()
}
@@ -1,8 +1,8 @@
trait T1 {
interface T1 {
fun inT1(){}
}
trait T2 {
interface T2 {
fun inT2(){}
}
@@ -10,7 +10,7 @@ open class C {
}
}
trait T
interface T
// EXIST: { itemText: "extFunForT", attributes: "bold" }
// EXIST: { itemText: "extFunForC", attributes: "bold" }
@@ -1,4 +1,4 @@
trait T {
interface T {
fun fromTrait(){}
}
@@ -1,4 +1,4 @@
trait T {
interface T {
fun fromTrait(){}
}
@@ -1,4 +1,4 @@
trait T {
interface T {
fun f(){}
}
@@ -1,4 +1,4 @@
trait T {
interface T {
fun foo1(){}
fun foo2(){}
}
@@ -1,6 +1,6 @@
fun globalFun(){}
trait T {
interface T {
fun fromTrait(){}
}
@@ -1,4 +1,4 @@
trait I<T>
interface I<T>
fun <E, T : I<E>> T.ext() : T = this
@@ -1,8 +1,8 @@
trait A {
interface A {
fun foo(): Int
}
trait B: A {
interface B: A {
override fun foo(): Int
override fun foo1(): Int
}
@@ -1,4 +1,4 @@
trait Expr
interface Expr
class Num(val value : Int) : Expr
fun eval(e : Expr) {
@@ -1,4 +1,4 @@
trait Expr {
interface Expr {
public fun testThis() {
if (this is Num) {
this.<caret>
@@ -1,4 +1,4 @@
trait Expr
interface Expr
class Sum(val left : Expr, val right : Expr) : Expr
fun evalWhen(e : Expr) : Int = when (e) {
@@ -1,4 +1,4 @@
trait Trait<T>
interface Trait<T>
fun<T> Trait<T>.extension(t: T): T = t
@@ -1,6 +1,6 @@
package first
trait TestedTrait() {
interface TestedTrait() {
}
fun firstFun() {
+1 -1
View File
@@ -1,4 +1,4 @@
trait X {
interface X {
open fun fn() {}
}
@@ -1,4 +1,4 @@
trait X {
interface X {
open fun fn() {}
}
@@ -1,3 +1,3 @@
public trait Comparator<T> {
public interface Comparator<T> {
public fun compare(var1: T, var2: T): Int
}
@@ -1,4 +1,4 @@
trait Foo
interface Foo
var a : Foo = <caret>
@@ -1,4 +1,4 @@
trait Foo
interface Foo
var a : Foo = object: Foo {<caret>}
+1 -1
View File
@@ -1,4 +1,4 @@
trait Foo
interface Foo
fun foo(f: Foo, i: Int){}
@@ -1,4 +1,4 @@
trait Foo
interface Foo
fun foo(f: Foo, i: Int){}
@@ -4,9 +4,9 @@ fun test() {
registerHandler(<caret>)
}
trait Message
interface Message
trait Handler<E> {
interface Handler<E> {
fun handle(e: E)
}
@@ -8,9 +8,9 @@ fun test() {
})
}
trait Message
interface Message
trait Handler<E> {
interface Handler<E> {
fun handle(e: E)
}
@@ -1,8 +1,8 @@
class `class`<T>
trait `trait`
interface `interface`
fun foo(p: `class`<`trait`>){}
fun foo(p: `class`<`interface`>){}
fun f(){
foo(<caret>)
@@ -1,8 +1,8 @@
class `class`<T>
trait `trait`
interface `interface`
fun foo(p: `class`<`trait`>){}
fun foo(p: `class`<`interface`>){}
fun f(){
foo(`class`())<caret>
@@ -1,5 +1,5 @@
trait X
trait Y
interface X
interface Y
fun X.iterator(): Y
fun Y.next(): Int
@@ -1,5 +1,5 @@
trait X
trait Y
interface X
interface Y
fun X.iterator(): Y
fun Y.next(): Int
@@ -1,5 +1,5 @@
trait X
trait Y
interface X
interface Y
fun X.iterator(): Y
fun Y.next(): Int
@@ -1,5 +1,5 @@
trait X
trait Y
interface X
interface Y
fun X.iterator(): Y
fun Y.next(): Int
@@ -1,7 +1,7 @@
package p
class Outer {
trait T {
interface T {
object Null : T { }
}
}
@@ -1,7 +1,7 @@
package p
class Outer {
trait T {
interface T {
object Null : T { }
}
}
+1 -1
View File
@@ -20,7 +20,7 @@ public class LibClass {
public val nested: Nested = Nested()
}
public trait LibTrait {
public interface LibTrait {
public fun foo() {
}
}
+1 -1
View File
@@ -1,4 +1,4 @@
trait Foo{
interface Foo{
public fun foo() : Foo
public fun s() : String
public val prop : String
+1 -1
View File
@@ -1,4 +1,4 @@
trait T {
interface T {
fun fromTrait() = ""
}
+1 -1
View File
@@ -1,4 +1,4 @@
trait I
interface I
object O : I
+1 -1
View File
@@ -1,6 +1,6 @@
package p
trait T {
interface T {
object Null : T { }
object Other {}
+1 -1
View File
@@ -1,4 +1,4 @@
trait Foo{
interface Foo{
fun foo1() : String
fun foo2() : Object
val prop : String
+1 -1
View File
@@ -1,4 +1,4 @@
trait Foo
interface Foo
var a : Foo = <caret>
@@ -1,4 +1,4 @@
trait Foo
interface Foo
var a : Foo = o<caret>
@@ -1,4 +1,4 @@
trait T
interface T
class C {
inner class Inner1(s: String) : T
@@ -1,5 +1,5 @@
trait X
trait Y
interface X
interface Y
fun X.iterator(): Y
fun Y.next(): Int
@@ -1,6 +1,6 @@
trait X
trait Y: X
trait Z
interface X
interface Y: X
interface Z
fun foo(p1: Collection<X>, p2: Collection<Y>, p3: Collection<Z>, p4: Collection<X?>) {
for (i: X in <caret>)
@@ -1,8 +1,8 @@
import java.util.ArrayList
trait A
trait B : A
trait C
interface A
interface B : A
interface C
fun foo(a: A, cA: Collection<A>, cB: Collection<B>, cC: Collection<C>, cAny: Collection<Any>,
lA: List<A>, lb: List<B>, lC: List<C>, lAny: List<Any>,
+3 -3
View File
@@ -1,6 +1,6 @@
trait A
trait B : A
trait C
interface A
interface B : A
interface C
fun foo(a: A){}
fun foo(c: C){}
+3 -3
View File
@@ -1,6 +1,6 @@
trait A
trait B : A
trait C
interface A
interface B : A
interface C
fun foo(a: A?){}
fun foo(c: C?){}
+3 -3
View File
@@ -1,6 +1,6 @@
trait A
trait B : A
trait C
interface A
interface B : A
interface C
fun foo(a: A){}
fun foo(c: C){}
+3 -3
View File
@@ -1,6 +1,6 @@
trait A
trait B : A
trait C
interface A
interface B : A
interface C
fun foo(a: A){}
fun foo(c: C){}
@@ -1,6 +1,6 @@
trait X
trait Y : X
trait Z
interface X
interface Y : X
interface Z
fun X.contains(s: String): Boolean
@@ -1,12 +1,12 @@
trait X {
interface X {
fun contains(s: String): Boolean
}
trait Y {
interface Y {
fun contains(i: Int): Boolean
}
trait Z {
interface Z {
fun contains(o: Any): Boolean
}
@@ -1,8 +1,8 @@
trait X<T> {
interface X<T> {
fun contains(t: T): Boolean
}
trait A {
interface A {
fun<T> createX(t: T): X<T>
fun foo(s: String) {
@@ -1,8 +1,8 @@
trait X<T>
interface X<T>
fun<T> X<T>.contains(t: T): Boolean
trait A {
interface A {
fun<T> createX(t: T): X<T>
fun foo(s: String) {
@@ -1,4 +1,4 @@
trait X {
interface X {
fun contains(s: String): Boolean?
}
+1 -1
View File
@@ -1,4 +1,4 @@
trait T
interface T
open class A : T
@@ -1,3 +1,3 @@
public trait Comparator<T> {
public interface Comparator<T> {
public fun compare(var1: T, var2: T): Int
}
@@ -1,10 +1,10 @@
package p
trait I1
trait I2
trait I3
interface I1
interface I2
interface I3
trait KotlinTrait<T1, T2>
interface KotlinTrait<T1, T2>
open class KotlinInheritor1<T> : KotlinTrait<T, I2>
@@ -1,10 +1,10 @@
package p
trait I1
trait I2
trait I3
interface I1
interface I2
interface I3
trait KotlinTrait<T1, T2>
interface KotlinTrait<T1, T2>
class KotlinInheritor<T> : KotlinTrait<T, T>
@@ -1,10 +1,10 @@
package p
trait I1
trait I2
trait I3
interface I1
interface I2
interface I3
trait KotlinTrait<T1, T2>
interface KotlinTrait<T1, T2>
class KotlinInheritor<T> : KotlinTrait<T, T>
@@ -1,9 +1,9 @@
package p
trait I1<T>
trait I2
interface I1<T>
interface I2
trait KotlinTrait<T>
interface KotlinTrait<T>
class KotlinInheritor<T> : KotlinTrait<I1<T>>
@@ -1,4 +1,4 @@
trait T
interface T
class C : A()
@@ -1,6 +1,6 @@
package p2
trait KotlinTrait
interface KotlinTrait
open class KotlinInheritor1 : KotlinTrait
@@ -1,9 +1,9 @@
class X
class Y
trait T1
trait T2<T>
trait T3<T>
interface T1
interface T2<T>
interface T3<T>
class C1 : T1
class C2<T> : T2<T>, T3<T>
@@ -1,4 +1,4 @@
trait X
interface X
fun foo(x: X) {
JavaClass.search(<caret>)
@@ -1,4 +1,4 @@
trait T
interface T
object OO : T
@@ -1,5 +1,5 @@
<html>
<body>
This intention converts a member of a class or trait into an extension to this class/trait.
This intention converts a member of a class or interface into an extension to this class/interface.
</body>
</html>
@@ -82,7 +82,6 @@ public class KotlinCleanupInspection(): LocalInspectionTool(), CleanupLocalInspe
private fun Diagnostic.isCleanup() = getFactory() in cleanupDiagnosticsFactories || isObsoleteLabel()
private val cleanupDiagnosticsFactories = setOf(
Errors.DEPRECATED_TRAIT_KEYWORD,
Errors.DEPRECATED_LAMBDA_SYNTAX,
Errors.MISSING_CONSTRUCTOR_KEYWORD,
Errors.FUNCTION_EXPRESSION_WITH_NAME,
@@ -1,55 +0,0 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.idea.quickfix
import com.intellij.codeInsight.intention.IntentionAction
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.diagnostics.Diagnostic
import org.jetbrains.kotlin.idea.quickfix.quickfixUtil.createIntentionFactory
import org.jetbrains.kotlin.lexer.JetTokens
import org.jetbrains.kotlin.psi.JetClass
import org.jetbrains.kotlin.psi.JetFile
import org.jetbrains.kotlin.psi.JetPsiFactory
public class DeprecatedTraitSyntaxFix(element: PsiElement): JetIntentionAction<PsiElement>(element), CleanupFix {
override fun getFamilyName() = "Replace 'trait' with 'interface'"
override fun getText() = getFamilyName()
override fun invoke(project: Project, editor: Editor?, file: JetFile)
= replaceWithInterfaceKeyword(element)
companion object : JetSingleIntentionActionFactory() {
fun replaceWithInterfaceKeyword(element: PsiElement) {
val cls = JetPsiFactory(element.getProject()).createClass("interface A {}")
element.replace(cls.getNode().findChildByType(JetTokens.INTERFACE_KEYWORD)!!.getPsi())
}
override fun createAction(diagnostic: Diagnostic): IntentionAction =
DeprecatedTraitSyntaxFix(diagnostic.getPsiElement())
public fun createWholeProjectFixFactory(): JetSingleIntentionActionFactory = createIntentionFactory {
JetWholeProjectForEachElementOfTypeFix.createByPredicate<JetClass>(
predicate = { it.getNode().findChildByType(JetTokens.TRAIT_KEYWORD) != null },
taskProcessor = { replaceWithInterfaceKeyword(it.getNode().findChildByType(JetTokens.TRAIT_KEYWORD)!!.getPsi())},
name = "Replace 'trait' with 'interface' in whole project"
)
}
}
}

Some files were not shown because too many files have changed in this diff Show More