Allow namespaces with {} on the first line of a file (JET-2)

This commit is contained in:
Andrey Breslav
2011-04-25 22:08:03 +04:00
parent d4551a61bf
commit 5fdb34038e
3 changed files with 46 additions and 1 deletions
@@ -118,11 +118,16 @@ public class JetParsing extends AbstractJetParsing {
parseModifierList();
if (at(NAMESPACE_KEYWORD)) {
firstEntry.drop();
advance(); // NAMESPACE_KEYWORD
parseNamespaceName();
if (at(LBRACE)) {
firstEntry.rollbackTo();
return;
}
firstEntry.drop();
consumeIf(SEMICOLON);
} else {
firstEntry.rollbackTo();
@@ -0,0 +1,4 @@
namespace foobar {
val a = 1
val b = foobar.a
}
+36
View File
@@ -0,0 +1,36 @@
JetFile: NamespaceBlockFirst.jet
NAMESPACE
NAMESPACE
PsiElement(namespace)('namespace')
PsiWhiteSpace(' ')
NAMESPACE_NAME
PsiElement(IDENTIFIER)('foobar')
PsiWhiteSpace(' ')
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
NAMESPACE_BODY
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('a')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('1')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('b')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foobar')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiWhiteSpace('\n')
PsiElement(RBRACE)('}')