Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
硅谷海盗
kotlin
提交
cd2db7f1
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,发现更多精彩内容 >>
提交
cd2db7f1
编写于
9月 08, 2011
作者:
S
svtk
浏览文件
操作
浏览文件
下载
差异文件
Fixes after merge
上级
32a002b0
43dd5d12
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
11 addition
and
9 deletion
+11
-9
idea/src/org/jetbrains/jet/lang/resolve/ClassDescriptorResolver.java
...g/jetbrains/jet/lang/resolve/ClassDescriptorResolver.java
+5
-3
idea/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java
idea/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java
+6
-6
未找到文件。
idea/src/org/jetbrains/jet/lang/resolve/ClassDescriptorResolver.java
浏览文件 @
cd2db7f1
...
...
@@ -559,10 +559,12 @@ public class ClassDescriptorResolver {
private
static
ClassModifiers
resolveClassModifiers
(
@Nullable
JetModifierList
modifierList
)
{
if
(
modifierList
==
null
)
return
ClassModifiers
.
DEFAULT_MODIFIERS
;
boolean
abstractModifier
=
modifierList
.
hasModifier
(
JetTokens
.
ABSTRACT_KEYWORD
);
boolean
traitModifier
=
modifierList
.
hasModifier
(
JetTokens
.
TRAIT_KEYWORD
);
return
new
ClassModifiers
(
modifierList
.
hasModifier
(
JetTokens
.
ABSTRACT_KEYWORD
)
,
modifierList
.
hasModifier
(
JetTokens
.
OPEN_KEYWORD
)
||
modifierList
.
hasModifier
(
JetTokens
.
ABSTRACT_KEYWORD
)
,
modifierList
.
hasModifier
(
JetTokens
.
TRAIT_KEYWORD
)
abstractModifier
||
traitModifier
,
modifierList
.
hasModifier
(
JetTokens
.
OPEN_KEYWORD
)
||
abstractModifier
||
traitModifier
,
traitModifier
);
}
...
...
idea/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java
浏览文件 @
cd2db7f1
...
...
@@ -653,7 +653,7 @@ public class TopDownAnalyzer {
public
void
visitDelegationToSuperCallSpecifier
(
JetDelegatorToSuperCall
call
)
{
JetValueArgumentList
valueArgumentList
=
call
.
getValueArgumentList
();
ASTNode
node
=
valueArgumentList
==
null
?
call
.
getNode
()
:
valueArgumentList
.
getNode
();
if
(
descriptor
.
isTrait
())
{
if
(
descriptor
.
getClassModifiers
().
isTrait
())
{
trace
.
getErrorHandler
().
genericError
(
node
,
"Traits can not initialize supertypes"
);
}
JetTypeReference
typeReference
=
call
.
getTypeReference
();
...
...
@@ -664,7 +664,7 @@ public class TopDownAnalyzer {
recordSupertype
(
typeReference
,
supertype
);
ClassDescriptor
classDescriptor
=
TypeUtils
.
getClassDescriptor
(
supertype
);
if
(
classDescriptor
!=
null
)
{
if
(
classDescriptor
.
isTrait
())
{
if
(
classDescriptor
.
getClassModifiers
().
isTrait
())
{
trace
.
getErrorHandler
().
genericError
(
node
,
"A trait may not have a constructor"
);
}
}
...
...
@@ -673,7 +673,7 @@ public class TopDownAnalyzer {
recordSupertype
(
typeReference
,
trace
.
getBindingContext
().
get
(
BindingContext
.
TYPE
,
typeReference
));
}
}
else
if
(!
descriptor
.
isTrait
())
{
else
if
(!
descriptor
.
getClassModifiers
().
isTrait
())
{
JetType
supertype
=
trace
.
getBindingContext
().
get
(
BindingContext
.
TYPE
,
typeReference
);
recordSupertype
(
typeReference
,
supertype
);
...
...
@@ -692,8 +692,8 @@ public class TopDownAnalyzer {
if
(
supertype
!=
null
)
{
ClassDescriptor
classDescriptor
=
TypeUtils
.
getClassDescriptor
(
supertype
);
if
(
classDescriptor
!=
null
)
{
if
(!
descriptor
.
isTrait
())
{
if
(
classDescriptor
.
hasConstructors
()
&&
!
ErrorUtils
.
isError
(
classDescriptor
.
getTypeConstructor
())
&&
!
classDescriptor
.
isTrait
())
{
if
(!
descriptor
.
getClassModifiers
().
isTrait
())
{
if
(
classDescriptor
.
hasConstructors
()
&&
!
ErrorUtils
.
isError
(
classDescriptor
.
getTypeConstructor
())
&&
!
classDescriptor
.
getClassModifiers
().
isTrait
())
{
trace
.
getErrorHandler
().
genericError
(
specifier
.
getNode
(),
"This type has a constructor, and thus must be initialized here"
);
}
}
...
...
@@ -735,7 +735,7 @@ public class TopDownAnalyzer {
ClassDescriptor
classDescriptor
=
TypeUtils
.
getClassDescriptor
(
supertype
);
if
(
classDescriptor
!=
null
)
{
if
(!
classDescriptor
.
isTrait
())
{
if
(!
classDescriptor
.
getClassModifiers
().
isTrait
())
{
if
(
classAppeared
)
{
trace
.
getErrorHandler
().
genericError
(
typeReference
.
getNode
(),
"Only one class may appear in a supertype list"
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录