diff --git a/compiler/frontend/src/org/jetbrains/jet/renderer/KeywordStringsGenerated.java b/compiler/frontend/src/org/jetbrains/jet/renderer/KeywordStringsGenerated.java index 8834fe5ab04..96e641d4dfb 100644 --- a/compiler/frontend/src/org/jetbrains/jet/renderer/KeywordStringsGenerated.java +++ b/compiler/frontend/src/org/jetbrains/jet/renderer/KeywordStringsGenerated.java @@ -52,9 +52,6 @@ public class KeywordStringsGenerated { "do", "when", "trait", - "This", - "AS_SAFE", - "NOT_IN", - "NOT_IS" + "This" )); } diff --git a/compiler/testData/renderer/KeywordsInNames.kt b/compiler/testData/renderer/KeywordsInNames.kt index dcff7c7331f..5498167ae63 100644 --- a/compiler/testData/renderer/KeywordsInNames.kt +++ b/compiler/testData/renderer/KeywordsInNames.kt @@ -13,6 +13,10 @@ val `in` = `class`<`trait`>(null) fun <`in` : `trait`> `trait`.`fun`(`false`: `trait`): `trait` where `in` : Number +val AS_SAFE = 1 +val NOT_IN = 2 +val NOT_IS = 3 + //internal final annotation class `true` : jet.Annotation defined in root package //public constructor `true`() defined in `true` //internal val `val`: jet.Int defined in root package @@ -28,3 +32,6 @@ fun <`in` : `trait`> `trait`.`fun`(`false`: `trait`): `trait` where `in` : Numbe //internal fun <`in` : `trait`> `trait`.`fun`(`false`: `trait`): `trait` where `in` : jet.Number defined in root package //<`in` : `trait` & jet.Number> defined in `fun` //value-parameter val `false`: `trait` defined in `fun` +//internal val AS_SAFE: jet.Int defined in root package +//internal val NOT_IN: jet.Int defined in root package +//internal val NOT_IS: jet.Int defined in root package diff --git a/generators/src/org/jetbrains/jet/generators/frontend/GenerateKeywordStrings.java b/generators/src/org/jetbrains/jet/generators/frontend/GenerateKeywordStrings.java index 3403650a10a..83418338f00 100644 --- a/generators/src/org/jetbrains/jet/generators/frontend/GenerateKeywordStrings.java +++ b/generators/src/org/jetbrains/jet/generators/frontend/GenerateKeywordStrings.java @@ -26,6 +26,9 @@ import org.jetbrains.jet.utils.Printer; import java.io.File; import java.io.IOException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; public class GenerateKeywordStrings { public static final File DEST_FILE = new File("compiler/frontend/src/org/jetbrains/jet/renderer/KeywordStringsGenerated.java"); @@ -50,12 +53,19 @@ public class GenerateKeywordStrings { p.println("public static final Set KEYWORDS = new HashSet(Arrays.asList("); p.pushIndent(); - IElementType[] types = JetTokens.KEYWORDS.getTypes(); - for (int i = 0, length = types.length; i < length; i++) { - assert types[i] instanceof JetKeywordToken : "Not a keyword in JetTokens.KEYWORDS: " + types[i]; - JetKeywordToken keyword = (JetKeywordToken) types[i]; + List strings = new ArrayList(); + for (IElementType type : JetTokens.KEYWORDS.getTypes()) { + assert type instanceof JetKeywordToken : "Not a keyword in JetTokens.KEYWORDS: " + type; + JetKeywordToken keyword = (JetKeywordToken) type; assert !keyword.isSoft() : "Soft keyword in JetTokens.KEYWORDS: " + keyword.getValue(); - p.println("\"" + keyword.getValue() + "\""+ (i + 1 < length ? "," : "")); + if (keyword != JetTokens.AS_SAFE && keyword != JetTokens.NOT_IN && keyword != JetTokens.NOT_IS) { + strings.add(keyword.getValue()); + } + } + + for (Iterator iterator = strings.iterator(); iterator.hasNext(); ) { + String string = iterator.next(); + p.println("\"" + string + "\"" + (iterator.hasNext() ? "," : "")); } p.popIndent();