Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
硅谷海盗
kotlin
提交
8ad5db5b
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,发现更多精彩内容 >>
提交
8ad5db5b
编写于
3月 24, 2012
作者:
S
Stepan Koltsov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix KT-1639: extend JFrame
#KT-1639 Fixed
上级
b51805c8
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
51 addition
and
22 deletion
+51
-22
compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java
...tbrains/jet/lang/resolve/java/JavaDescriptorResolver.java
+37
-18
compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolverHelper.java
...s/jet/lang/resolve/java/JavaDescriptorResolverHelper.java
+5
-4
compiler/testData/diagnostics/tests/regressions/kt1639-JFrame.jet
.../testData/diagnostics/tests/regressions/kt1639-JFrame.jet
+9
-0
未找到文件。
compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java
浏览文件 @
8ad5db5b
...
...
@@ -1081,25 +1081,12 @@ public class JavaDescriptorResolver {
Map
<
String
,
NamedMembers
>
membersForProperties
=
scopeData
.
namedMembersMap
;
for
(
Map
.
Entry
<
String
,
NamedMembers
>
entry
:
membersForProperties
.
entrySet
())
{
NamedMembers
namedMembers
=
entry
.
getValue
();
if
(
namedMembers
.
propertyAccessors
==
null
)
{
continue
;
}
String
propertyName
=
entry
.
getKey
();
resolveNamedGroupProperties
(
owner
,
scopeData
,
staticMembers
,
namedMembers
,
propertyName
,
"class or namespace "
+
psiClass
.
getQualifiedName
());
descriptors
.
addAll
(
namedMembers
.
propertyDescriptors
);
}
for
(
JetType
supertype
:
getSupertypes
(
scopeData
))
{
for
(
DeclarationDescriptor
descriptor
:
supertype
.
getMemberScope
().
getAllDescriptors
())
{
// TODO: ugly
if
(
descriptor
instanceof
VariableDescriptor
)
{
descriptors
.
add
((
VariableDescriptor
)
descriptor
);
}
}
}
return
descriptors
;
}
...
...
@@ -1142,8 +1129,7 @@ public class JavaDescriptorResolver {
}
if
(
namedMembers
.
propertyAccessors
==
null
)
{
namedMembers
.
propertyDescriptors
=
Collections
.
emptySet
();
return
;
namedMembers
.
propertyAccessors
=
Collections
.
emptyList
();
}
TypeVariableResolver
typeVariableResolver
=
TypeVariableResolvers
.
classTypeVariableResolver
(
owner
,
context
);
...
...
@@ -1193,7 +1179,7 @@ public class JavaDescriptorResolver {
}
Set
<
VariableDescriptor
>
r
=
new
HashSet
<
Variable
Descriptor
>(
1
);
Set
<
PropertyDescriptor
>
propertiesFromCurrent
=
new
HashSet
<
Property
Descriptor
>(
1
);
int
regularProperitesCount
=
0
;
for
(
GroupingValue
members
:
map
.
values
())
{
...
...
@@ -1324,10 +1310,33 @@ public class JavaDescriptorResolver {
trace
.
record
(
BindingContext
.
VARIABLE
,
anyMember
.
getMember
().
psiMember
,
propertyDescriptor
);
r
.
add
(
propertyDescriptor
);
propertiesFromCurrent
.
add
(
propertyDescriptor
);
}
namedMembers
.
propertyDescriptors
=
r
;
Set
<
PropertyDescriptor
>
propertiesFromSupertypes
=
getPropertiesFromSupertypes
(
scopeData
,
propertyName
);
final
Set
<
VariableDescriptor
>
properties
=
Sets
.
newHashSet
();
if
(
owner
instanceof
ClassDescriptor
)
{
ClassDescriptor
classDescriptor
=
(
ClassDescriptor
)
owner
;
OverrideResolver
.
generateOverridesInFunctionGroup
(
propertyName
,
propertiesFromSupertypes
,
propertiesFromCurrent
,
classDescriptor
,
new
OverrideResolver
.
DescriptorSink
()
{
@Override
public
void
addToScope
(
@NotNull
CallableMemberDescriptor
fakeOverride
)
{
properties
.
add
((
PropertyDescriptor
)
fakeOverride
);
}
@Override
public
void
conflict
(
@NotNull
CallableMemberDescriptor
fromSuper
,
@NotNull
CallableMemberDescriptor
fromCurrent
)
{
// nop
}
});
}
properties
.
addAll
(
propertiesFromCurrent
);
namedMembers
.
propertyDescriptors
=
properties
;
}
private
void
resolveNamedGroupFunctions
(
ClassOrNamespaceDescriptor
owner
,
PsiClass
psiClass
,
TypeSubstitutor
typeSubstitutorForGenericSuperclasses
,
NamedMembers
namedMembers
,
String
methodName
,
ResolverScopeData
scopeData
)
{
...
...
@@ -1380,6 +1389,16 @@ public class JavaDescriptorResolver {
return
r
;
}
private
Set
<
PropertyDescriptor
>
getPropertiesFromSupertypes
(
ResolverScopeData
scopeData
,
String
propertyName
)
{
Set
<
PropertyDescriptor
>
r
=
new
HashSet
<
PropertyDescriptor
>();
for
(
JetType
supertype
:
getSupertypes
(
scopeData
))
{
for
(
VariableDescriptor
property
:
supertype
.
getMemberScope
().
getProperties
(
propertyName
))
{
r
.
add
((
PropertyDescriptor
)
property
);
}
}
return
r
;
}
private
ResolverScopeData
getResolverScopeData
(
@NotNull
ClassOrNamespaceDescriptor
owner
,
PsiClassWrapper
psiClass
)
{
// TODO: store scopeData in Java*Scope
ResolverScopeData
scopeData
;
...
...
compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolverHelper.java
浏览文件 @
8ad5db5b
...
...
@@ -81,15 +81,16 @@ class JavaDescriptorResolverHelper {
private
void
processFields
()
{
if
(!
kotlin
)
{
for
(
PsiField
field0
:
psiClass
.
getPsiClass
().
getFields
())
{
for
(
PsiField
field0
:
psiClass
.
getPsiClass
().
get
All
Fields
())
{
PsiFieldWrapper
field
=
new
PsiFieldWrapper
(
field0
);
// group must be created even for excluded field
NamedMembers
namedMembers
=
getNamedMembers
(
field
.
getName
());
if
(!
includeMember
(
field
))
{
continue
;
}
NamedMembers
namedMembers
=
getNamedMembers
(
field
.
getName
());
TypeSource
type
=
new
TypeSource
(
""
,
field
.
getType
(),
field0
);
namedMembers
.
addPropertyAccessor
(
new
PropertyAccessorData
(
field
,
type
,
null
));
}
...
...
compiler/testData/diagnostics/tests/regressions/kt1639-JFrame.jet
0 → 100644
浏览文件 @
8ad5db5b
package
test
import
javax
.
swing
.
JFrame
class
KFrame
()
:
JFrame
()
{
{
val
x
=
this
.
accessibleContext
//
make
sure
field
is
visible
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录