Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
硅谷海盗
kotlin
提交
89b08d62
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,发现更多精彩内容 >>
提交
89b08d62
编写于
4月 08, 2012
作者:
E
Evgeny Gerashchenko
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Extracted DeclarationDescriptorComparator from DecompiledDataFactory.
上级
aec021e6
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
86 addition
and
58 deletion
+86
-58
idea/src/org/jetbrains/jet/plugin/libraries/DeclarationDescriptorComparator.java
...jet/plugin/libraries/DeclarationDescriptorComparator.java
+85
-0
idea/src/org/jetbrains/jet/plugin/libraries/DecompiledDataFactory.java
...jetbrains/jet/plugin/libraries/DecompiledDataFactory.java
+1
-58
未找到文件。
idea/src/org/jetbrains/jet/plugin/libraries/DeclarationDescriptorComparator.java
0 → 100644
浏览文件 @
89b08d62
/*
* Copyright 2010-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.jetbrains.jet.plugin.libraries
;
import
org.jetbrains.jet.lang.descriptors.*
;
import
org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor
;
import
org.jetbrains.jet.resolve.DescriptorRenderer
;
import
java.util.Comparator
;
/**
* @author Evgeny Gerashchenko
* @since 4/8/12
*/
class
DeclarationDescriptorComparator
implements
Comparator
<
DeclarationDescriptor
>
{
private
static
int
getDeclarationPriority
(
DeclarationDescriptor
descriptor
)
{
if
(
descriptor
instanceof
ClassDescriptor
)
{
return
4
;
}
else
if
(
descriptor
instanceof
PropertyDescriptor
)
{
return
3
;
}
else
if
(
descriptor
instanceof
FunctionDescriptor
)
{
FunctionDescriptor
fun
=
(
FunctionDescriptor
)
descriptor
;
if
(
fun
.
getReceiverParameter
()
==
ReceiverDescriptor
.
NO_RECEIVER
)
{
return
2
;
}
else
{
return
1
;
}
}
return
0
;
}
@Override
public
int
compare
(
DeclarationDescriptor
o1
,
DeclarationDescriptor
o2
)
{
int
prioritiesCompareTo
=
getDeclarationPriority
(
o2
)
-
getDeclarationPriority
(
o1
);
if
(
prioritiesCompareTo
!=
0
)
{
return
prioritiesCompareTo
;
}
int
namesCompareTo
=
o1
.
getName
().
compareTo
(
o2
.
getName
());
if
(
namesCompareTo
!=
0
)
{
return
namesCompareTo
;
}
if
(!(
o1
instanceof
CallableDescriptor
)
||
!(
o2
instanceof
CallableDescriptor
))
{
assert
false
;
}
CallableDescriptor
c1
=
(
CallableDescriptor
)
o1
;
CallableDescriptor
c2
=
(
CallableDescriptor
)
o2
;
if
(
c1
.
getReceiverParameter
()
!=
ReceiverDescriptor
.
NO_RECEIVER
&&
c2
.
getReceiverParameter
()
!=
ReceiverDescriptor
.
NO_RECEIVER
)
{
String
r1
=
DescriptorRenderer
.
TEXT
.
renderType
(
c1
.
getReceiverParameter
().
getType
());
String
r2
=
DescriptorRenderer
.
TEXT
.
renderType
(
c2
.
getReceiverParameter
().
getType
());
int
receiversCompareTo
=
r1
.
compareTo
(
r2
);
if
(
receiversCompareTo
!=
0
)
{
return
receiversCompareTo
;
}
}
for
(
int
i
=
0
;
i
<
Math
.
min
(
c1
.
getValueParameters
().
size
(),
c2
.
getValueParameters
().
size
());
i
++)
{
String
p1
=
DescriptorRenderer
.
TEXT
.
renderType
(
c1
.
getValueParameters
().
get
(
i
).
getType
());
String
p2
=
DescriptorRenderer
.
TEXT
.
renderType
(
c2
.
getValueParameters
().
get
(
i
).
getType
());
int
parametersCompareTo
=
p1
.
compareTo
(
p2
);
if
(
parametersCompareTo
!=
0
)
{
return
parametersCompareTo
;
}
}
return
c1
.
getValueParameters
().
size
()
-
c2
.
getValueParameters
().
size
();
}
}
idea/src/org/jetbrains/jet/plugin/libraries/DecompiledDataFactory.java
浏览文件 @
89b08d62
...
...
@@ -35,7 +35,6 @@ import org.jetbrains.jet.lang.resolve.FqName;
import
org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule
;
import
org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver
;
import
org.jetbrains.jet.lang.resolve.java.JvmAbi
;
import
org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor
;
import
org.jetbrains.jet.resolve.DescriptorRenderer
;
import
java.util.*
;
...
...
@@ -115,65 +114,9 @@ class DecompiledDataFactory {
return
new
JetDecompiledData
(
jetFile
,
myClsElementsToJetElements
);
}
private
static
int
getDeclarationPriority
(
DeclarationDescriptor
descriptor
)
{
if
(
descriptor
instanceof
ClassDescriptor
)
{
return
4
;
}
else
if
(
descriptor
instanceof
PropertyDescriptor
)
{
return
3
;
}
else
if
(
descriptor
instanceof
FunctionDescriptor
)
{
FunctionDescriptor
fun
=
(
FunctionDescriptor
)
descriptor
;
if
(
fun
.
getReceiverParameter
()
==
ReceiverDescriptor
.
NO_RECEIVER
)
{
return
2
;
}
else
{
return
1
;
}
}
return
0
;
}
private
static
List
<
DeclarationDescriptor
>
sortDeclarations
(
Collection
<
DeclarationDescriptor
>
input
)
{
ArrayList
<
DeclarationDescriptor
>
r
=
new
ArrayList
<
DeclarationDescriptor
>(
input
);
Collections
.
sort
(
r
,
new
Comparator
<
DeclarationDescriptor
>()
{
@Override
public
int
compare
(
DeclarationDescriptor
o1
,
DeclarationDescriptor
o2
)
{
int
prioritiesCompareTo
=
getDeclarationPriority
(
o2
)
-
getDeclarationPriority
(
o1
);
if
(
prioritiesCompareTo
!=
0
)
{
return
prioritiesCompareTo
;
}
int
namesCompareTo
=
o1
.
getName
().
compareTo
(
o2
.
getName
());
if
(
namesCompareTo
!=
0
)
{
return
namesCompareTo
;
}
if
(!(
o1
instanceof
CallableDescriptor
)
||
!(
o2
instanceof
CallableDescriptor
))
{
assert
false
;
}
CallableDescriptor
c1
=
(
CallableDescriptor
)
o1
;
CallableDescriptor
c2
=
(
CallableDescriptor
)
o2
;
if
(
c1
.
getReceiverParameter
()
!=
ReceiverDescriptor
.
NO_RECEIVER
&&
c2
.
getReceiverParameter
()
!=
ReceiverDescriptor
.
NO_RECEIVER
)
{
String
r1
=
DescriptorRenderer
.
TEXT
.
renderType
(
c1
.
getReceiverParameter
().
getType
());
String
r2
=
DescriptorRenderer
.
TEXT
.
renderType
(
c2
.
getReceiverParameter
().
getType
());
int
receiversCompareTo
=
r1
.
compareTo
(
r2
);
if
(
receiversCompareTo
!=
0
)
{
return
receiversCompareTo
;
}
}
for
(
int
i
=
0
;
i
<
Math
.
min
(
c1
.
getValueParameters
().
size
(),
c2
.
getValueParameters
().
size
());
i
++)
{
String
p1
=
DescriptorRenderer
.
TEXT
.
renderType
(
c1
.
getValueParameters
().
get
(
i
).
getType
());
String
p2
=
DescriptorRenderer
.
TEXT
.
renderType
(
c2
.
getValueParameters
().
get
(
i
).
getType
());
int
parametersCompareTo
=
p1
.
compareTo
(
p2
);
if
(
parametersCompareTo
!=
0
)
{
return
parametersCompareTo
;
}
}
return
c1
.
getValueParameters
().
size
()
-
c2
.
getValueParameters
().
size
();
}
});
Collections
.
sort
(
r
,
new
DeclarationDescriptorComparator
());
return
r
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录