Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
硅谷海盗
kotlin
提交
db9c36ad
K
kotlin
项目概览
硅谷海盗
/
kotlin
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kotlin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
db9c36ad
编写于
3月 05, 2011
作者:
A
Andrey Breslav
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Java imports work
上级
f71d2584
变更
23
隐藏空白更改
内联
并排
Showing
23 changed file
with
414 addition
and
347 deletion
+414
-347
idea/src/org/jetbrains/jet/lang/parsing/JetParsing.java
idea/src/org/jetbrains/jet/lang/parsing/JetParsing.java
+22
-27
idea/src/org/jetbrains/jet/lang/psi/JetImportDirective.java
idea/src/org/jetbrains/jet/lang/psi/JetImportDirective.java
+6
-3
idea/src/org/jetbrains/jet/lang/psi/JetReferenceExpression.java
...rc/org/jetbrains/jet/lang/psi/JetReferenceExpression.java
+0
-9
idea/src/org/jetbrains/jet/lang/psi/JetUserType.java
idea/src/org/jetbrains/jet/lang/psi/JetUserType.java
+12
-2
idea/src/org/jetbrains/jet/lang/resolve/ClassDescriptorResolver.java
...g/jetbrains/jet/lang/resolve/ClassDescriptorResolver.java
+1
-1
idea/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java
idea/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java
+12
-9
idea/src/org/jetbrains/jet/lang/resolve/TypeResolver.java
idea/src/org/jetbrains/jet/lang/resolve/TypeResolver.java
+27
-37
idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java
idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java
+7
-1
idea/testData/psi/Attributes.txt
idea/testData/psi/Attributes.txt
+40
-32
idea/testData/psi/Attributes_ERR.txt
idea/testData/psi/Attributes_ERR.txt
+40
-32
idea/testData/psi/FunctionTypes.txt
idea/testData/psi/FunctionTypes.txt
+84
-76
idea/testData/psi/ImportSoftKW.txt
idea/testData/psi/ImportSoftKW.txt
+9
-6
idea/testData/psi/Imports.txt
idea/testData/psi/Imports.txt
+8
-6
idea/testData/psi/Imports_ERR.txt
idea/testData/psi/Imports_ERR.txt
+45
-35
idea/testData/psi/NamespaceBlock.txt
idea/testData/psi/NamespaceBlock.txt
+3
-2
idea/testData/psi/NamespaceBlock_ERR.txt
idea/testData/psi/NamespaceBlock_ERR.txt
+36
-26
idea/testData/psi/Properties.txt
idea/testData/psi/Properties.txt
+18
-12
idea/testData/psi/Properties_ERR.txt
idea/testData/psi/Properties_ERR.txt
+6
-4
idea/testData/psi/RootNamespace.txt
idea/testData/psi/RootNamespace.txt
+8
-6
idea/testData/psi/When.txt
idea/testData/psi/When.txt
+3
-2
idea/testData/psi/examples/collections/HashMap.txt
idea/testData/psi/examples/collections/HashMap.txt
+18
-12
idea/testData/psi/examples/io/IOSamples.txt
idea/testData/psi/examples/io/IOSamples.txt
+6
-4
idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java
idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java
+3
-3
未找到文件。
idea/src/org/jetbrains/jet/lang/parsing/JetParsing.java
浏览文件 @
db9c36ad
...
...
@@ -154,23 +154,27 @@ public class JetParsing extends AbstractJetParsing {
PsiBuilder
.
Marker
importDirective
=
mark
();
advance
();
// IMPORT_KEYWORD
PsiBuilder
.
Marker
reference
=
mark
();
PsiBuilder
.
Marker
qualifiedName
=
mark
();
if
(
at
(
NAMESPACE_KEYWORD
))
{
advance
();
// NAMESPACE_KEYWORD
expect
(
DOT
,
"Expecting '.'"
,
TokenSet
.
create
(
IDENTIFIER
,
MUL
,
SEMICOLON
));
}
PsiBuilder
.
Marker
reference
=
mark
();
expect
(
IDENTIFIER
,
"Expecting qualified name"
,
TokenSet
.
create
(
DOT
,
AS_KEYWORD
));
reference
.
done
(
REFERENCE_EXPRESSION
);
while
(
at
(
DOT
)
&&
lookahead
(
1
)
!=
MUL
)
{
PsiBuilder
.
Marker
precede
=
reference
.
precede
();
reference
.
done
(
REFERENCE_EXPRESSION
);
reference
=
precede
;
advance
();
// DOT
expect
(
IDENTIFIER
,
"Qualified name must be a '.'-separated identifier list"
,
TokenSet
.
create
(
AS_KEYWORD
,
DOT
,
SEMICOLON
));
reference
=
mark
();
expect
(
IDENTIFIER
,
"Qualified name must be a '.'-separated identifier list"
,
TokenSet
.
create
(
AS_KEYWORD
,
DOT
,
SEMICOLON
));
reference
.
done
(
REFERENCE_EXPRESSION
);
PsiBuilder
.
Marker
precede
=
qualifiedName
.
precede
();
qualifiedName
.
done
(
DOT_QIALIFIED_EXPRESSION
);
qualifiedName
=
precede
;
}
reference
.
done
(
REFERENCE_EXPRESSION
);
qualifiedName
.
drop
(
);
if
(
at
(
DOT
))
{
advance
();
// DOT
...
...
@@ -1234,40 +1238,31 @@ public class JetParsing extends AbstractJetParsing {
*/
private
void
parseUserType
()
{
PsiBuilder
.
Marker
userType
=
mark
();
parseUserTypeOrQualifiedName
();
userType
.
done
(
USER_TYPE
);
}
public
void
parseUserTypeOrQualifiedName
()
{
PsiBuilder
.
Marker
type
=
mark
();
boolean
typeClosed
=
false
;
if
(
at
(
NAMESPACE_KEYWORD
))
{
advance
();
// NAMESPACE_KEYWORD
expect
(
DOT
,
"Expecting '.'"
,
TokenSet
.
create
(
IDENTIFIER
));
}
PsiBuilder
.
Marker
reference
=
mark
();
while
(
true
)
{
expect
(
IDENTIFIER
,
"Type name expected"
,
TokenSet
.
create
(
LT
));
PsiBuilder
.
Marker
argsMarker
=
parseTypeArgumentList
(
);
reference
.
done
(
REFERENCE_EXPRESSION
);
parseTypeArgumentList
();
if
(!
at
(
DOT
))
{
// For recovery reasons, we allow to write Foo<A>.Bar<F, B>.X, but we need to place
// the last argument list next to the reference, not a its child
if
(
argsMarker
!=
null
)
{
type
.
doneBefore
(
REFERENCE_EXPRESSION
,
argsMarker
);
typeClosed
=
true
;
}
break
;
}
type
.
done
(
REFERENCE_EXPRESSION
);
type
=
type
.
precede
();
PsiBuilder
.
Marker
precede
=
userType
.
precede
();
userType
.
done
(
USER_TYPE
);
userType
=
precede
;
advance
();
// DOT
reference
=
mark
();
}
if
(!
typeClosed
)
{
type
.
done
(
REFERENCE_EXPRESSION
);
}
userType
.
done
(
USER_TYPE
);
}
/*
...
...
idea/src/org/jetbrains/jet/lang/psi/JetImportDirective.java
浏览文件 @
db9c36ad
...
...
@@ -4,7 +4,6 @@ import com.intellij.lang.ASTNode;
import
com.intellij.psi.tree.IElementType
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.Nullable
;
import
org.jetbrains.jet.JetNodeTypes
;
import
org.jetbrains.jet.lexer.JetTokens
;
/**
...
...
@@ -20,9 +19,13 @@ public class JetImportDirective extends JetElement {
visitor
.
visitImportDirective
(
this
);
}
public
boolean
isAbsoluteInRootNamespace
()
{
return
findChildByType
(
JetTokens
.
NAMESPACE_KEYWORD
)
!=
null
;
}
@Nullable
@IfNotParsed
public
Jet
ReferenceExpression
getImportedNam
e
()
{
return
(
JetReferenceExpression
)
findChildByType
(
JetNodeTypes
.
REFERENCE_EXPRESSION
);
public
Jet
Expression
getImportedReferenc
e
()
{
return
findChildByClass
(
JetExpression
.
class
);
}
@Nullable
...
...
idea/src/org/jetbrains/jet/lang/psi/JetReferenceExpression.java
浏览文件 @
db9c36ad
...
...
@@ -22,15 +22,6 @@ public class JetReferenceExpression extends JetExpression {
super
(
node
);
}
public
boolean
isAbsoluteInRootNamespace
()
{
return
findChildByType
(
JetTokens
.
NAMESPACE_KEYWORD
)
!=
null
;
}
@Nullable
public
JetReferenceExpression
getQualifier
()
{
return
findChildByClass
(
JetReferenceExpression
.
class
);
}
@Nullable
@IfNotParsed
public
String
getReferencedName
()
{
ASTNode
node
=
getNode
().
findChildByType
(
REFERENCE_TOKENS
);
...
...
idea/src/org/jetbrains/jet/lang/psi/JetUserType.java
浏览文件 @
db9c36ad
...
...
@@ -4,6 +4,7 @@ import com.intellij.lang.ASTNode;
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
;
...
...
@@ -16,8 +17,12 @@ public class JetUserType extends JetTypeElement {
super
(
node
);
}
public
boolean
isAbsoluteInRootNamespace
()
{
return
findChildByType
(
JetTokens
.
NAMESPACE_KEYWORD
)
!=
null
;
}
@Override
public
void
accept
(
JetVisitor
visitor
)
{
public
void
accept
(
@NotNull
JetVisitor
visitor
)
{
visitor
.
visitUserType
(
this
);
}
...
...
@@ -31,11 +36,16 @@ public class JetUserType extends JetTypeElement {
return
typeArgumentList
==
null
?
Collections
.<
JetTypeProjection
>
emptyList
()
:
typeArgumentList
.
getArguments
();
}
@Nullable
@Nullable
@IfNotParsed
public
JetReferenceExpression
getReferenceExpression
()
{
return
(
JetReferenceExpression
)
findChildByType
(
JetNodeTypes
.
REFERENCE_EXPRESSION
);
}
@Nullable
public
JetUserType
getQualifier
()
{
return
(
JetUserType
)
findChildByType
(
JetNodeTypes
.
USER_TYPE
);
}
@Nullable
public
String
getReferencedName
()
{
JetReferenceExpression
referenceExpression
=
getReferenceExpression
();
...
...
idea/src/org/jetbrains/jet/lang/resolve/ClassDescriptorResolver.java
浏览文件 @
db9c36ad
...
...
@@ -20,7 +20,7 @@ public class ClassDescriptorResolver {
public
ClassDescriptorResolver
(
JetSemanticServices
semanticServices
,
BindingTrace
trace
)
{
this
.
semanticServices
=
semanticServices
;
this
.
typeResolver
=
new
TypeResolver
(
trace
,
semanticServices
.
getErrorHandler
()
);
this
.
typeResolver
=
new
TypeResolver
(
trace
,
semanticServices
);
this
.
trace
=
trace
;
}
...
...
idea/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java
浏览文件 @
db9c36ad
...
...
@@ -59,15 +59,18 @@ public class TopDownAnalyzer {
ScopeWithImports
scopeWithImports
=
new
ScopeWithImports
(
declaringScope
);
for
(
JetImportDirective
importDirective
:
importDirectives
)
{
// if (importDirective.isAllUnder()) {
// // TODO: this works only for Java,
// // but should thoroughly resolve qualified names item-by-item
// // taking previous imports into account
// String importedName = importDirective.getImportedName();
// scopeWithImports.importScope(new JavaPackageScope(importedName, ));
// } else {
// throw new UnsupportedOperationException();
// }
if
(
importDirective
.
isAbsoluteInRootNamespace
())
{
throw
new
UnsupportedOperationException
();
}
if
(
importDirective
.
isAllUnder
())
{
JetExpression
importedReference
=
importDirective
.
getImportedReference
();
Type
type
=
semanticServices
.
getTypeInferrer
(
trace
).
getType
(
scopeWithImports
,
importedReference
,
false
);
if
(
type
!=
null
)
{
scopeWithImports
.
importScope
(
type
.
getMemberScope
());
}
}
else
{
throw
new
UnsupportedOperationException
();
}
}
WritableScope
namespaceScope
=
new
WritableScope
(
scopeWithImports
);
collectTypeDeclarators
(
namespaceScope
,
namespace
.
getDeclarations
());
...
...
idea/src/org/jetbrains/jet/lang/resolve/TypeResolver.java
浏览文件 @
db9c36ad
...
...
@@ -2,7 +2,7 @@ package org.jetbrains.jet.lang.resolve;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.Nullable
;
import
org.jetbrains.jet.lang.
ErrorHandler
;
import
org.jetbrains.jet.lang.
JetSemanticServices
;
import
org.jetbrains.jet.lang.psi.*
;
import
org.jetbrains.jet.lang.types.*
;
...
...
@@ -17,11 +17,11 @@ import java.util.Set;
public
class
TypeResolver
{
private
final
BindingTrace
trace
;
private
final
ErrorHandler
errorHandler
;
private
final
JetSemanticServices
semanticServices
;
public
TypeResolver
(
BindingTrace
trace
,
ErrorHandler
errorHandler
)
{
public
TypeResolver
(
BindingTrace
trace
,
JetSemanticServices
semanticServices
)
{
this
.
trace
=
trace
;
this
.
errorHandler
=
errorHandler
;
this
.
semanticServices
=
semanticServices
;
}
@NotNull
...
...
@@ -65,11 +65,11 @@ public class TypeResolver {
JetStandardClasses
.
STUB
);
}
else
{
errorHandler
.
unresolvedReference
(
type
.
getReferenceExpression
());
semanticServices
.
getErrorHandler
()
.
unresolvedReference
(
type
.
getReferenceExpression
());
}
}
else
{
errorHandler
.
unresolvedReference
(
type
.
getReferenceExpression
());
semanticServices
.
getErrorHandler
()
.
unresolvedReference
(
type
.
getReferenceExpression
());
}
}
...
...
@@ -163,54 +163,44 @@ public class TypeResolver {
@Nullable
public
ClassDescriptor
resolveClass
(
JetScope
scope
,
JetUserType
userType
)
{
return
resolveClass
(
scope
,
userType
.
getReferenceExpression
());
}
@Nullable
private
ClassDescriptor
resolveClass
(
JetScope
scope
,
JetReferenceExpression
expression
)
{
if
(
expression
.
isAbsoluteInRootNamespace
())
{
return
resolveClass
(
JetModuleUtil
.
getRootNamespaceScope
(
expression
),
expression
);
JetReferenceExpression
expression
=
userType
.
getReferenceExpression
();
if
(
userType
.
isAbsoluteInRootNamespace
())
{
return
JetModuleUtil
.
getRootNamespaceScope
(
userType
).
getClass
(
expression
.
getReferencedName
());
}
JetReferenceExpression
qualifier
=
expression
.
getQualifier
();
JetUserType
qualifier
=
userType
.
getQualifier
();
if
(
qualifier
!=
null
)
{
// TODO: this is slow. The faster way would be to start with the first item in the qualified name
// TODO: priorities: class of namespace first?
throw
new
UnsupportedOperationException
();
// MemberDomain domain = resolveClass(scope, qualifier);
// if (domain == null) {
// domain = resolveNamespace(scope, qualifier);
// }
//
// if (domain != null) {
// return domain.getClass(expression.getReferencedName());
// }
// return null;
scope
=
resolveClassLookupScope
(
scope
,
qualifier
);
}
return
scope
.
getClass
(
expression
.
getReferencedName
());
}
assert
qualifier
==
null
;
private
JetScope
resolveClassLookupScope
(
JetScope
scope
,
JetUserType
userType
)
{
ClassDescriptor
classDescriptor
=
resolveClass
(
scope
,
userType
);
if
(
classDescriptor
!=
null
)
{
return
classDescriptor
.
getMemberScope
(
resolveTypeProjections
(
scope
,
classDescriptor
.
getTypeConstructor
(),
userType
.
getTypeArguments
()));
}
return
scope
.
getClass
(
expression
.
getReferencedName
()
);
return
resolveNamespace
(
scope
,
userType
).
getMemberScope
(
);
}
@Nullable
private
NamespaceDescriptor
resolveNamespace
(
JetScope
scope
,
Jet
ReferenceExpression
expression
)
{
if
(
expression
.
isAbsoluteInRootNamespace
())
{
return
resolveNamespace
(
JetModuleUtil
.
getRootNamespaceScope
(
expression
),
expression
);
private
NamespaceDescriptor
resolveNamespace
(
JetScope
scope
,
Jet
UserType
userType
)
{
if
(
userType
.
isAbsoluteInRootNamespace
())
{
return
resolveNamespace
(
JetModuleUtil
.
getRootNamespaceScope
(
userType
),
userType
);
}
Jet
ReferenceExpression
qualifier
=
expression
.
getQualifier
();
Jet
UserType
qualifier
=
userType
.
getQualifier
();
if
(
qualifier
!=
null
)
{
NamespaceDescriptor
domain
=
resolveNamespace
(
scope
,
qualifier
);
if
(
domain
==
null
)
{
return
null
;
}
return
domain
.
getMemberScope
().
getNamespace
(
expression
.
getReferencedName
());
return
domain
.
getMemberScope
().
getNamespace
(
userType
.
getReferencedName
());
}
assert
qualifier
==
null
;
return
scope
.
getNamespace
(
expression
.
getReferencedName
())
;
NamespaceDescriptor
namespace
=
scope
.
getNamespace
(
userType
.
getReferencedName
())
;
trace
.
recordReferenceResolution
(
userType
.
getReferenceExpression
(),
namespace
);
return
namespace
;
}
}
idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java
浏览文件 @
db9c36ad
...
...
@@ -24,7 +24,7 @@ public class JetTypeInferrer {
public
JetTypeInferrer
(
BindingTrace
trace
,
JetSemanticServices
semanticServices
)
{
this
.
trace
=
trace
;
this
.
semanticServices
=
semanticServices
;
this
.
typeResolver
=
new
TypeResolver
(
trace
,
semanticServices
.
getErrorHandler
()
);
this
.
typeResolver
=
new
TypeResolver
(
trace
,
semanticServices
);
this
.
classDescriptorResolver
=
new
ClassDescriptorResolver
(
semanticServices
,
trace
);
}
...
...
@@ -445,6 +445,12 @@ public class JetTypeInferrer {
JetProperty
property
=
(
JetProperty
)
statement
;
scope
.
addPropertyDescriptor
(
classDescriptorResolver
.
resolvePropertyDescriptor
(
scope
,
property
));
}
else
if
(
statement
instanceof
JetExpression
)
{
getType
(
scope
,
(
JetExpression
)
statement
,
true
);
}
else
{
throw
new
UnsupportedOperationException
();
// TODO
}
}
JetElement
lastElement
=
block
.
get
(
block
.
size
()
-
1
);
if
(
lastElement
instanceof
JetExpression
)
{
...
...
idea/testData/psi/Attributes.txt
浏览文件 @
db9c36ad
...
...
@@ -78,45 +78,50 @@ JetFile: Attributes.jet
ATTRIBUTE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
REFERENCE_EXPRESSION
REFERENCE_EXPRESSION
REFERENCE_EXPRESSION
REFERENCE_EXPRESSION
USER_TYPE
USER_TYPE
USER_TYPE
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('goo')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('doo')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('f')
PsiElement(GT)('>')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('goo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('doo')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('goo')
PsiElement(IDENTIFIER)('f')
PsiElement(GT)('>')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('goo')
PsiElement(GT)('>')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(RBRACKET)(']')
PsiWhiteSpace('\n')
...
...
@@ -251,16 +256,19 @@ JetFile: Attributes.jet
ATTRIBUTE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
REFERENCE_EXPRESSION
REFERENCE_EXPRESSION
USER_TYPE
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('b')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('f')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('b')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('f')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('c')
PsiElement(RBRACKET)(']')
PsiWhiteSpace('\n')
...
...
idea/testData/psi/Attributes_ERR.txt
浏览文件 @
db9c36ad
...
...
@@ -84,45 +84,50 @@ JetFile: Attributes_ERR.jet
ATTRIBUTE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
REFERENCE_EXPRESSION
REFERENCE_EXPRESSION
REFERENCE_EXPRESSION
REFERENCE_EXPRESSION
USER_TYPE
USER_TYPE
USER_TYPE
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('goo')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('doo')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('f')
PsiElement(GT)('>')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('goo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('doo')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('goo')
PsiElement(IDENTIFIER)('f')
PsiElement(GT)('>')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('goo')
PsiElement(GT)('>')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(RBRACKET)(']')
PsiWhiteSpace('\n')
...
...
@@ -218,16 +223,19 @@ JetFile: Attributes_ERR.jet
ATTRIBUTE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
REFERENCE_EXPRESSION
REFERENCE_EXPRESSION
USER_TYPE
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('b')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('f')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('b')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('f')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('c')
PsiElement(RBRACKET)(']')
PsiWhiteSpace('\n')
...
...
idea/testData/psi/FunctionTypes.txt
浏览文件 @
db9c36ad
...
...
@@ -585,10 +585,11 @@ JetFile: FunctionTypes.jet
PsiElement(LBRACE)('{')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
...
...
@@ -617,25 +618,26 @@ JetFile: FunctionTypes.jet
PsiElement(LBRACE)('{')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiElement(DOT)('.')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
...
...
@@ -767,10 +769,11 @@ JetFile: FunctionTypes.jet
PsiElement(LBRACE)('{')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
...
...
@@ -814,25 +817,26 @@ JetFile: FunctionTypes.jet
PsiElement(LBRACE)('{')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiElement(DOT)('.')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
...
...
@@ -976,10 +980,11 @@ JetFile: FunctionTypes.jet
PsiElement(LBRACE)('{')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
...
...
@@ -1017,25 +1022,26 @@ JetFile: FunctionTypes.jet
PsiElement(LBRACE)('{')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiElement(DOT)('.')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
...
...
@@ -1221,10 +1227,11 @@ JetFile: FunctionTypes.jet
PsiElement(LBRACE)('{')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
...
...
@@ -1286,25 +1293,26 @@ JetFile: FunctionTypes.jet
PsiElement(LBRACE)('{')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiElement(DOT)('.')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
...
...
idea/testData/psi/ImportSoftKW.txt
浏览文件 @
db9c36ad
...
...
@@ -3,17 +3,20 @@ JetFile: ImportSoftKW.jet
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
REFERENCE
_EXPRESSION
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('import')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('import')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('import')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('import')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('import')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('import')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('import')
PsiWhiteSpace(' ')
PsiElement(as)('as')
PsiWhiteSpace(' ')
...
...
idea/testData/psi/Imports.txt
浏览文件 @
db9c36ad
...
...
@@ -12,9 +12,9 @@ JetFile: Imports.jet
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
PsiElement(namespace)('namespace')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(namespace)('namespace')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace('\n')
IMPORT_DIRECTIVE
...
...
@@ -26,11 +26,12 @@ JetFile: Imports.jet
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiWhiteSpace('\n')
IMPORT_DIRECTIVE
PsiElement(import)('import')
...
...
@@ -45,11 +46,12 @@ JetFile: Imports.jet
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiWhiteSpace(' ')
PsiElement(as)('as')
PsiWhiteSpace(' ')
...
...
idea/testData/psi/Imports_ERR.txt
浏览文件 @
db9c36ad
...
...
@@ -12,30 +12,30 @@ JetFile: Imports_ERR.jet
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
PsiElement(namespace)('namespace')
PsiErrorElement:Expecting '.'
<empty list>
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(namespace)('namespace')
PsiErrorElement:Expecting '.'
<empty list>
PsiWhiteSpace(' ')
PsiErrorElement:Expecting qualified name
PsiElement(SEMICOLON)(';')
PsiWhiteSpace('\n')
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
PsiElement(namespace)('namespace')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(namespace)('namespace')
PsiElement(DOT)('.')
PsiErrorElement:Expecting qualified name
PsiElement(MUL)('*')
PsiWhiteSpace('\n')
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
PsiElement(namespace)('namespace')
PsiElement(DOT)('.')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(namespace)('namespace')
PsiElement(DOT)('.')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting qualified name
PsiElement(SEMICOLON)(';')
PsiWhiteSpace('\n\n')
...
...
@@ -57,15 +57,17 @@ JetFile: Imports_ERR.jet
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiWhiteSpace('\n')
PsiElement(IDENTIFIER)('import')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('import')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting namespace or top level declaration
PsiElement(IDENTIFIER)('foo')
...
...
@@ -81,11 +83,12 @@ JetFile: Imports_ERR.jet
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiElement(MUL)('*')
PsiWhiteSpace(' ')
...
...
@@ -97,11 +100,12 @@ JetFile: Imports_ERR.jet
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiElement(MUL)('*')
PsiWhiteSpace(' ')
...
...
@@ -122,40 +126,44 @@ JetFile: Imports_ERR.jet
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiErrorElement:Qualified name must be a '.'-separated identifier list
<empty list>
PsiWhiteSpace(' ')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiErrorElement:Qualified name must be a '.'-separated identifier list
<empty list>
PsiElement(SEMICOLON)(';')
PsiWhiteSpace('\n')
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiErrorElement:Qualified name must be a '.'-separated identifier list
<empty list>
PsiWhiteSpace(' ')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiErrorElement:Qualified name must be a '.'-separated identifier list
<empty list>
PsiElement(SEMICOLON)(';')
PsiWhiteSpace('\n')
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiErrorElement:Qualified name must be a '.'-separated identifier list
<empty list>
PsiWhiteSpace(' ')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiErrorElement:Qualified name must be a '.'-separated identifier list
<empty list>
PsiElement(as)('as')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('bar')
...
...
@@ -165,11 +173,12 @@ JetFile: Imports_ERR.jet
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiElement(MUL)('*')
PsiWhiteSpace(' ')
...
...
@@ -183,11 +192,12 @@ JetFile: Imports_ERR.jet
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiElement(MUL)('*')
PsiWhiteSpace(' ')
...
...
idea/testData/psi/NamespaceBlock.txt
浏览文件 @
db9c36ad
...
...
@@ -31,11 +31,12 @@ JetFile: NamespaceBlock.jet
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiElement(MUL)('*')
PsiElement(SEMICOLON)(';')
...
...
idea/testData/psi/NamespaceBlock_ERR.txt
浏览文件 @
db9c36ad
...
...
@@ -27,15 +27,17 @@ JetFile: NamespaceBlock_ERR.jet
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiWhiteSpace('\n')
PsiElement(IDENTIFIER)('import')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('import')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting namespace or top level declaration
PsiElement(IDENTIFIER)('foo')
...
...
@@ -60,11 +62,12 @@ JetFile: NamespaceBlock_ERR.jet
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiElement(MUL)('*')
PsiWhiteSpace(' ')
...
...
@@ -76,11 +79,12 @@ JetFile: NamespaceBlock_ERR.jet
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiElement(MUL)('*')
PsiWhiteSpace(' ')
...
...
@@ -101,40 +105,44 @@ JetFile: NamespaceBlock_ERR.jet
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiErrorElement:Qualified name must be a '.'-separated identifier list
<empty list>
PsiWhiteSpace(' ')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiErrorElement:Qualified name must be a '.'-separated identifier list
<empty list>
PsiElement(SEMICOLON)(';')
PsiWhiteSpace('\n ')
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiErrorElement:Qualified name must be a '.'-separated identifier list
<empty list>
PsiWhiteSpace(' ')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiErrorElement:Qualified name must be a '.'-separated identifier list
<empty list>
PsiElement(SEMICOLON)(';')
PsiWhiteSpace('\n ')
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiErrorElement:Qualified name must be a '.'-separated identifier list
<empty list>
PsiWhiteSpace(' ')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiErrorElement:Qualified name must be a '.'-separated identifier list
<empty list>
PsiElement(as)('as')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('bar')
...
...
@@ -144,11 +152,12 @@ JetFile: NamespaceBlock_ERR.jet
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiElement(MUL)('*')
PsiWhiteSpace(' ')
...
...
@@ -162,11 +171,12 @@ JetFile: NamespaceBlock_ERR.jet
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
REFERENCE
_EXPRESSION
DOT_QIALIFIED
_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiElement(MUL)('*')
PsiWhiteSpace(' ')
...
...
idea/testData/psi/Properties.txt
浏览文件 @
db9c36ad
...
...
@@ -75,10 +75,11 @@ JetFile: Properties.jet
PsiElement(LBRACE)('{')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
...
...
@@ -165,10 +166,11 @@ JetFile: Properties.jet
PsiElement(LBRACE)('{')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
...
...
@@ -218,10 +220,11 @@ JetFile: Properties.jet
PsiElement(LBRACE)('{')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
...
...
@@ -278,10 +281,11 @@ JetFile: Properties.jet
PsiElement(LBRACE)('{')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
...
...
@@ -360,10 +364,11 @@ JetFile: Properties.jet
PsiElement(LBRACE)('{')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
...
...
@@ -421,10 +426,11 @@ JetFile: Properties.jet
PsiElement(LBRACE)('{')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
...
...
idea/testData/psi/Properties_ERR.txt
浏览文件 @
db9c36ad
...
...
@@ -139,10 +139,11 @@ JetFile: Properties_ERR.jet
PsiElement(LBRACE)('{')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
...
...
@@ -194,10 +195,11 @@ JetFile: Properties_ERR.jet
PsiElement(LBRACE)('{')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
...
...
idea/testData/psi/RootNamespace.txt
浏览文件 @
db9c36ad
...
...
@@ -59,15 +59,17 @@ JetFile: RootNamespace.jet
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
REFERENCE_EXPRESSION
USER_TYPE
USER_TYPE
PsiElement(namespace)('namespace')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(namespace)('namespace')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('X')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
...
...
idea/testData/psi/When.txt
浏览文件 @
db9c36ad
...
...
@@ -253,10 +253,11 @@ JetFile: When.jet
TYPE_PATTERN
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('A')
PsiElement(DOT)('.')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('b')
PsiWhiteSpace(' ')
PsiElement(DOUBLE_ARROW)('=>')
...
...
idea/testData/psi/examples/collections/HashMap.txt
浏览文件 @
db9c36ad
...
...
@@ -53,13 +53,15 @@ JetFile: HashMap.jet
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
REFERENCE_EXPRESSION
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('java')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('lang')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('lang')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Object')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
...
...
@@ -76,13 +78,15 @@ JetFile: HashMap.jet
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
REFERENCE_EXPRESSION
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('java')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('lang')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('lang')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Object')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n')
...
...
@@ -141,13 +145,15 @@ JetFile: HashMap.jet
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
REFERENCE_EXPRESSION
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('java')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('lang')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('lang')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Object')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
...
...
idea/testData/psi/examples/io/IOSamples.txt
浏览文件 @
db9c36ad
...
...
@@ -90,13 +90,15 @@ JetFile: IOSamples.jet
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
REFERENCE_EXPRESSION
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('java')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('io')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('io')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Closeable')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
...
...
idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java
浏览文件 @
db9c36ad
...
...
@@ -321,7 +321,7 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase {
public
void
testBlocks
()
throws
Exception
{
assertType
(
"if (1) {val a = 1; a} else {null}"
,
"Int?"
);
assertType
(
"if (1) {() => val a = 1; a} else {() => null}"
,
"Function0<Int?>"
);
assertType
(
"if (1) {() => val a = 1; a; var b : Boolean; b
= true; b
} else null"
,
"Function0<Boolean>?"
);
assertType
(
"if (1) {() => val a = 1; a; var b : Boolean; b} else null"
,
"Function0<Boolean>?"
);
assertType
(
"if (1) {() => val a = 1; a; var b = a; b} else null"
,
"Function0<Int>?"
);
}
...
...
@@ -488,8 +488,8 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase {
return
makeType
(
classDefinitions
.
BASIC_SCOPE
,
typeStr
);
}
private
static
Type
makeType
(
JetScope
scope
,
String
typeStr
)
{
return
new
TypeResolver
(
BindingTrace
.
DUMMY
,
ErrorHandler
.
THROW_EXCEPTION
).
resolveType
(
scope
,
JetChangeUtil
.
createType
(
getProject
(),
typeStr
));
private
Type
makeType
(
JetScope
scope
,
String
typeStr
)
{
return
new
TypeResolver
(
BindingTrace
.
DUMMY
,
semanticServices
).
resolveType
(
scope
,
JetChangeUtil
.
createType
(
getProject
(),
typeStr
));
}
private
class
ClassDefinitions
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录