Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
硅谷海盗
kotlin
提交
582259ff
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,发现更多精彩内容 >>
提交
582259ff
编写于
3月 28, 2012
作者:
P
Pavel V. Talanov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Support for inline in front-end. Add SimpleFunctionDescriptor#isInline.
上级
55def7f8
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
48 addition
and
10 deletion
+48
-10
compiler/backend/src/org/jetbrains/jet/codegen/CodegenContext.java
...backend/src/org/jetbrains/jet/codegen/CodegenContext.java
+2
-1
compiler/backend/src/org/jetbrains/jet/codegen/CodegenUtil.java
...er/backend/src/org/jetbrains/jet/codegen/CodegenUtil.java
+4
-1
compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java
...tbrains/jet/lang/resolve/java/JavaDescriptorResolver.java
+2
-1
compiler/frontend/src/org/jetbrains/jet/lang/descriptors/SimpleFunctionDescriptor.java
...brains/jet/lang/descriptors/SimpleFunctionDescriptor.java
+2
-0
compiler/frontend/src/org/jetbrains/jet/lang/descriptors/SimpleFunctionDescriptorImpl.java
...ns/jet/lang/descriptors/SimpleFunctionDescriptorImpl.java
+23
-4
compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java
...rc/org/jetbrains/jet/lang/resolve/DescriptorResolver.java
+4
-1
compiler/frontend/src/org/jetbrains/jet/lang/types/ErrorUtils.java
...frontend/src/org/jetbrains/jet/lang/types/ErrorUtils.java
+2
-1
compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ClosureExpressionsTypingVisitor.java
...ng/types/expressions/ClosureExpressionsTypingVisitor.java
+9
-1
未找到文件。
compiler/backend/src/org/jetbrains/jet/codegen/CodegenContext.java
浏览文件 @
582259ff
...
...
@@ -242,7 +242,8 @@ public abstract class CodegenContext {
fd
.
getValueParameters
(),
fd
.
getReturnType
(),
fd
.
getModality
(),
fd
.
getVisibility
());
fd
.
getVisibility
(),
/*isInline = */
false
);
accessor
=
myAccessor
;
}
else
if
(
descriptor
instanceof
PropertyDescriptor
)
{
...
...
compiler/backend/src/org/jetbrains/jet/codegen/CodegenUtil.java
浏览文件 @
582259ff
...
...
@@ -72,7 +72,10 @@ public class CodegenUtil {
Collections
.<
TypeParameterDescriptor
>
emptyList
(),
fd
.
getValueParameters
(),
fd
.
getReturnType
(),
Modality
.
FINAL
,
Visibility
.
PUBLIC
);
Modality
.
FINAL
,
Visibility
.
PUBLIC
,
/*isInline = */
false
);
return
invokeDescriptor
;
}
...
...
compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java
浏览文件 @
582259ff
...
...
@@ -1518,7 +1518,8 @@ public class JavaDescriptorResolver {
valueParameterDescriptors
.
descriptors
,
makeReturnType
(
returnType
,
method
,
methodTypeVariableResolver
),
Modality
.
convertFromFlags
(
method
.
getPsiMethod
().
hasModifierProperty
(
PsiModifier
.
ABSTRACT
),
!
method
.
isFinal
()),
resolveVisibilityFromPsiModifiers
(
method
.
getPsiMethod
())
resolveVisibilityFromPsiModifiers
(
method
.
getPsiMethod
()),
/*isInline = */
false
);
trace
.
record
(
BindingContext
.
FUNCTION
,
method
.
getPsiMethod
(),
functionDescriptorImpl
);
FunctionDescriptor
substitutedFunctionDescriptor
=
functionDescriptorImpl
;
...
...
compiler/frontend/src/org/jetbrains/jet/lang/descriptors/SimpleFunctionDescriptor.java
浏览文件 @
582259ff
...
...
@@ -32,4 +32,6 @@ public interface SimpleFunctionDescriptor extends FunctionDescriptor {
@NotNull
@Override
SimpleFunctionDescriptor
getOriginal
();
boolean
isInline
();
}
compiler/frontend/src/org/jetbrains/jet/lang/descriptors/SimpleFunctionDescriptorImpl.java
浏览文件 @
582259ff
...
...
@@ -31,6 +31,8 @@ import java.util.List;
*/
public
class
SimpleFunctionDescriptorImpl
extends
FunctionDescriptorImpl
implements
SimpleFunctionDescriptor
{
private
boolean
isInline
=
false
;
public
SimpleFunctionDescriptorImpl
(
@NotNull
DeclarationDescriptor
containingDeclaration
,
@NotNull
List
<
AnnotationDescriptor
>
annotations
,
...
...
@@ -48,9 +50,18 @@ public class SimpleFunctionDescriptorImpl extends FunctionDescriptorImpl impleme
super
(
containingDeclaration
,
original
,
annotations
,
name
,
kind
);
}
@Override
public
FunctionDescriptorImpl
initialize
(
@Nullable
JetType
receiverType
,
@NotNull
ReceiverDescriptor
expectedThisObject
,
@NotNull
List
<
TypeParameterDescriptor
>
typeParameters
,
@NotNull
List
<
ValueParameterDescriptor
>
unsubstitutedValueParameters
,
@Nullable
JetType
unsubstitutedReturnType
,
@Nullable
Modality
modality
,
@NotNull
Visibility
visibility
)
{
return
super
.
initialize
(
receiverType
,
expectedThisObject
,
typeParameters
,
unsubstitutedValueParameters
,
unsubstitutedReturnType
,
modality
,
visibility
);
public
SimpleFunctionDescriptorImpl
initialize
(
@Nullable
JetType
receiverType
,
@NotNull
ReceiverDescriptor
expectedThisObject
,
@NotNull
List
<
TypeParameterDescriptor
>
typeParameters
,
@NotNull
List
<
ValueParameterDescriptor
>
unsubstitutedValueParameters
,
@Nullable
JetType
unsubstitutedReturnType
,
@Nullable
Modality
modality
,
@NotNull
Visibility
visibility
,
boolean
isInline
)
{
SimpleFunctionDescriptorImpl
result
=
(
SimpleFunctionDescriptorImpl
)
super
.
initialize
(
receiverType
,
expectedThisObject
,
typeParameters
,
unsubstitutedValueParameters
,
unsubstitutedReturnType
,
modality
,
visibility
);
result
.
isInline
=
isInline
;
return
result
;
}
@NotNull
...
...
@@ -82,6 +93,14 @@ public class SimpleFunctionDescriptorImpl extends FunctionDescriptorImpl impleme
@NotNull
@Override
public
SimpleFunctionDescriptor
copy
(
DeclarationDescriptor
newOwner
,
boolean
makeNonAbstract
,
Kind
kind
,
boolean
copyOverrides
)
{
return
(
SimpleFunctionDescriptor
)
doSubstitute
(
TypeSubstitutor
.
EMPTY
,
newOwner
,
DescriptorUtils
.
convertModality
(
modality
,
makeNonAbstract
),
false
,
copyOverrides
,
kind
);
SimpleFunctionDescriptorImpl
copy
=
(
SimpleFunctionDescriptorImpl
)
doSubstitute
(
TypeSubstitutor
.
EMPTY
,
newOwner
,
DescriptorUtils
.
convertModality
(
modality
,
makeNonAbstract
),
false
,
copyOverrides
,
kind
);
copy
.
isInline
=
isInline
;
return
copy
;
}
@Override
public
boolean
isInline
()
{
return
isInline
;
}
}
compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java
浏览文件 @
582259ff
...
...
@@ -219,6 +219,8 @@ public class DescriptorResolver {
Modality
defaultModality
=
getDefaultModality
(
containingDescriptor
,
hasBody
);
Modality
modality
=
resolveModalityFromModifiers
(
function
.
getModifierList
(),
defaultModality
);
Visibility
visibility
=
resolveVisibilityFromModifiers
(
function
.
getModifierList
());
JetModifierList
modifierList
=
function
.
getModifierList
();
boolean
isInline
=
(
modifierList
!=
null
)
&&
modifierList
.
hasModifier
(
JetTokens
.
INLINE_KEYWORD
);
functionDescriptor
.
initialize
(
receiverType
,
DescriptorUtils
.
getExpectedThisObjectIfNeeded
(
containingDescriptor
),
...
...
@@ -226,7 +228,8 @@ public class DescriptorResolver {
valueParameterDescriptors
,
returnType
,
modality
,
visibility
);
visibility
,
isInline
);
trace
.
record
(
BindingContext
.
FUNCTION
,
function
,
functionDescriptor
);
return
functionDescriptor
;
...
...
compiler/frontend/src/org/jetbrains/jet/lang/types/ErrorUtils.java
浏览文件 @
582259ff
...
...
@@ -172,7 +172,8 @@ public class ErrorUtils {
Collections
.<
ValueParameterDescriptor
>
emptyList
(),
// TODO
createErrorType
(
"<ERROR FUNCTION RETURN TYPE>"
),
Modality
.
OPEN
,
Visibility
.
INTERNAL
Visibility
.
INTERNAL
,
/*isInline = */
false
);
return
function
;
}
...
...
compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ClosureExpressionsTypingVisitor.java
浏览文件 @
582259ff
...
...
@@ -145,7 +145,15 @@ public class ClosureExpressionsTypingVisitor extends ExpressionTypingVisitor {
else
{
effectiveReceiverType
=
context
.
expressionTypingServices
.
getTypeResolver
().
resolveType
(
context
.
scope
,
receiverTypeRef
,
context
.
trace
,
true
);
}
functionDescriptor
.
initialize
(
effectiveReceiverType
,
NO_RECEIVER
,
Collections
.<
TypeParameterDescriptor
>
emptyList
(),
valueParameterDescriptors
,
null
,
Modality
.
FINAL
,
Visibility
.
LOCAL
);
functionDescriptor
.
initialize
(
effectiveReceiverType
,
NO_RECEIVER
,
Collections
.<
TypeParameterDescriptor
>
emptyList
(),
valueParameterDescriptors
,
/*unsubstitutedReturnType = */
null
,
Modality
.
FINAL
,
Visibility
.
LOCAL
,
/*isInline = */
false
);
context
.
trace
.
record
(
BindingContext
.
FUNCTION
,
expression
,
functionDescriptor
);
return
functionDescriptor
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录