Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
硅谷海盗
kotlin
提交
c6e54b13
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,发现更多精彩内容 >>
提交
c6e54b13
编写于
3月 13, 2012
作者:
A
Andrey Breslav
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Deterministic order of setter calls
上级
93fcd7d1
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
73 addition
and
51 deletion
+73
-51
compiler/frontend/src/org/jetbrains/jet/di/InjectorForMacros.java
.../frontend/src/org/jetbrains/jet/di/InjectorForMacros.java
+16
-17
compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzer.java
.../src/org/jetbrains/jet/di/InjectorForTopDownAnalyzer.java
+40
-23
compiler/tests/org/jetbrains/jet/di/InjectorForTests.java
compiler/tests/org/jetbrains/jet/di/InjectorForTests.java
+7
-7
injector-generator/src/org/jetbrains/jet/di/DependencyInjectorGenerator.java
...src/org/jetbrains/jet/di/DependencyInjectorGenerator.java
+10
-4
未找到文件。
compiler/frontend/src/org/jetbrains/jet/di/InjectorForMacros.java
浏览文件 @
c6e54b13
...
...
@@ -17,16 +17,15 @@
package
org.jetbrains.jet.di
;
import
org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices
;
import
com.intellij.openapi.project.Project
;
import
org.jetbrains.jet.lang.resolve.AnnotationResolver
;
import
org.jetbrains.jet.lang.resolve.DescriptorResolver
;
import
org.jetbrains.jet.lang.resolve.TypeResolver
;
import
org.jetbrains.jet.lang.resolve.AnnotationResolver
;
import
org.jetbrains.jet.lang.resolve.calls.CallResolver
;
import
org.jetbrains.jet.lang.resolve.calls.OverloadingConflictResolver
;
import
com.intellij.openapi.project.Project
;
import
org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices
;
/* This file is generated by org.jetbrains.jet.di.
Injector
Generator. DO NOT EDIT! */
/* This file is generated by org.jetbrains.jet.di.
AllInjectors
Generator. DO NOT EDIT! */
public
class
InjectorForMacros
{
private
ExpressionTypingServices
expressionTypingServices
;
...
...
@@ -37,31 +36,31 @@ public class InjectorForMacros {
)
{
this
.
expressionTypingServices
=
new
ExpressionTypingServices
();
this
.
project
=
project
;
CallResolver
callResolver
=
new
CallResolver
();
DescriptorResolver
descriptorResolver
=
new
DescriptorResolver
();
TypeResolver
typeResolver
=
new
TypeResolver
();
AnnotationResolver
annotationResolver
=
new
AnnotationResolver
();
CallResolver
callResolver
=
new
Call
Resolver
();
TypeResolver
typeResolver
=
new
Type
Resolver
();
OverloadingConflictResolver
overloadingConflictResolver
=
new
OverloadingConflictResolver
();
this
.
expressionTypingServices
.
setDescriptorResolver
(
descriptorResolver
);
this
.
expressionTypingServices
.
setCallResolver
(
callResolver
);
this
.
expressionTypingServices
.
set
TypeResolver
(
type
Resolver
);
this
.
expressionTypingServices
.
set
DescriptorResolver
(
descriptor
Resolver
);
this
.
expressionTypingServices
.
setProject
(
project
);
this
.
expressionTypingServices
.
setTypeResolver
(
typeResolver
);
callResolver
.
setDescriptorResolver
(
descriptorResolver
);
callResolver
.
setExpressionTypingServices
(
expressionTypingServices
);
callResolver
.
setOverloadingConflictResolver
(
overloadingConflictResolver
);
callResolver
.
setTypeResolver
(
typeResolver
);
descriptorResolver
.
setAnnotationResolver
(
annotationResolver
);
descriptorResolver
.
setExpressionTypingServices
(
expressionTypingServices
);
descriptorResolver
.
setTypeResolver
(
typeResolver
);
descriptorResolver
.
setAnnotationResolver
(
annotationResolver
);
typeResolver
.
setDescriptorResolver
(
descriptorResolver
);
typeResolver
.
setAnnotationResolver
(
annotationResolver
);
annotationResolver
.
setExpressionTypingServices
(
expressionTypingServices
);
annotationResolver
.
setCallResolver
(
callResolver
);
annotationResolver
.
setExpressionTypingServices
(
expressionTypingServices
);
callResolver
.
setDescriptorResolver
(
descriptorResolver
);
callResolver
.
setExpressionTypingServices
(
expressionTypingServices
);
callResolver
.
setTypeResolver
(
typeResolver
);
callResolver
.
setOverloadingConflictResolver
(
overloadingConflictResolver
);
typeResolver
.
setAnnotationResolver
(
annotationResolver
);
typeResolver
.
setDescriptorResolver
(
descriptorResolver
);
}
...
...
compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzer.java
浏览文件 @
c6e54b13
...
...
@@ -17,15 +17,32 @@
package
org.jetbrains.jet.di
;
import
org.jetbrains.jet.lang.resolve.TopDownAnalyzer
;
import
org.jetbrains.jet.lang.resolve.BodyResolver
;
import
org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer
;
import
org.jetbrains.jet.lang.resolve.DeclarationsChecker
;
import
org.jetbrains.jet.lang.resolve.DescriptorResolver
;
import
org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices
;
import
com.intellij.openapi.project.Project
;
import
org.jetbrains.jet.lang.resolve.TopDownAnalysisContext
;
import
org.jetbrains.jet.lang.ModuleConfiguration
;
import
org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory
;
import
org.jetbrains.jet.lang.resolve.*
;
import
org.jetbrains.jet.lang.resolve.DeclarationResolver
;
import
org.jetbrains.jet.lang.resolve.AnnotationResolver
;
import
org.jetbrains.jet.lang.resolve.calls.CallResolver
;
import
org.jetbrains.jet.lang.resolve.calls.OverloadingConflictResolver
;
import
org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices
;
import
org.jetbrains.jet.lang.resolve.TypeResolver
;
import
org.jetbrains.jet.lang.resolve.ImportsResolver
;
import
org.jetbrains.jet.lang.resolve.DelegationResolver
;
import
org.jetbrains.jet.lang.resolve.OverloadResolver
;
import
org.jetbrains.jet.lang.resolve.OverrideResolver
;
import
org.jetbrains.jet.lang.resolve.TypeHierarchyResolver
;
import
com.intellij.openapi.project.Project
;
import
org.jetbrains.jet.lang.resolve.TopDownAnalysisContext
;
import
org.jetbrains.jet.lang.ModuleConfiguration
;
import
org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory
;
/* This file is generated by org.jetbrains.jet.di.
Injector
Generator. DO NOT EDIT! */
/* This file is generated by org.jetbrains.jet.di.
AllInjectors
Generator. DO NOT EDIT! */
public
class
InjectorForTopDownAnalyzer
{
private
TopDownAnalyzer
topDownAnalyzer
;
...
...
@@ -53,68 +70,68 @@ public class InjectorForTopDownAnalyzer {
DeclarationResolver
declarationResolver
=
new
DeclarationResolver
();
AnnotationResolver
annotationResolver
=
new
AnnotationResolver
();
CallResolver
callResolver
=
new
CallResolver
();
TypeResolver
typeResolver
=
new
TypeResolver
();
OverloadingConflictResolver
overloadingConflictResolver
=
new
OverloadingConflictResolver
();
TypeResolver
typeResolver
=
new
TypeResolver
();
ImportsResolver
importsResolver
=
new
ImportsResolver
();
TypeHierarchyResolver
typeHierarchyResolver
=
new
TypeHierarchyResolver
();
DelegationResolver
delegationResolver
=
new
DelegationResolver
();
OverrideResolver
overrideResolver
=
new
OverrideResolver
();
OverloadResolver
overloadResolver
=
new
OverloadResolver
();
OverrideResolver
overrideResolver
=
new
OverrideResolver
();
TypeHierarchyResolver
typeHierarchyResolver
=
new
TypeHierarchyResolver
();
this
.
topDownAnalyzer
.
setDeclarationResolver
(
declarationResolver
);
this
.
topDownAnalyzer
.
setTypeHierarchyResolver
(
typeHierarchyResolver
);
this
.
topDownAnalyzer
.
setDelegationResolver
(
delegationResolver
);
this
.
topDownAnalyzer
.
setOverrideResolver
(
overrideResolver
);
this
.
topDownAnalyzer
.
setOverloadResolver
(
overloadResolver
);
this
.
topDownAnalyzer
.
setOverrideResolver
(
overrideResolver
);
this
.
topDownAnalyzer
.
setTypeHierarchyResolver
(
typeHierarchyResolver
);
this
.
bodyResolver
.
setCallResolver
(
callResolver
);
this
.
bodyResolver
.
setContext
(
topDownAnalysisContext
);
this
.
bodyResolver
.
setDescriptorResolver
(
descriptorResolver
);
this
.
bodyResolver
.
setExpressionTypingServices
(
expressionTypingServices
);
this
.
bodyResolver
.
setCallResolver
(
callResolver
);
this
.
controlFlowAnalyzer
.
setContext
(
topDownAnalysisContext
);
this
.
controlFlowAnalyzer
.
setFlowDataTraceFactory
(
jetControlFlowDataTraceFactory
);
this
.
declarationsChecker
.
setContext
(
topDownAnalysisContext
);
this
.
descriptorResolver
.
setAnnotationResolver
(
annotationResolver
);
this
.
descriptorResolver
.
setExpressionTypingServices
(
expressionTypingServices
);
this
.
descriptorResolver
.
setTypeResolver
(
typeResolver
);
this
.
descriptorResolver
.
setAnnotationResolver
(
annotationResolver
);
this
.
expressionTypingServices
.
setDescriptorResolver
(
descriptorResolver
);
this
.
expressionTypingServices
.
setCallResolver
(
callResolver
);
this
.
expressionTypingServices
.
set
TypeResolver
(
type
Resolver
);
this
.
expressionTypingServices
.
set
DescriptorResolver
(
descriptor
Resolver
);
this
.
expressionTypingServices
.
setProject
(
project
);
this
.
expressionTypingServices
.
setTypeResolver
(
typeResolver
);
declarationResolver
.
setAnnotationResolver
(
annotationResolver
);
declarationResolver
.
setContext
(
topDownAnalysisContext
);
declarationResolver
.
setDescriptorResolver
(
descriptorResolver
);
declarationResolver
.
setAnnotationResolver
(
annotationResolver
);
declarationResolver
.
setImportsResolver
(
importsResolver
);
annotationResolver
.
setExpressionTypingServices
(
expressionTypingServices
);
annotationResolver
.
setCallResolver
(
callResolver
);
annotationResolver
.
setExpressionTypingServices
(
expressionTypingServices
);
callResolver
.
setDescriptorResolver
(
descriptorResolver
);
callResolver
.
setExpressionTypingServices
(
expressionTypingServices
);
callResolver
.
setTypeResolver
(
typeResolver
);
callResolver
.
setOverloadingConflictResolver
(
overloadingConflictResolver
);
callResolver
.
setTypeResolver
(
typeResolver
);
typeResolver
.
setDescriptorResolver
(
descriptorResolver
);
typeResolver
.
setAnnotationResolver
(
annotationResolver
);
typeResolver
.
setDescriptorResolver
(
descriptorResolver
);
importsResolver
.
setContext
(
topDownAnalysisContext
);
importsResolver
.
setConfiguration
(
moduleConfiguration
);
typeHierarchyResolver
.
setContext
(
topDownAnalysisContext
);
typeHierarchyResolver
.
setDescriptorResolver
(
descriptorResolver
);
typeHierarchyResolver
.
setImportsResolver
(
importsResolver
);
typeHierarchyResolver
.
setConfiguration
(
moduleConfiguration
);
importsResolver
.
setContext
(
topDownAnalysisContext
);
delegationResolver
.
setContext
(
topDownAnalysisContext
);
overloadResolver
.
setContext
(
topDownAnalysisContext
);
overrideResolver
.
setContext
(
topDownAnalysisContext
);
overloadResolver
.
setContext
(
topDownAnalysisContext
);
typeHierarchyResolver
.
setConfiguration
(
moduleConfiguration
);
typeHierarchyResolver
.
setContext
(
topDownAnalysisContext
);
typeHierarchyResolver
.
setDescriptorResolver
(
descriptorResolver
);
typeHierarchyResolver
.
setImportsResolver
(
importsResolver
);
}
...
...
compiler/tests/org/jetbrains/jet/di/InjectorForTests.java
浏览文件 @
c6e54b13
...
...
@@ -26,7 +26,7 @@ import org.jetbrains.jet.lang.resolve.calls.OverloadingConflictResolver;
import
org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices
;
import
org.jetbrains.jet.lang.types.lang.JetStandardLibrary
;
/* This file is generated by org.jetbrains.jet.di.
Injector
Generator. DO NOT EDIT! */
/* This file is generated by org.jetbrains.jet.di.
AllInjectors
Generator. DO NOT EDIT! */
public
class
InjectorForTests
{
private
DescriptorResolver
descriptorResolver
;
...
...
@@ -48,25 +48,25 @@ public class InjectorForTests {
AnnotationResolver
annotationResolver
=
new
AnnotationResolver
();
OverloadingConflictResolver
overloadingConflictResolver
=
new
OverloadingConflictResolver
();
this
.
descriptorResolver
.
setAnnotationResolver
(
annotationResolver
);
this
.
descriptorResolver
.
setExpressionTypingServices
(
expressionTypingServices
);
this
.
descriptorResolver
.
setTypeResolver
(
typeResolver
);
this
.
descriptorResolver
.
setAnnotationResolver
(
annotationResolver
);
this
.
expressionTypingServices
.
setDescriptorResolver
(
descriptorResolver
);
this
.
expressionTypingServices
.
setCallResolver
(
callResolver
);
this
.
expressionTypingServices
.
set
TypeResolver
(
type
Resolver
);
this
.
expressionTypingServices
.
set
DescriptorResolver
(
descriptor
Resolver
);
this
.
expressionTypingServices
.
setProject
(
project
);
this
.
expressionTypingServices
.
setTypeResolver
(
typeResolver
);
this
.
typeResolver
.
setDescriptorResolver
(
descriptorResolver
);
this
.
typeResolver
.
setAnnotationResolver
(
annotationResolver
);
this
.
typeResolver
.
setDescriptorResolver
(
descriptorResolver
);
this
.
callResolver
.
setDescriptorResolver
(
descriptorResolver
);
this
.
callResolver
.
setExpressionTypingServices
(
expressionTypingServices
);
this
.
callResolver
.
setTypeResolver
(
typeResolver
);
this
.
callResolver
.
setOverloadingConflictResolver
(
overloadingConflictResolver
);
this
.
callResolver
.
setTypeResolver
(
typeResolver
);
annotationResolver
.
setExpressionTypingServices
(
expressionTypingServices
);
annotationResolver
.
setCallResolver
(
callResolver
);
annotationResolver
.
setExpressionTypingServices
(
expressionTypingServices
);
}
...
...
injector-generator/src/org/jetbrains/jet/di/DependencyInjectorGenerator.java
浏览文件 @
c6e54b13
...
...
@@ -32,9 +32,7 @@ import java.io.PrintStream;
import
java.lang.reflect.Constructor
;
import
java.lang.reflect.Method
;
import
java.lang.reflect.Modifier
;
import
java.util.Collection
;
import
java.util.Iterator
;
import
java.util.Set
;
import
java.util.*
;
/**
* @author abreslav
...
...
@@ -279,7 +277,15 @@ public class DependencyInjectorGenerator {
initializeByConstructorCall
(
field
,
neededFor
);
}
for
(
Method
method
:
field
.
getType
().
getDeclaredMethods
())
{
// Sort setters in order to get deterministic behavior
List
<
Method
>
declaredMethods
=
Lists
.
newArrayList
(
field
.
getType
().
getDeclaredMethods
());
Collections
.
sort
(
declaredMethods
,
new
Comparator
<
Method
>()
{
@Override
public
int
compare
(
Method
o1
,
Method
o2
)
{
return
o1
.
getName
().
compareTo
(
o2
.
getName
());
}
});
for
(
Method
method
:
declaredMethods
)
{
if
(
method
.
getAnnotation
(
javax
.
inject
.
Inject
.
class
)
==
null
||
!
method
.
getName
().
startsWith
(
"set"
)
||
method
.
getParameterTypes
().
length
!=
1
)
continue
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录