Allow namespaces with {} on the first line of a file (JET-2)
This commit is contained in:
@@ -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
|
||||
}
|
||||
@@ -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)('}')
|
||||
Reference in New Issue
Block a user