Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
硅谷海盗
kotlin
提交
a43c0c19
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,发现更多精彩内容 >>
提交
a43c0c19
编写于
4月 08, 2012
作者:
S
Stepan Koltsov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
assert builtins do not reference java.* classes
上级
3e9ef572
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
24 addition
and
3 deletion
+24
-3
compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java
.../backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java
+24
-3
未找到文件。
compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java
浏览文件 @
a43c0c19
...
@@ -335,6 +335,7 @@ public class JetTypeMapper {
...
@@ -335,6 +335,7 @@ public class JetTypeMapper {
if
(
signatureVisitor
!=
null
)
{
if
(
signatureVisitor
!=
null
)
{
visitAsmType
(
signatureVisitor
,
asmType
,
true
);
visitAsmType
(
signatureVisitor
,
asmType
,
true
);
}
}
checkValidType
(
asmType
);
return
asmType
;
return
asmType
;
}
}
...
@@ -349,18 +350,22 @@ public class JetTypeMapper {
...
@@ -349,18 +350,22 @@ public class JetTypeMapper {
mapType
(
memberType
,
signatureVisitor
,
MapTypeMode
.
TYPE_PARAMETER
);
mapType
(
memberType
,
signatureVisitor
,
MapTypeMode
.
TYPE_PARAMETER
);
signatureVisitor
.
writeArrayEnd
();
signatureVisitor
.
writeArrayEnd
();
}
}
Type
r
;
if
(!
isGenericsArray
(
jetType
))
{
if
(!
isGenericsArray
(
jetType
))
{
r
eturn
Type
.
getType
(
"["
+
boxType
(
mapType
(
memberType
,
kind
)).
getDescriptor
());
r
=
Type
.
getType
(
"["
+
boxType
(
mapType
(
memberType
,
kind
)).
getDescriptor
());
}
else
{
}
else
{
r
eturn
ARRAY_GENERIC_TYPE
;
r
=
ARRAY_GENERIC_TYPE
;
}
}
checkValidType
(
r
);
return
r
;
}
}
if
(
JetStandardClasses
.
getAny
().
equals
(
descriptor
))
{
if
(
JetStandardClasses
.
getAny
().
equals
(
descriptor
))
{
if
(
signatureVisitor
!=
null
)
{
if
(
signatureVisitor
!=
null
)
{
visitAsmType
(
signatureVisitor
,
TYPE_OBJECT
,
jetType
.
isNullable
());
visitAsmType
(
signatureVisitor
,
TYPE_OBJECT
,
jetType
.
isNullable
());
}
}
checkValidType
(
TYPE_OBJECT
);
return
TYPE_OBJECT
;
return
TYPE_OBJECT
;
}
}
...
@@ -393,6 +398,7 @@ public class JetTypeMapper {
...
@@ -393,6 +398,7 @@ public class JetTypeMapper {
signatureVisitor
.
writeClassEnd
();
signatureVisitor
.
writeClassEnd
();
}
}
checkValidType
(
asmType
);
return
asmType
;
return
asmType
;
}
}
...
@@ -403,6 +409,7 @@ public class JetTypeMapper {
...
@@ -403,6 +409,7 @@ public class JetTypeMapper {
TypeParameterDescriptor
typeParameterDescriptor
=
(
TypeParameterDescriptor
)
jetType
.
getConstructor
().
getDeclarationDescriptor
();
TypeParameterDescriptor
typeParameterDescriptor
=
(
TypeParameterDescriptor
)
jetType
.
getConstructor
().
getDeclarationDescriptor
();
signatureVisitor
.
writeTypeVariable
(
typeParameterDescriptor
.
getName
(),
jetType
.
isNullable
(),
type
);
signatureVisitor
.
writeTypeVariable
(
typeParameterDescriptor
.
getName
(),
jetType
.
isNullable
(),
type
);
}
}
checkValidType
(
type
);
return
type
;
return
type
;
}
}
...
@@ -415,11 +422,13 @@ public class JetTypeMapper {
...
@@ -415,11 +422,13 @@ public class JetTypeMapper {
if
(
signatureVisitor
!=
null
)
{
if
(
signatureVisitor
!=
null
)
{
visitAsmType
(
signatureVisitor
,
boxed
,
jetType
.
isNullable
());
visitAsmType
(
signatureVisitor
,
boxed
,
jetType
.
isNullable
());
}
}
checkValidType
(
boxed
);
return
boxed
;
return
boxed
;
}
else
{
}
else
{
if
(
signatureVisitor
!=
null
)
{
if
(
signatureVisitor
!=
null
)
{
visitAsmType
(
signatureVisitor
,
asmType
,
jetType
.
isNullable
());
visitAsmType
(
signatureVisitor
,
asmType
,
jetType
.
isNullable
());
}
}
checkValidType
(
asmType
);
return
asmType
;
return
asmType
;
}
}
}
}
...
@@ -428,6 +437,18 @@ public class JetTypeMapper {
...
@@ -428,6 +437,18 @@ public class JetTypeMapper {
visitor
.
writeAsmType
(
asmType
,
nullable
);
visitor
.
writeAsmType
(
asmType
,
nullable
);
}
}
private
void
checkValidType
(
@NotNull
Type
type
)
{
if
(
compilerSpecialMode
==
CompilerSpecialMode
.
BUILTINS
)
{
String
descriptor
=
type
.
getDescriptor
();
if
(
descriptor
.
equals
(
"Ljava/lang/Object;"
))
{
return
;
}
else
if
(
descriptor
.
startsWith
(
"Ljava/"
))
{
throw
new
IllegalStateException
(
"builtins must not reference java.* classes: "
+
descriptor
);
}
}
}
public
static
Type
unboxType
(
final
Type
type
)
{
public
static
Type
unboxType
(
final
Type
type
)
{
JvmPrimitiveType
jvmPrimitiveType
=
JvmPrimitiveType
.
getByWrapperAsmType
(
type
);
JvmPrimitiveType
jvmPrimitiveType
=
JvmPrimitiveType
.
getByWrapperAsmType
(
type
);
if
(
jvmPrimitiveType
!=
null
)
{
if
(
jvmPrimitiveType
!=
null
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录