Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
硅谷海盗
kotlin
提交
9b2eeb07
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,发现更多精彩内容 >>
提交
9b2eeb07
编写于
4月 03, 2012
作者:
S
Svetlana Isakova
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
KT-1717 Don't make member visibility inherit when it is not declared explicitly
#KT-1717 Fixed
上级
5df72587
变更
45
隐藏空白更改
内联
并排
Showing
45 changed file
with
115 addition
and
159 deletion
+115
-159
compiler/backend/src/org/jetbrains/jet/codegen/CodegenContext.java
...backend/src/org/jetbrains/jet/codegen/CodegenContext.java
+1
-1
compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java
...tbrains/jet/lang/resolve/java/JavaDescriptorResolver.java
+1
-1
compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ConstructorDescriptorImpl.java
...rains/jet/lang/descriptors/ConstructorDescriptorImpl.java
+1
-2
compiler/frontend/src/org/jetbrains/jet/lang/descriptors/FunctionDescriptorImpl.java
...etbrains/jet/lang/descriptors/FunctionDescriptorImpl.java
+6
-7
compiler/frontend/src/org/jetbrains/jet/lang/descriptors/FunctionDescriptorUtil.java
...etbrains/jet/lang/descriptors/FunctionDescriptorUtil.java
+2
-2
compiler/frontend/src/org/jetbrains/jet/lang/descriptors/PropertyDescriptor.java
...rg/jetbrains/jet/lang/descriptors/PropertyDescriptor.java
+6
-15
compiler/frontend/src/org/jetbrains/jet/lang/descriptors/SimpleFunctionDescriptorImpl.java
...ns/jet/lang/descriptors/SimpleFunctionDescriptorImpl.java
+1
-2
compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/PositioningStrategies.java
...jetbrains/jet/lang/diagnostics/PositioningStrategies.java
+5
-0
compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java
...rc/org/jetbrains/jet/lang/resolve/DescriptorResolver.java
+3
-3
compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java
.../src/org/jetbrains/jet/lang/resolve/OverrideResolver.java
+8
-48
compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverridingUtil.java
...nd/src/org/jetbrains/jet/lang/resolve/OverridingUtil.java
+8
-0
compiler/frontend/src/org/jetbrains/jet/lang/types/lang/JetStandardClasses.java
...org/jetbrains/jet/lang/types/lang/JetStandardClasses.java
+1
-2
compiler/testData/codegen/classes/classObjectInterface.jet
compiler/testData/codegen/classes/classObjectInterface.jet
+1
-1
compiler/testData/codegen/controlStructures/forUserType.jet
compiler/testData/codegen/controlStructures/forUserType.jet
+7
-7
compiler/testData/codegen/controlStructures/sync.jet
compiler/testData/codegen/controlStructures/sync.jet
+1
-1
compiler/testData/codegen/objects/objectLiteral.jet
compiler/testData/codegen/objects/objectLiteral.jet
+1
-1
compiler/testData/codegen/objects/objectLiteralInClosure.jet
compiler/testData/codegen/objects/objectLiteralInClosure.jet
+1
-1
compiler/testData/codegen/regressions/kt1136.kt
compiler/testData/codegen/regressions/kt1136.kt
+1
-1
compiler/testData/codegen/regressions/kt1157.kt
compiler/testData/codegen/regressions/kt1157.kt
+1
-1
compiler/testData/codegen/regressions/kt1159.kt
compiler/testData/codegen/regressions/kt1159.kt
+1
-1
compiler/testData/codegen/regressions/kt1168.kt
compiler/testData/codegen/regressions/kt1168.kt
+2
-2
compiler/testData/codegen/regressions/kt299.jet
compiler/testData/codegen/regressions/kt299.jet
+1
-1
compiler/testData/codegen/regressions/kt344.jet
compiler/testData/codegen/regressions/kt344.jet
+1
-1
compiler/testData/codegen/regressions/kt533.kt
compiler/testData/codegen/regressions/kt533.kt
+3
-3
compiler/testData/codegen/regressions/kt887.jet
compiler/testData/codegen/regressions/kt887.jet
+1
-1
compiler/testData/codegen/regressions/kt940.kt
compiler/testData/codegen/regressions/kt940.kt
+2
-2
compiler/testData/codegen/super/basicmethodSuperClass.jet
compiler/testData/codegen/super/basicmethodSuperClass.jet
+1
-1
compiler/testData/codegen/traits/simple.jet
compiler/testData/codegen/traits/simple.jet
+1
-1
compiler/testData/codegen/traits/stdlib.jet
compiler/testData/codegen/traits/stdlib.jet
+4
-4
compiler/testData/diagnostics/tests/PrimaryConstructors.jet
compiler/testData/diagnostics/tests/PrimaryConstructors.jet
+3
-3
compiler/testData/diagnostics/tests/extensions/GenericIterator.jet
...testData/diagnostics/tests/extensions/GenericIterator.jet
+2
-2
compiler/testData/diagnostics/tests/regressions/kt588.jet
compiler/testData/diagnostics/tests/regressions/kt588.jet
+1
-1
compiler/testData/diagnostics/tests/scopes/visibility2.jet
compiler/testData/diagnostics/tests/scopes/visibility2.jet
+2
-2
compiler/testData/diagnostics/tests/scopes/visibility_inherit_modifier.jet
.../diagnostics/tests/scopes/visibility_inherit_modifier.jet
+5
-9
libraries/kunit/src/main/kotlin/junit/JUnit.kt
libraries/kunit/src/main/kotlin/junit/JUnit.kt
+5
-5
libraries/stdlib/src/kotlin/Standard.kt
libraries/stdlib/src/kotlin/Standard.kt
+1
-1
libraries/stdlib/src/kotlin/concurrent/FunctionalList.kt
libraries/stdlib/src/kotlin/concurrent/FunctionalList.kt
+3
-3
libraries/stdlib/src/kotlin/dom/Dom.kt
libraries/stdlib/src/kotlin/dom/Dom.kt
+6
-6
libraries/stdlib/src/kotlin/io/JIO.kt
libraries/stdlib/src/kotlin/io/JIO.kt
+2
-2
libraries/stdlib/src/kotlin/support/AbstractIterator.kt
libraries/stdlib/src/kotlin/support/AbstractIterator.kt
+3
-3
libraries/stdlib/test/CollectionTest.kt
libraries/stdlib/test/CollectionTest.kt
+1
-1
libraries/stdlib/test/CompareTest.kt
libraries/stdlib/test/CompareTest.kt
+2
-2
libraries/stdlib/test/Test.kt
libraries/stdlib/test/Test.kt
+4
-4
libraries/stdlib/test/concurrent/SerialFunAndTupleTest.kt
libraries/stdlib/test/concurrent/SerialFunAndTupleTest.kt
+1
-1
libraries/stdlib/test/properties/PropertiesTest.kt
libraries/stdlib/test/properties/PropertiesTest.kt
+1
-1
未找到文件。
compiler/backend/src/org/jetbrains/jet/codegen/CodegenContext.java
浏览文件 @
9b2eeb07
...
...
@@ -251,12 +251,12 @@ public abstract class CodegenContext {
PropertyDescriptor
myAccessor
=
new
PropertyDescriptor
(
contextType
,
Collections
.<
AnnotationDescriptor
>
emptyList
(),
pd
.
getModality
(),
pd
.
getVisibility
(),
pd
.
isVar
(),
pd
.
isObjectDeclaration
(),
pd
.
getName
()
+
"$bridge$"
+
accessors
.
size
(),
CallableMemberDescriptor
.
Kind
.
DECLARATION
);
myAccessor
.
setVisibility
(
pd
.
getVisibility
());
JetType
receiverType
=
pd
.
getReceiverParameter
().
exists
()
?
pd
.
getReceiverParameter
().
getType
()
:
null
;
myAccessor
.
setType
(
pd
.
getType
(),
Collections
.<
TypeParameterDescriptor
>
emptyList
(),
pd
.
getExpectedThisObject
(),
receiverType
);
...
...
compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java
浏览文件 @
9b2eeb07
...
...
@@ -1150,11 +1150,11 @@ public class JavaDescriptorResolver {
owner
,
resolveAnnotations
(
anyMember
.
getMember
().
psiMember
),
modality
,
resolveVisibilityFromPsiModifiers
(
anyMember
.
getMember
().
psiMember
),
isVar
,
false
,
propertyName
,
CallableMemberDescriptor
.
Kind
.
DECLARATION
);
propertyDescriptor
.
setVisibility
(
resolveVisibilityFromPsiModifiers
(
anyMember
.
getMember
().
psiMember
));
PropertyGetterDescriptor
getterDescriptor
=
null
;
PropertySetterDescriptor
setterDescriptor
=
null
;
...
...
compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ConstructorDescriptorImpl.java
浏览文件 @
9b2eeb07
...
...
@@ -48,8 +48,7 @@ public class ConstructorDescriptorImpl extends FunctionDescriptorImpl implements
//isStatic - for java only
public
ConstructorDescriptorImpl
initialize
(
@NotNull
List
<
TypeParameterDescriptor
>
typeParameters
,
@NotNull
List
<
ValueParameterDescriptor
>
unsubstitutedValueParameters
,
Visibility
visibility
,
boolean
isStatic
)
{
super
.
initialize
(
null
,
isStatic
?
ReceiverDescriptor
.
NO_RECEIVER
:
getExpectedThisObject
(
getContainingDeclaration
()),
typeParameters
,
unsubstitutedValueParameters
,
null
,
Modality
.
FINAL
);
setVisibility
(
visibility
);
super
.
initialize
(
null
,
isStatic
?
ReceiverDescriptor
.
NO_RECEIVER
:
getExpectedThisObject
(
getContainingDeclaration
()),
typeParameters
,
unsubstitutedValueParameters
,
null
,
Modality
.
FINAL
,
visibility
);
return
this
;
}
...
...
compiler/frontend/src/org/jetbrains/jet/lang/descriptors/FunctionDescriptorImpl.java
浏览文件 @
9b2eeb07
...
...
@@ -78,11 +78,13 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorImpl i
@NotNull
List
<
TypeParameterDescriptor
>
typeParameters
,
@NotNull
List
<
ValueParameterDescriptor
>
unsubstitutedValueParameters
,
@Nullable
JetType
unsubstitutedReturnType
,
@Nullable
Modality
modality
)
{
@Nullable
Modality
modality
,
@NotNull
Visibility
visibility
)
{
this
.
typeParameters
=
typeParameters
;
this
.
unsubstitutedValueParameters
=
unsubstitutedValueParameters
;
this
.
unsubstitutedReturnType
=
unsubstitutedReturnType
;
this
.
modality
=
modality
;
this
.
visibility
=
visibility
;
this
.
receiver
=
receiverType
==
null
?
NO_RECEIVER
:
new
ExtensionReceiver
(
this
,
receiverType
);
this
.
expectedThisObject
=
expectedThisObject
;
...
...
@@ -104,10 +106,6 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorImpl i
return
this
;
}
public
void
setVisibility
(
@NotNull
Visibility
visibility
)
{
this
.
visibility
=
visibility
;
}
public
void
setReturnType
(
@NotNull
JetType
unsubstitutedReturnType
)
{
this
.
unsubstitutedReturnType
=
unsubstitutedReturnType
;
}
...
...
@@ -223,8 +221,9 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorImpl i
substitutedTypeParameters
,
substitutedValueParameters
,
substitutedReturnType
,
newModality
);
substitutedDescriptor
.
setVisibility
(
visibility
);
newModality
,
visibility
);
if
(
copyOverrides
)
{
for
(
FunctionDescriptor
overriddenFunction
:
overriddenFunctions
)
{
substitutedDescriptor
.
addOverriddenDescriptor
(
overriddenFunction
.
substitute
(
substitutor
));
...
...
compiler/frontend/src/org/jetbrains/jet/lang/descriptors/FunctionDescriptorUtil.java
浏览文件 @
9b2eeb07
...
...
@@ -126,8 +126,8 @@ public class FunctionDescriptorUtil {
Collections
.<
TypeParameterDescriptor
>
emptyList
(),
JetStandardClasses
.
getValueParameters
(
functionDescriptor
,
functionType
),
JetStandardClasses
.
getReturnTypeFromFunctionType
(
functionType
),
Modality
.
FINAL
);
functionDescriptor
.
setVisibility
(
Visibilities
.
LOCAL
);
Modality
.
FINAL
,
Visibilities
.
LOCAL
);
}
public
static
<
D
extends
CallableDescriptor
>
D
alphaConvertTypeParameters
(
D
candidate
)
{
...
...
compiler/frontend/src/org/jetbrains/jet/lang/descriptors/PropertyDescriptor.java
浏览文件 @
9b2eeb07
...
...
@@ -67,6 +67,7 @@ public class PropertyDescriptor extends VariableDescriptorImpl implements Callab
@NotNull
DeclarationDescriptor
containingDeclaration
,
@NotNull
List
<
AnnotationDescriptor
>
annotations
,
@NotNull
Modality
modality
,
@NotNull
Visibility
visibility
,
boolean
isVar
,
boolean
isObject
,
@NotNull
String
name
,
...
...
@@ -75,6 +76,7 @@ public class PropertyDescriptor extends VariableDescriptorImpl implements Callab
this
.
isVar
=
isVar
;
this
.
isObject
=
isObject
;
this
.
modality
=
modality
;
this
.
visibility
=
visibility
;
this
.
original
=
original
==
null
?
this
:
original
.
getOriginal
();
this
.
kind
=
kind
;
}
...
...
@@ -83,11 +85,12 @@ public class PropertyDescriptor extends VariableDescriptorImpl implements Callab
@NotNull
DeclarationDescriptor
containingDeclaration
,
@NotNull
List
<
AnnotationDescriptor
>
annotations
,
@NotNull
Modality
modality
,
@NotNull
Visibility
visibility
,
boolean
isVar
,
boolean
isObject
,
@NotNull
String
name
,
Kind
kind
)
{
this
(
null
,
containingDeclaration
,
annotations
,
modality
,
isVar
,
isObject
,
name
,
kind
);
this
(
null
,
containingDeclaration
,
annotations
,
modality
,
visibility
,
isVar
,
isObject
,
name
,
kind
);
}
public
PropertyDescriptor
(
...
...
@@ -103,7 +106,7 @@ public class PropertyDescriptor extends VariableDescriptorImpl implements Callab
@NotNull
JetType
outType
,
Kind
kind
)
{
this
(
containingDeclaration
,
annotations
,
modality
,
isVar
,
isObject
,
name
,
kind
);
this
(
containingDeclaration
,
annotations
,
modality
,
visibility
,
isVar
,
isObject
,
name
,
kind
);
setType
(
outType
,
Collections
.<
TypeParameterDescriptor
>
emptyList
(),
expectedThisObject
,
receiverType
);
}
...
...
@@ -128,10 +131,6 @@ public class PropertyDescriptor extends VariableDescriptorImpl implements Callab
this
.
setter
=
setter
;
}
public
void
setVisibility
(
@NotNull
Visibility
visibility
)
{
this
.
visibility
=
visibility
;
}
@NotNull
@Override
public
List
<
TypeParameterDescriptor
>
getTypeParameters
()
{
...
...
@@ -207,16 +206,8 @@ public class PropertyDescriptor extends VariableDescriptorImpl implements Callab
private
PropertyDescriptor
doSubstitute
(
TypeSubstitutor
originalSubstitutor
,
DeclarationDescriptor
newOwner
,
Modality
newModality
,
boolean
preserveOriginal
,
boolean
copyOverrides
,
Kind
kind
)
{
final
PropertyDescriptor
thisProperty
=
this
;
PropertyDescriptor
substitutedDescriptor
=
new
PropertyDescriptor
(
preserveOriginal
?
getOriginal
()
:
this
,
newOwner
,
getAnnotations
(),
newModality
,
isVar
(),
isObjectDeclaration
(),
getName
(),
kind
)
{
@NotNull
@Override
public
Visibility
getVisibility
()
{
// visibility of property can be not set yet
return
thisProperty
.
getVisibility
();
}
};
getAnnotations
(),
newModality
,
getVisibility
(),
isVar
(),
isObjectDeclaration
(),
getName
(),
kind
);
List
<
TypeParameterDescriptor
>
substitutedTypeParameters
=
Lists
.
newArrayList
();
TypeSubstitutor
substitutor
=
DescriptorSubstitutor
.
substituteTypeParameters
(
getTypeParameters
(),
originalSubstitutor
,
substitutedDescriptor
,
substitutedTypeParameters
);
...
...
compiler/frontend/src/org/jetbrains/jet/lang/descriptors/SimpleFunctionDescriptorImpl.java
浏览文件 @
9b2eeb07
...
...
@@ -59,8 +59,7 @@ public class SimpleFunctionDescriptorImpl extends FunctionDescriptorImpl impleme
@Nullable
Modality
modality
,
@NotNull
Visibility
visibility
,
boolean
isInline
)
{
super
.
initialize
(
receiverType
,
expectedThisObject
,
typeParameters
,
unsubstitutedValueParameters
,
unsubstitutedReturnType
,
modality
);
setVisibility
(
visibility
);
super
.
initialize
(
receiverType
,
expectedThisObject
,
typeParameters
,
unsubstitutedValueParameters
,
unsubstitutedReturnType
,
modality
,
visibility
);
this
.
isInline
=
isInline
;
return
this
;
}
...
...
compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/PositioningStrategies.java
浏览文件 @
9b2eeb07
...
...
@@ -125,6 +125,11 @@ public class PositioningStrategies {
result
.
add
(
element
.
getModifierList
().
getModifierNode
(
token
).
getTextRange
());
}
}
if
(
result
.
isEmpty
())
{
if
(
element
.
hasModifier
(
JetTokens
.
OVERRIDE_KEYWORD
))
{
result
.
add
(
element
.
getModifierList
().
getModifierNode
(
JetTokens
.
OVERRIDE_KEYWORD
).
getTextRange
());
}
}
return
result
;
}
};
...
...
compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java
浏览文件 @
9b2eeb07
...
...
@@ -486,12 +486,12 @@ public class DescriptorResolver {
containingDeclaration
,
annotationResolver
.
createAnnotationStubs
(
modifierList
,
trace
),
Modality
.
FINAL
,
resolveVisibilityFromModifiers
(
modifierList
),
false
,
true
,
JetPsiUtil
.
safeName
(
objectDeclaration
.
getName
()),
CallableMemberDescriptor
.
Kind
.
DECLARATION
);
propertyDescriptor
.
setVisibility
(
resolveVisibilityFromModifiers
(
modifierList
));
propertyDescriptor
.
setType
(
classDescriptor
.
getDefaultType
(),
Collections
.<
TypeParameterDescriptor
>
emptyList
(),
DescriptorUtils
.
getExpectedThisObjectIfNeeded
(
containingDeclaration
),
ReceiverDescriptor
.
NO_RECEIVER
);
propertyDescriptor
.
initialize
(
createDefaultGetter
(
propertyDescriptor
),
null
);
JetObjectDeclarationName
nameAsDeclaration
=
objectDeclaration
.
getNameAsDeclaration
();
...
...
@@ -543,12 +543,12 @@ public class DescriptorResolver {
containingDeclaration
,
annotationResolver
.
resolveAnnotations
(
scope
,
modifierList
,
trace
),
resolveModalityFromModifiers
(
property
.
getModifierList
(),
defaultModality
),
resolveVisibilityFromModifiers
(
property
.
getModifierList
()),
isVar
,
false
,
JetPsiUtil
.
safeName
(
property
.
getName
()),
CallableMemberDescriptor
.
Kind
.
DECLARATION
);
propertyDescriptor
.
setVisibility
(
resolveVisibilityFromModifiers
(
property
.
getModifierList
()));
List
<
TypeParameterDescriptor
>
typeParameterDescriptors
;
JetScope
scopeWithTypeParameters
;
...
...
@@ -861,12 +861,12 @@ public class DescriptorResolver {
classDescriptor
,
annotationResolver
.
resolveAnnotations
(
scope
,
modifierList
,
trace
),
resolveModalityFromModifiers
(
parameter
.
getModifierList
(),
Modality
.
FINAL
),
resolveVisibilityFromModifiers
(
parameter
.
getModifierList
()),
isMutable
,
false
,
name
==
null
?
"<no name>"
:
name
,
CallableMemberDescriptor
.
Kind
.
DECLARATION
);
propertyDescriptor
.
setVisibility
(
resolveVisibilityFromModifiers
(
parameter
.
getModifierList
()));
propertyDescriptor
.
setType
(
type
,
Collections
.<
TypeParameterDescriptor
>
emptyList
(),
DescriptorUtils
.
getExpectedThisObjectIfNeeded
(
classDescriptor
),
ReceiverDescriptor
.
NO_RECEIVER
);
PropertyGetterDescriptor
getter
=
createDefaultGetter
(
propertyDescriptor
);
...
...
compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java
浏览文件 @
9b2eeb07
...
...
@@ -69,9 +69,7 @@ public class OverrideResolver {
public
void
process
()
{
generateOverrides
();
checkOverrides
();
//functions and properties visibility can be inherited when overriding, so it can be resolved only after overrides resolve is finished
//also invisible overridden descriptors are removed here
resolveVisibilityForFunctionsAndProperties
();
checkVisibilityForOverriddenMembers
();
}
/**
...
...
@@ -421,69 +419,31 @@ public class OverrideResolver {
return
false
;
}
private
void
resolveVisibilityForFunctionsAndPropertie
s
()
{
private
void
checkVisibilityForOverriddenMember
s
()
{
for
(
Map
.
Entry
<
JetNamedFunction
,
SimpleFunctionDescriptor
>
entry
:
context
.
getFunctions
().
entrySet
())
{
JetNamedFunction
function
=
entry
.
getKey
();
SimpleFunctionDescriptor
functionDescriptor
=
entry
.
getValue
();
Visibility
visibility
=
resolveVisibilityForMember
(
function
,
functionDescriptor
);
((
SimpleFunctionDescriptorImpl
)
functionDescriptor
).
setVisibility
(
visibility
);
checkVisibilityForMember
(
functionDescriptor
.
getVisibility
(),
function
,
functionDescriptor
.
getOverriddenDescriptors
());
}
for
(
Map
.
Entry
<
JetProperty
,
PropertyDescriptor
>
entry
:
context
.
getProperties
().
entrySet
())
{
JetProperty
property
=
entry
.
getKey
();
PropertyDescriptor
propertyDescriptor
=
entry
.
getValue
();
Visibility
visibility
=
resolveVisibilityForMember
(
property
,
propertyDescriptor
);
propertyDescriptor
.
setVisibility
(
visibility
);
checkVisibilityForMember
(
propertyDescriptor
.
getVisibility
(),
property
,
propertyDescriptor
.
getOverriddenDescriptors
());
}
}
private
Visibility
resolveVisibilityForMember
(
JetDeclaration
member
,
CallableMemberDescriptor
memberDescriptor
)
{
removeInvisibleOverriddenDescriptors
(
memberDescriptor
);
Visibility
defaultVisibility
=
findMaxVisibility
(
memberDescriptor
.
getOverriddenDescriptors
());
Visibility
visibility
=
DescriptorResolver
.
resolveVisibilityFromModifiers
(
member
.
getModifierList
(),
defaultVisibility
);
checkMaxVisibility
(
visibility
,
member
,
memberDescriptor
.
getOverriddenDescriptors
());
return
visibility
;
}
private
void
removeInvisibleOverriddenDescriptors
(
@NotNull
CallableDescriptor
descriptor
)
{
Set
<?
extends
CallableDescriptor
>
overriddenDescriptors
=
descriptor
.
getOverriddenDescriptors
();
for
(
Iterator
<?
extends
CallableDescriptor
>
iterator
=
overriddenDescriptors
.
iterator
();
iterator
.
hasNext
();
)
{
CallableDescriptor
superDescriptor
=
iterator
.
next
();
if
(!
Visibilities
.
isVisible
(
superDescriptor
,
descriptor
))
{
iterator
.
remove
();
}
}
}
private
Visibility
findMaxVisibility
(
@NotNull
Collection
<?
extends
DeclarationDescriptorWithVisibility
>
descriptors
)
{
Visibility
maxVisibility
=
null
;
for
(
DeclarationDescriptorWithVisibility
descriptor
:
descriptors
)
{
Visibility
visibility
=
descriptor
.
getVisibility
();
if
(
maxVisibility
==
null
)
{
maxVisibility
=
visibility
;
continue
;
}
Integer
compare
=
Visibilities
.
compare
(
visibility
,
maxVisibility
);
if
(
compare
==
null
)
{
maxVisibility
=
Visibilities
.
PUBLIC
;
//todo error or warning when inference only from incomparable visibilities
continue
;
}
if
(
compare
>
0
)
{
maxVisibility
=
visibility
;
}
}
return
maxVisibility
!=
null
?
maxVisibility
:
Visibilities
.
INTERNAL
;
}
private
void
checkMaxVisibility
(
@NotNull
Visibility
visibility
,
@NotNull
JetModifierListOwner
modifierListOwner
,
@NotNull
Collection
<?
extends
CallableMemberDescriptor
>
descriptors
)
{
private
void
checkVisibilityForMember
(
@NotNull
Visibility
visibility
,
@NotNull
JetModifierListOwner
modifierListOwner
,
@NotNull
Collection
<?
extends
CallableMemberDescriptor
>
descriptors
)
{
for
(
CallableMemberDescriptor
descriptor
:
descriptors
)
{
Integer
compare
=
Visibilities
.
compare
(
visibility
,
descriptor
.
getVisibility
());
if
(
compare
==
null
)
{
trace
.
report
(
CANNOT_CHANGE_ACCESS_PRIVILEGE
.
on
(
modifierListOwner
,
descriptor
.
getVisibility
(),
descriptor
,
descriptor
.
getContainingDeclaration
()));
return
;
}
else
if
(
compare
<
0
)
{
if
(
compare
<
0
)
{
trace
.
report
(
CANNOT_WEAKEN_ACCESS_PRIVILEGE
.
on
(
modifierListOwner
,
descriptor
.
getVisibility
(),
descriptor
,
descriptor
.
getContainingDeclaration
()));
return
;
}
...
...
compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverridingUtil.java
浏览文件 @
9b2eeb07
...
...
@@ -93,6 +93,9 @@ public class OverridingUtil {
@NotNull
public
static
OverrideCompatibilityInfo
isOverridableBy
(
@NotNull
CallableDescriptor
superDescriptor
,
@NotNull
CallableDescriptor
subDescriptor
)
{
if
(!
Visibilities
.
isVisible
(
superDescriptor
,
subDescriptor
))
{
return
OverrideCompatibilityInfo
.
invisibleMember
();
}
if
(
superDescriptor
instanceof
FunctionDescriptor
)
{
if
(
subDescriptor
instanceof
PropertyDescriptor
)
return
OverrideCompatibilityInfo
.
memberKindMismatch
();
}
...
...
@@ -318,6 +321,11 @@ public class OverridingUtil {
return
new
OverrideCompatibilityInfo
(
Result
.
INCOMPATIBLE
,
"varOverriddenByVal"
);
// TODO
}
@NotNull
public
static
OverrideCompatibilityInfo
invisibleMember
()
{
return
new
OverrideCompatibilityInfo
(
Result
.
INCOMPATIBLE
,
"invisibleMember"
);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
private
final
Result
overridable
;
...
...
compiler/frontend/src/org/jetbrains/jet/lang/types/lang/JetStandardClasses.java
浏览文件 @
9b2eeb07
...
...
@@ -155,8 +155,7 @@ public class JetStandardClasses {
Collections
.<
AnnotationDescriptor
>
emptyList
(),
true
,
Variance
.
OUT_VARIANCE
,
"T"
+
(
j
+
1
),
j
);
parameters
.
add
(
typeParameterDescriptor
);
PropertyDescriptor
propertyDescriptor
=
new
PropertyDescriptor
(
classDescriptor
,
Collections
.<
AnnotationDescriptor
>
emptyList
(),
Modality
.
FINAL
,
false
,
false
,
"_"
+
(
j
+
1
),
CallableMemberDescriptor
.
Kind
.
DECLARATION
);
propertyDescriptor
.
setVisibility
(
Visibilities
.
PUBLIC
);
PropertyDescriptor
propertyDescriptor
=
new
PropertyDescriptor
(
classDescriptor
,
Collections
.<
AnnotationDescriptor
>
emptyList
(),
Modality
.
FINAL
,
Visibilities
.
PUBLIC
,
false
,
false
,
"_"
+
(
j
+
1
),
CallableMemberDescriptor
.
Kind
.
DECLARATION
);
propertyDescriptor
.
setType
(
typeParameterDescriptor
.
getDefaultType
(),
Collections
.<
TypeParameterDescriptor
>
emptyList
(),
classDescriptor
.
getImplicitReceiver
(),
ReceiverDescriptor
.
NO_RECEIVER
);
PropertyGetterDescriptor
getterDescriptor
=
new
PropertyGetterDescriptor
(
propertyDescriptor
,
Collections
.<
AnnotationDescriptor
>
emptyList
(),
Modality
.
FINAL
,
Visibilities
.
PUBLIC
,
false
,
true
,
CallableMemberDescriptor
.
Kind
.
DECLARATION
);
getterDescriptor
.
initialize
(
typeParameterDescriptor
.
getDefaultType
());
...
...
compiler/testData/codegen/classes/classObjectInterface.jet
浏览文件 @
9b2eeb07
...
...
@@ -2,7 +2,7 @@ class C() {
fun getInstance(): Runnable = C
class object: Runnable {
override fun run(): Unit { }
public
override fun run(): Unit { }
}
}
...
...
compiler/testData/codegen/controlStructures/forUserType.jet
浏览文件 @
9b2eeb07
...
...
@@ -78,25 +78,25 @@ fun box() : String {
}
class MyCollection1(): java.lang.Iterable<Int> {
override fun iterator(): java.util.Iterator<Int> = MyIterator()
public
override fun iterator(): java.util.Iterator<Int> = MyIterator()
class MyIterator(): java.util.Iterator<Int> {
var k : Int = 5
override fun next() : Int = k--
override fun hasNext() = k > 0
override fun remove() {}
public
override fun next() : Int = k--
public
override fun hasNext() = k > 0
public
override fun remove() {}
}
}
class MyCollection2(): Iterable<Int> {
override fun iterator(): Iterator<Int> = MyIterator()
public
override fun iterator(): Iterator<Int> = MyIterator()
class MyIterator(): Iterator<Int> {
var k : Int = 5
override fun next() : Int = k--
override val hasNext : Boolean
public
override fun next() : Int = k--
public
override val hasNext : Boolean
get() = k > 0
}
}
...
...
compiler/testData/codegen/controlStructures/sync.jet
浏览文件 @
9b2eeb07
...
...
@@ -3,7 +3,7 @@ import java.util.concurrent.atomic.*
fun thread(block: ()->Unit ) {
val thread = object: Thread() {
override fun run() {
public
override fun run() {
block()
}
}
...
...
compiler/testData/codegen/objects/objectLiteral.jet
浏览文件 @
9b2eeb07
class C(x: Int, val y : Int) {
fun initChild(var x: Int) : java.lang.Object {
return object : java.lang.Object() {
override fun toString(): String? {
public
override fun toString(): String? {
x = x + y
return "child" + x
}
...
...
compiler/testData/codegen/objects/objectLiteralInClosure.jet
浏览文件 @
9b2eeb07
...
...
@@ -3,7 +3,7 @@ package p
class
C
(
val
y
:
Int
)
{
val
initChild
=
{
->
object
:
java
.
lang
.
Object
()
{
override
fun
toString
():
String
{
public
override
fun
toString
():
String
{
return
"child"
+
y
}
}
...
...
compiler/testData/codegen/regressions/kt1136.kt
浏览文件 @
9b2eeb07
...
...
@@ -2,7 +2,7 @@ import java.util.ArrayList
public
object
SomeObject
{
private
val
workerThread
=
object
:
Thread
()
{
override
fun
run
()
{
public
override
fun
run
()
{
foo
()
}
}
...
...
compiler/testData/codegen/regressions/kt1157.kt
浏览文件 @
9b2eeb07
...
...
@@ -2,7 +2,7 @@ public object SomeClass {
var
bug
:
Any
=
""
private
val
workerThread
=
object
:
Thread
()
{
override
fun
run
()
{
public
override
fun
run
()
{
try
{
foo
()
bug
=
"none"
...
...
compiler/testData/codegen/regressions/kt1159.kt
浏览文件 @
9b2eeb07
public
object
RefreshQueue
{
private
val
workerThread
:
Thread
=
Thread
(
object
:
Runnable
{
override
fun
run
()
{
public
override
fun
run
()
{
workerThread
.
isInterrupted
()
}
});
...
...
compiler/testData/codegen/regressions/kt1168.kt
浏览文件 @
9b2eeb07
...
...
@@ -7,9 +7,9 @@ public abstract class BaseClass() {
}
public
class
Subclass
:
BaseClass
()
{
override
val
kind
:
String
=
"Physical"
protected
override
val
kind
:
String
=
"Physical"
override
val
kind2
:
String
=
" kind2"
protected
override
val
kind2
:
String
=
" kind2"
}
fun
box
():
String
=
if
(
Subclass
().
debug
()
==
"Physical kind2"
)
"OK"
else
"fail"
compiler/testData/codegen/regressions/kt299.jet
浏览文件 @
9b2eeb07
class MyRange1() : Range<Int> {
override fun contains(item: Int) = true
public
override fun contains(item: Int) = true
}
class MyRange2() {
...
...
compiler/testData/codegen/regressions/kt344.jet
浏览文件 @
9b2eeb07
...
...
@@ -163,7 +163,7 @@ fun t11(var x: Int) : Int {
fun t12(x: Int) : Int {
var y = x
val runnable = object : Runnable {
override fun run () {
public
override fun run () {
y = y + 1
}
}
...
...
compiler/testData/codegen/regressions/kt533.kt
浏览文件 @
9b2eeb07
...
...
@@ -95,11 +95,11 @@ fun LinkedList<Int>.sum(f : (Int, Int) -> Int) : Int {
}
fun
<
T
>
List
<
T
>.
backwards
()
:
Iterable
<
T
>
=
object
:
Iterable
<
T
>
{
override
fun
iterator
()
:
jet
.
Iterator
<
T
>
=
public
override
fun
iterator
()
:
jet
.
Iterator
<
T
>
=
object
: jet.
Iterator
<
T
>
{
var
current
=
size
()
override
fun
next
()
:
T
=
get
(--
current
)
override
val
hasNext
:
Boolean
get
()
=
current
>
0
public
override
fun
next
()
:
T
=
get
(--
current
)
public
override
val
hasNext
:
Boolean
get
()
=
current
>
0
}
}
...
...
compiler/testData/codegen/regressions/kt887.jet
浏览文件 @
9b2eeb07
class Book(val name: String) : Comparable<Book> {
override fun compareTo(other: Book) = name.compareTo(other.name)
public
override fun compareTo(other: Book) = name.compareTo(other.name)
}
fun box() = if(Book("239").compareTo(Book("932")) != 0) "OK" else "fail"
\ No newline at end of file
compiler/testData/codegen/regressions/kt940.kt
浏览文件 @
9b2eeb07
...
...
@@ -3,13 +3,13 @@ import java.util.*
fun
box
()
:
String
{
val
w
=
object
:
Comparator
<
String
?>
{
override
fun
compare
(
o1
:
String
?,
o2
:
String
?)
:
Int
{
public
override
fun
compare
(
o1
:
String
?,
o2
:
String
?)
:
Int
{
val
l1
:
Int
=
o1
?.
length
?:
0
val
l2
=
o2
?.
length
?:
0
return
l1
-
l2
}
override
fun
equals
(
obj
:
Any
?):
Boolean
=
obj
===
this
public
override
fun
equals
(
obj
:
Any
?):
Boolean
=
obj
===
this
}
w
.
compare
(
"aaa"
,
"bbb"
)
...
...
compiler/testData/codegen/super/basicmethodSuperClass.jet
浏览文件 @
9b2eeb07
import java.util.ArrayList
class N() : ArrayList<Any>() {
override fun add(el: Any) : Boolean {
public
override fun add(el: Any) : Boolean {
if (!super<ArrayList>.add(el)) {
throw Exception()
}
...
...
compiler/testData/codegen/traits/simple.jet
浏览文件 @
9b2eeb07
...
...
@@ -3,7 +3,7 @@ trait SimpleClass : java.lang.Object {
}
class SimpleClassImpl() : SimpleClass {
override fun toString() = "SimpleClassImpl"
public
override fun toString() = "SimpleClassImpl"
}
fun box() : String {
...
...
compiler/testData/codegen/traits/stdlib.jet
浏览文件 @
9b2eeb07
...
...
@@ -3,7 +3,7 @@ trait ISized {
}
trait javaUtilIterator<T> : java.util.Iterator<T> {
override fun remove() : Unit {
public
override fun remove() : Unit {
throw UnsupportedOperationException()
}
}
...
...
@@ -11,9 +11,9 @@ trait javaUtilIterator<T> : java.util.Iterator<T> {
class MyIterator<T>(val array : ReadOnlyArray<T>) : javaUtilIterator<T> {
private var index = 0
override fun hasNext() : Boolean = index < array.size
public
override fun hasNext() : Boolean = index < array.size
override fun next() : T = array.get(index++)
public
override fun next() : T = array.get(index++)
}
trait ReadOnlyArray<out T> : ISized, java.lang.Iterable<T> {
...
...
@@ -23,7 +23,7 @@ trait ReadOnlyArray<out T> : ISized, java.lang.Iterable<T> {
fun check(v: Any) = v is T
}
override fun iterator() : java.util.Iterator<T> = MyIterator<T>(this)
public
override fun iterator() : java.util.Iterator<T> = MyIterator<T>(this)
}
trait WriteOnlyArray<in T> : ISized {
...
...
compiler/testData/diagnostics/tests/PrimaryConstructors.jet
浏览文件 @
9b2eeb07
...
...
@@ -18,12 +18,12 @@ class Z : Y() {
class MyIterable<T> : Iterable<T>
{
override fun iterator(): Iterator<T> = MyIterator()
public
override fun iterator(): Iterator<T> = MyIterator()
class MyIterator : Iterator<T>
{
override val hasNext: Boolean = false
override fun next(): T {
public
override val hasNext: Boolean = false
public
override fun next(): T {
throw UnsupportedOperationException()
}
}
...
...
compiler/testData/diagnostics/tests/extensions/GenericIterator.jet
浏览文件 @
9b2eeb07
import java.util.Enumeration
inline fun <T> java.util.Enumeration<T>.iterator() = object: Iterator<T> {
override val hasNext: Boolean
public
override val hasNext: Boolean
get() = hasMoreElements()
override fun next() = nextElement()
public
override fun next() = nextElement()
}
fun a(e : java.util.Enumeration<Int>) {
...
...
compiler/testData/diagnostics/tests/regressions/kt588.jet
浏览文件 @
9b2eeb07
...
...
@@ -6,7 +6,7 @@ class Test() : Thread("Test") {
}
}
override fun run() {
public
override fun run() {
init2() // unresolved
Test.init2() // ok
}
...
...
compiler/testData/diagnostics/tests/scopes/visibility2.jet
浏览文件 @
9b2eeb07
...
...
@@ -38,7 +38,7 @@ class Q {
}
}
//
check
that
'toString'
can
be
invoked
without
specifying
'public'
and
': String'
//
check
that
'toString'
can
be
invoked
without
specifying
return
type
class
NewClass
:
java
.
util
.
ArrayList
<
Integer
>()
{
override
fun
toString
()
=
"a"
public
override
fun
toString
()
=
"a"
}
compiler/testData/diagnostics/tests/scopes/visibility_inherit_modifier.jet
浏览文件 @
9b2eeb07
...
...
@@ -18,7 +18,7 @@ open class D {
}
class
E
:
D
()
{
internal
override
fun
self
()
=
this
internal
<
!NOTHING_TO_OVERRIDE!>override<!>
fun self() = this
fun
test
()
{
val
<
!UNUSED_VARIABLE!>s<!> : E = self()
...
...
@@ -31,11 +31,7 @@ open class F {
}
class
G
:
F
()
{
override
fun
protected_fun
()
{}
}
fun
test_fun_stays_protected
(
g
:
G
)
{
g
.<
!UNRESOLVED_REFERENCE!>protected_fun<!>()
<
!CANNOT_CHANGE_ACCESS_PRIVILEGE!>override<!> fun protected_fun() {}
}
//------------
...
...
@@ -61,11 +57,11 @@ trait T {
}
open
class
L
:
T
{
override
fun
foo
()
{}
<
!CANNOT_WEAKEN_ACCESS_PRIVILEGE!>override<!>
fun foo() {}
}
class
M
:
L
()
{
<
!CANNOT_WEAKEN_ACCESS_PRIVILEGE!>internal<!>
override fun foo() {}
internal
override
fun
foo
()
{}
}
//---------------
trait
R
{
...
...
@@ -82,4 +78,4 @@ trait Q : R {
class
S
:
P
,
Q
{
<
!CANNOT_CHANGE_ACCESS_PRIVILEGE!>internal<!> override fun foo() {}
}
}
\ No newline at end of file
libraries/kunit/src/main/kotlin/junit/JUnit.kt
浏览文件 @
9b2eeb07
...
...
@@ -4,23 +4,23 @@ import kotlin.test.Asserter
import
org.junit.Assert
class
JUnitAsserter
:
Asserter
{
override
fun
assertEquals
(
message
:
String
,
expected
:
Any
?,
actual
:
Any
?)
{
public
override
fun
assertEquals
(
message
:
String
,
expected
:
Any
?,
actual
:
Any
?)
{
Assert
.
assertEquals
(
message
,
expected
,
actual
)
}
override
fun
assertNotNull
(
message
:
String
,
actual
:
Any
?)
{
public
override
fun
assertNotNull
(
message
:
String
,
actual
:
Any
?)
{
Assert
.
assertNotNull
(
message
,
actual
)
}
override
fun
assertNull
(
message
:
String
,
actual
:
Any
?)
{
public
override
fun
assertNull
(
message
:
String
,
actual
:
Any
?)
{
Assert
.
assertNull
(
message
,
actual
)
}
override
fun
assertTrue
(
message
:
String
,
actual
:
Boolean
)
{
public
override
fun
assertTrue
(
message
:
String
,
actual
:
Boolean
)
{
Assert
.
assertTrue
(
message
,
actual
)
}
override
fun
fail
(
message
:
String
)
{
public
override
fun
fail
(
message
:
String
)
{
Assert
.
fail
(
message
)
}
}
\ No newline at end of file
libraries/stdlib/src/kotlin/Standard.kt
浏览文件 @
9b2eeb07
...
...
@@ -21,7 +21,7 @@ public inline fun <T> java.util.Iterator<T>.iterator() : java.util.Iterator<T> =
Helper to make java.util.Enumeration usable in for
*/
public
fun
<
erased
T
>
java
.
util
.
Enumeration
<
T
>.
iterator
():
Iterator
<
T
>
=
object
:
Iterator
<
T
>
{
override
val
hasNext
:
Boolean
public
override
val
hasNext
:
Boolean
get
()
=
hasMoreElements
()
public
override
fun
next
()
:
T
=
nextElement
().
sure
()
...
...
libraries/stdlib/src/kotlin/concurrent/FunctionalList.kt
浏览文件 @
9b2eeb07
...
...
@@ -35,15 +35,15 @@ abstract class FunctionalList<T>(public val size: Int) {
return
head
}
override
val
hasNext
:
Boolean
public
override
val
hasNext
:
Boolean
get
()
=
!
cur
.
empty
}
class
object {
class
Empty
<
T
>()
:
FunctionalList
<
T
>(
0
)
{
override
val
head
:
T
public
override
val
head
:
T
get
()
=
throw
java
.
util
.
NoSuchElementException
()
override
val
tail
:
FunctionalList
<
T
>
public
override
val
tail
:
FunctionalList
<
T
>
get
()
=
throw
java
.
util
.
NoSuchElementException
()
}
...
...
libraries/stdlib/src/kotlin/dom/Dom.kt
浏览文件 @
9b2eeb07
...
...
@@ -201,7 +201,7 @@ fun Node.nextSiblings() : Iterator<Node> = NextSiblingIterator(this)
class
NextSiblingIterator
(
var
node
:
Node
)
:
AbstractIterator
<
Node
>()
{
override
fun
computeNext
():
Unit
{
protected
override
fun
computeNext
():
Unit
{
val
next
=
node
.
getNextSibling
()
if
(
next
!=
null
)
{
setNext
(
next
)
...
...
@@ -215,7 +215,7 @@ fun Node.previousSiblings() : Iterator<Node> = PreviousSiblingIterator(this)
class
PreviousSiblingIterator
(
var
node
:
Node
)
:
AbstractIterator
<
Node
>()
{
override
fun
computeNext
():
Unit
{
protected
override
fun
computeNext
():
Unit
{
val
next
=
node
.
getPreviousSibling
()
if
(
next
!=
null
)
{
setNext
(
next
)
...
...
@@ -323,7 +323,7 @@ fun NodeList?.toXmlString(xmlDeclaration: Boolean = false): String {
}
class
NodeListAsList
(
val
nodeList
:
NodeList
):
AbstractList
<
Node
>()
{
override
fun
get
(
index
:
Int
):
Node
{
public
override
fun
get
(
index
:
Int
):
Node
{
val
node
=
nodeList
.
item
(
index
)
if
(
node
==
null
)
{
throw
IndexOutOfBoundsException
(
"NodeList does not contain a node at index: "
+
index
)
...
...
@@ -332,11 +332,11 @@ class NodeListAsList(val nodeList: NodeList): AbstractList<Node>() {
}
}
override
fun
size
():
Int
=
nodeList
.
getLength
()
public
override
fun
size
():
Int
=
nodeList
.
getLength
()
}
class
ElementListAsList
(
val
nodeList
:
NodeList
):
AbstractList
<
Element
>()
{
override
fun
get
(
index
:
Int
):
Element
{
public
override
fun
get
(
index
:
Int
):
Element
{
val
node
=
nodeList
.
item
(
index
)
if
(
node
is
Element
)
{
return
node
...
...
@@ -349,7 +349,7 @@ class ElementListAsList(val nodeList: NodeList): AbstractList<Element>() {
}
}
override
fun
size
():
Int
=
nodeList
.
getLength
()
public
override
fun
size
():
Int
=
nodeList
.
getLength
()
}
...
...
libraries/stdlib/src/kotlin/io/JIO.kt
浏览文件 @
9b2eeb07
...
...
@@ -172,7 +172,7 @@ public inline fun <T: Closeable, R> T.use(block: (T)-> R) : R {
/** Returns an [Iterator] of bytes over an input stream */
public
fun
InputStream
.
iterator
()
:
ByteIterator
=
object
:
ByteIterator
()
{
override
val
hasNext
:
Boolean
public
override
val
hasNext
:
Boolean
get
()
=
available
()
>
0
public
override
fun
nextByte
()
:
Byte
=
read
().
toByte
()
...
...
@@ -236,7 +236,7 @@ class LineIterator(val reader: BufferedReader) : Iterator<String> {
private
var
nextValue
:
String
?
=
null
private
var
done
=
false
override
val
hasNext
:
Boolean
public
override
val
hasNext
:
Boolean
get
()
{
if
(
nextValue
==
null
&&
!
done
)
{
nextValue
=
reader
.
readLine
()
...
...
libraries/stdlib/src/kotlin/support/AbstractIterator.kt
浏览文件 @
9b2eeb07
...
...
@@ -17,7 +17,7 @@ public abstract class AbstractIterator<T>: java.util.Iterator<T> {
private
var
state
:
State
=
State
.
NotReady
private
var
next
:
T
?
=
null
override
fun
hasNext
():
Boolean
{
public
override
fun
hasNext
():
Boolean
{
require
(
state
!=
State
.
Failed
)
return
when
(
state
)
{
State
.
Done
->
false
...
...
@@ -26,13 +26,13 @@ public abstract class AbstractIterator<T>: java.util.Iterator<T> {
}
}
override
fun
next
():
T
{
public
override
fun
next
():
T
{
if
(!
hasNext
())
throw
NoSuchElementException
()
state
=
State
.
NotReady
return
next
.
sure
()
}
override
fun
remove
()
{
public
override
fun
remove
()
{
throw
UnsupportedOperationException
()
}
...
...
libraries/stdlib/test/CollectionTest.kt
浏览文件 @
9b2eeb07
...
...
@@ -406,7 +406,7 @@ class CollectionTest {
class
IterableWrapper
<
T
>(
collection
:
java
.
lang
.
Iterable
<
T
>)
:
java
.
lang
.
Iterable
<
T
>
{
private
val
collection
=
collection
override
fun
iterator
():
java
.
util
.
Iterator
<
T
>
{
public
override
fun
iterator
():
java
.
util
.
Iterator
<
T
>
{
return
collection
.
iterator
().
sure
()
}
}
...
...
libraries/stdlib/test/CompareTest.kt
浏览文件 @
9b2eeb07
...
...
@@ -43,10 +43,10 @@ class CompareTest {
Test
fun
sortUsingCustomComparator
()
{
val
c
=
object
:
Comparator
<
Item
>{
override
fun
compare
(
o1
:
Item
?,
o2
:
Item
?):
Int
{
public
override
fun
compare
(
o1
:
Item
?,
o2
:
Item
?):
Int
{
return
compareBy
(
o1
,
o2
,
{(
it
:
Item
)
->
it
.
name
},
{(
it
:
Item
)
->
it
.
rating
})
}
override
fun
equals
(
obj
:
Any
?):
Boolean
{
public
override
fun
equals
(
obj
:
Any
?):
Boolean
{
return
this
==
obj
}
}
...
...
libraries/stdlib/test/Test.kt
浏览文件 @
9b2eeb07
...
...
@@ -17,13 +17,13 @@ class TestBuilt<T>(name: String, val builder: TestBuilder<T>, val test: TestBuil
get
()
=
myState
.
sure
()
set
(
newState
:
T
)
{
myState
=
newState
}
override
fun
countTestCases
():
Int
=
1
public
override
fun
countTestCases
():
Int
=
1
override
fun
setUp
()
=
this
.(
builder
.
setUp
)()
protected
override
fun
setUp
()
=
this
.(
builder
.
setUp
)()
override
fun
tearDown
()
=
this
.(
builder
.
tearDown
)()
protected
override
fun
tearDown
()
=
this
.(
builder
.
tearDown
)()
override
fun
runTest
()
=
this
.(
test
)()
protected
override
fun
runTest
()
=
this
.(
test
)()
}
open
class
TestBuilder
<
T
>(
name
:
String
)
{
...
...
libraries/stdlib/test/concurrent/SerialFunAndTupleTest.kt
浏览文件 @
9b2eeb07
...
...
@@ -10,7 +10,7 @@ import junit.framework.TestCase
import
junit.framework.Assert
class
Serial
(
val
a
:
String
)
:
java
.
lang
.
Object
(),
Serializable
{
override
fun
toString
()
=
a
public
override
fun
toString
()
=
a
}
class
SerialTest
()
:
TestCase
()
{
...
...
libraries/stdlib/test/properties/PropertiesTest.kt
浏览文件 @
9b2eeb07
...
...
@@ -28,7 +28,7 @@ class Customer() : ChangeSupport() {
class
MyChangeListener
()
:
ChangeListener
{
val
events
=
ArrayList
<
ChangeEvent
>()
override
fun
onPropertyChange
(
event
:
ChangeEvent
):
Unit
{
public
override
fun
onPropertyChange
(
event
:
ChangeEvent
):
Unit
{
println
(
"Property changed: $event"
)
events
.
add
(
event
)
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录