Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
硅谷海盗
kotlin
提交
449a7915
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,体验更适合开发者的 AI 搜索 >>
提交
449a7915
编写于
3月 24, 2021
作者:
M
Mikhail Glukhikh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
FirNotImplementedOverrideChecker: check also anonymous objects / enums
上级
82b8cc33
变更
19
隐藏空白更改
内联
并排
Showing
19 changed file
with
44 addition
and
64 deletion
+44
-64
compiler/fir/analysis-tests/testData/resolve/enum.kt
compiler/fir/analysis-tests/testData/resolve/enum.kt
+2
-2
compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirNotImplementedOverrideChecker.kt
.../checkers/declaration/FirNotImplementedOverrideChecker.kt
+9
-10
compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt
...s/kotlin/fir/lightTree/converter/DeclarationsConverter.kt
+4
-3
compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt
...fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt
+1
-1
compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/RawFirBuilderTotalKotlinTestCase.kt
...ns/kotlin/fir/builder/RawFirBuilderTotalKotlinTestCase.kt
+1
-0
compiler/testData/diagnostics/tests/declarationChecks/kt1141.fir.kt
...estData/diagnostics/tests/declarationChecks/kt1141.fir.kt
+2
-2
compiler/testData/diagnostics/tests/enum/enumEntryInAbstractEnum.fir.kt
...ata/diagnostics/tests/enum/enumEntryInAbstractEnum.fir.kt
+0
-13
compiler/testData/diagnostics/tests/enum/enumEntryInAbstractEnum.kt
...estData/diagnostics/tests/enum/enumEntryInAbstractEnum.kt
+1
-0
compiler/testData/diagnostics/tests/override/kt4763property.fir.kt
...testData/diagnostics/tests/override/kt4763property.fir.kt
+0
-11
compiler/testData/diagnostics/tests/override/kt4763property.kt
...ler/testData/diagnostics/tests/override/kt4763property.kt
+1
-0
compiler/testData/diagnostics/tests/thisAndSuper/thisInPropertyInitializer.fir.kt
...stics/tests/thisAndSuper/thisInPropertyInitializer.fir.kt
+1
-1
compiler/testData/diagnostics/testsWithStdLib/kt9078.fir.kt
compiler/testData/diagnostics/testsWithStdLib/kt9078.fir.kt
+1
-1
compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.10.fir.kt
...on/class-declaration/abstract-classes/p-2/neg/1.10.fir.kt
+1
-1
compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.2.fir.kt
...ion/class-declaration/abstract-classes/p-2/neg/1.2.fir.kt
+2
-2
compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.4.fir.kt
...ion/class-declaration/abstract-classes/p-2/neg/1.4.fir.kt
+1
-1
compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.7.fir.kt
...ion/class-declaration/abstract-classes/p-2/neg/1.7.fir.kt
+2
-2
compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.9.fir.kt
...ion/class-declaration/abstract-classes/p-2/neg/1.9.fir.kt
+2
-2
idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/diagnostics/KtFirDataClassConverters.kt
.../frontend/api/fir/diagnostics/KtFirDataClassConverters.kt
+12
-12
idea/testData/checker/ObjectLiteralInDelegate.kt
idea/testData/checker/ObjectLiteralInDelegate.kt
+1
-0
未找到文件。
compiler/fir/analysis-tests/testData/resolve/enum.kt
浏览文件 @
449a7915
...
...
@@ -26,11 +26,11 @@ enum class EnumClass {
override
val
bar
:
String
=
"a"
},
E2
{
<!
ABSTRACT_MEMBER_NOT_IMPLEMENTED
!>
E2
<
!
>
{
},
E3
();
<!
ABSTRACT_MEMBER_NOT_IMPLEMENTED
!>
E3
<
!
>
();
abstract
fun
foo
():
Int
abstract
val
bar
:
String
...
...
compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirNotImplementedOverrideChecker.kt
浏览文件 @
449a7915
...
...
@@ -28,16 +28,13 @@ import org.jetbrains.kotlin.util.OperatorNameConventions
object
FirNotImplementedOverrideChecker
:
FirClassChecker
()
{
override
fun
check
(
declaration
:
FirClass
<
*
>,
context
:
CheckerContext
,
reporter
:
DiagnosticReporter
)
{
// TODO: kt4763Property: reporting on `object` literal causes invalid error in test...FirDiagnosticHandler
if
(
declaration
!
is
FirRegularClass
)
return
val
source
=
declaration
.
source
?:
return
if
(
source
.
kind
is
FirFakeSourceElementKind
)
return
val
sourceKind
=
source
.
kind
if
(
sourceKind
is
FirFakeSourceElementKind
&&
sourceKind
!=
FirFakeSourceElementKind
.
EnumInitializer
)
return
val
modality
=
declaration
.
modality
()
if
(
modality
==
Modality
.
ABSTRACT
||
modality
==
Modality
.
SEALED
)
return
if
(
declaration
.
isExpect
)
return
if
(
declaration
is
FirRegularClass
&&
declaration
.
isExpect
)
return
val
classKind
=
declaration
.
classKind
// TODO: we should check enum entries (probably as anonymous objects, see above)
if
(
classKind
==
ClassKind
.
ANNOTATION_CLASS
||
classKind
==
ClassKind
.
ENUM_CLASS
)
return
val
classScope
=
declaration
.
unsubstitutedScope
(
...
...
@@ -70,7 +67,9 @@ object FirNotImplementedOverrideChecker : FirClassChecker() {
classScope
.
processFunctionsByName
(
name
)
{
namedFunctionSymbol
->
val
simpleFunction
=
namedFunctionSymbol
.
fir
if
(!
simpleFunction
.
shouldBeImplemented
())
return
@processFunctionsByName
if
(
declaration
.
isData
&&
simpleFunction
.
matchesDataClassSyntheticMemberSignatures
)
return
@processFunctionsByName
if
(
declaration
is
FirRegularClass
&&
declaration
.
isData
&&
simpleFunction
.
matchesDataClassSyntheticMemberSignatures
)
{
return
@processFunctionsByName
}
// TODO: suspend function overridden by a Java class in the middle is not properly regarded as an override
if
(
simpleFunction
.
isSuspend
)
return
@processFunctionsByName
...
...
@@ -94,7 +93,7 @@ object FirNotImplementedOverrideChecker : FirClassChecker() {
if
(
notImplementedSymbols
.
isNotEmpty
())
{
val
notImplemented
=
notImplementedSymbols
.
first
().
fir
if
(
notImplemented
.
isFromInterface
(
context
))
{
if
(
notImplemented
.
isFromInterface
OrEnum
(
context
))
{
reporter
.
reportOn
(
source
,
FirErrors
.
ABSTRACT_MEMBER_NOT_IMPLEMENTED
,
declaration
,
notImplemented
,
context
)
}
else
{
reporter
.
reportOn
(
source
,
FirErrors
.
ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED
,
declaration
,
notImplemented
,
context
)
...
...
@@ -110,8 +109,8 @@ object FirNotImplementedOverrideChecker : FirClassChecker() {
}
}
private
fun
FirCallableDeclaration
<*>.
isFromInterface
(
context
:
CheckerContext
):
Boolean
=
(
getContainingClass
(
context
)
as
?
FirRegularClass
)
?.
isInterface
==
true
private
fun
FirCallableDeclaration
<*>.
isFromInterface
OrEnum
(
context
:
CheckerContext
):
Boolean
=
(
getContainingClass
(
context
)
as
?
FirRegularClass
)
?.
let
{
it
.
isInterface
||
it
.
isEnumClass
}
==
true
private
val
FirSimpleFunction
.
matchesDataClassSyntheticMemberSignatures
:
Boolean
get
()
=
(
this
.
name
==
OperatorNameConventions
.
EQUALS
&&
matchesEqualsSignature
)
||
...
...
compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt
浏览文件 @
449a7915
...
...
@@ -532,7 +532,8 @@ class DeclarationsConverter(
fun
convertObjectLiteral
(
objectLiteral
:
LighterASTNode
):
FirElement
{
return
withChildClassName
(
ANONYMOUS_OBJECT_NAME
)
{
buildAnonymousObject
{
source
=
objectLiteral
.
toFirSourceElement
()
val
objectDeclaration
=
objectLiteral
.
getChildNodesByType
(
OBJECT_DECLARATION
).
first
()
source
=
objectDeclaration
.
toFirSourceElement
()
origin
=
FirDeclarationOrigin
.
Source
session
=
baseSession
classKind
=
ClassKind
.
OBJECT
...
...
@@ -551,7 +552,7 @@ class DeclarationsConverter(
var
delegatedConstructorSource
:
FirLightSourceElement
?
=
null
var
delegateFields
:
List
<
FirField
>?
=
null
object
Literal
.
getChildNodesByType
(
OBJECT_DECLARATION
).
first
()
.
forEachChildren
{
object
Declaration
.
forEachChildren
{
when
(
it
.
tokenType
)
{
MODIFIER_LIST
->
modifiers
=
convertModifierList
(
it
)
PRIMARY_CONSTRUCTOR
->
primaryConstructor
=
it
...
...
@@ -636,7 +637,7 @@ class DeclarationsConverter(
annotations
+=
modifiers
.
annotations
initializer
=
withChildClassName
(
enumEntryName
)
{
buildAnonymousObject
{
source
=
this
@buildEnumEntry
.
source
source
=
enumEntry
.
toFirSourceElement
(
FirFakeSourceElementKind
.
EnumInitializer
)
session
=
baseSession
origin
=
FirDeclarationOrigin
.
Source
classKind
=
ClassKind
.
ENUM_ENTRY
...
...
compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt
浏览文件 @
449a7915
...
...
@@ -894,7 +894,7 @@ open class RawFirBuilder(
val
objectDeclaration
=
expression
.
objectDeclaration
return
withChildClassName
(
ANONYMOUS_OBJECT_NAME
)
{
buildAnonymousObject
{
source
=
express
ion
.
toFirSourceElement
()
source
=
objectDeclarat
ion
.
toFirSourceElement
()
session
=
baseSession
origin
=
FirDeclarationOrigin
.
Source
classKind
=
ClassKind
.
OBJECT
...
...
compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/RawFirBuilderTotalKotlinTestCase.kt
浏览文件 @
449a7915
...
...
@@ -258,6 +258,7 @@ class RawFirBuilderTotalKotlinTestCase : AbstractRawFirBuilderTestCase() {
it
is
KtAnnotatedExpression
||
it
is
KtWhenConditionWithExpression
||
it
is
KtFinallySection
||
it
is
KtObjectLiteralExpression
||
// TODO: KT-24089 (support of dynamic)
it
is
KtDynamicType
||
// NB: KtAnnotation is processed via its KtAnnotationEntries
...
...
compiler/testData/diagnostics/tests/declarationChecks/kt1141.fir.kt
浏览文件 @
449a7915
...
...
@@ -7,7 +7,7 @@ public interface SomeTrait {
}
fun
foo
()
{
val
x
=
object
:
SomeTrait
{
val
x
=
<!
ABSTRACT_MEMBER_NOT_IMPLEMENTED
!>
object
<!>
:
SomeTrait
{
}
x
.
foo
()
}
...
...
@@ -17,5 +17,5 @@ fun foo() {
<!
ABSTRACT_MEMBER_NOT_IMPLEMENTED
!>
class
C
<!>
:
SomeTrait
{}
fun
foo2
()
{
val
r
=
object
:
Runnable
{}
//no error
val
r
=
<!
ABSTRACT_MEMBER_NOT_IMPLEMENTED
!>
object
<!>
:
Runnable
{}
//no error
}
compiler/testData/diagnostics/tests/enum/enumEntryInAbstractEnum.fir.kt
已删除
100644 → 0
浏览文件 @
82b8cc33
enum
class
EnumClass
{
E1
{
override
fun
foo
()
=
1
override
val
bar
:
String
=
"a"
},
E2
{
};
abstract
fun
foo
():
Int
abstract
val
bar
:
String
}
\ No newline at end of file
compiler/testData/diagnostics/tests/enum/enumEntryInAbstractEnum.kt
浏览文件 @
449a7915
// FIR_IDENTICAL
enum
class
EnumClass
{
E1
{
override
fun
foo
()
=
1
...
...
compiler/testData/diagnostics/tests/override/kt4763property.fir.kt
已删除
100644 → 0
浏览文件 @
82b8cc33
interface
P
{
var
f
:
Number
}
open
class
Q
{
val
x
:
Int
=
42
}
<!
ABSTRACT_MEMBER_NOT_IMPLEMENTED
!>
class
R
<!>
:
P
,
Q
()
val
s
:
Q
=
object
:
Q
(),
P
{}
compiler/testData/diagnostics/tests/override/kt4763property.kt
浏览文件 @
449a7915
// FIR_IDENTICAL
interface
P
{
var
f
:
Number
}
...
...
compiler/testData/diagnostics/tests/thisAndSuper/thisInPropertyInitializer.fir.kt
浏览文件 @
449a7915
interface
Base
{
fun
foo
()
}
val
String
.
test
:
Base
=
<!
EXTENSION_PROPERTY_WITH_BACKING_FIELD
!>
object
:
Base
<
!
>
{
val
String
.
test
:
Base
=
<!
EXTENSION_PROPERTY_WITH_BACKING_FIELD
!>
object
<!>:
Base
{
override
fun
foo
()
{
<!
UNRESOLVED_LABEL
!>
this
@test
<!>
}
...
...
compiler/testData/diagnostics/testsWithStdLib/kt9078.fir.kt
浏览文件 @
449a7915
...
...
@@ -4,7 +4,7 @@ abstract class KFunctionKt9005WorkAround<out R: Any?>(private val _functionInsta
private
val
_parameters
:
List
<
kotl
in
.reflect.
KParameter
>
=
run
{
_functionInstance
.
javaClass
.
methods
.
first
().<!
UNRESOLVED_REFERENCE
!>
parameters
<!>.<!
AMBIGUITY
!>
map
<!>
{
object
: kotlin.reflect.
KParameter
{
<!
ABSTRACT_MEMBER_NOT_IMPLEMENTED
!>
object
<!>
:
kotlin
.
reflect
.
KParameter
{
override
val
index
:
Int
=
0
}
}
...
...
compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.10.fir.kt
浏览文件 @
449a7915
...
...
@@ -33,7 +33,7 @@ class Case2Outer {
// TESTCASE NUMBER: 3
fun
case3
()
{
object
:
CaseOuter
.
CaseBase
()
{}.
outerFoo
()
<!
ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED
!>
object
<!>
:
CaseOuter
.
CaseBase
()
{}.
outerFoo
()
}
<!
ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED
!>
class
B
<!>()
:
CaseOuter
.
CaseBase
()
{}
...
...
compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.2.fir.kt
浏览文件 @
449a7915
...
...
@@ -44,7 +44,7 @@ fun case1() {
* NOTE: property is not implemented
*/
fun
case2
()
{
val
impl
=
object
:
Base
()
{
val
impl
=
<!
ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED
!>
object
<!>
:
Base
()
{
override
var
b
:
Any
get
()
=
TODO
()
set
(
value
)
{}
...
...
@@ -71,7 +71,7 @@ fun case2() {
*/
fun
case3
()
{
val
impl
=
object
:
Base
()
{
val
impl
=
<!
ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED
!>
object
<!>
:
Base
()
{
override
var
b
:
Any
get
()
=
TODO
()
set
(
value
)
{}
...
...
compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.4.fir.kt
浏览文件 @
449a7915
...
...
@@ -44,7 +44,7 @@ class Case2() {
abstract
inner
class
Impl
(
override
val
a
:
CharSequence
)
:
MainClass
.
Base3
(
a
)
{}
fun
boo
()
{
val
impl
=
object
:
Impl
(
"a"
)
{
val
impl
=
<!
ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED
!>
object
<!>
:
Impl
(
"a"
)
{
override
fun
foo
():
CharSequence
=
"foo"
}
}
...
...
compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.7.fir.kt
浏览文件 @
449a7915
...
...
@@ -65,7 +65,7 @@ fun case3() {
val
v
=
Case3
()
v
.
boo
(
true
)
val
o
=
object
:
BaseKotlin
()
{}
val
o
=
<!
INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER
!>
object
<!>
:
BaseKotlin
()
{}
}
/*
...
...
@@ -78,6 +78,6 @@ abstract class AbstractClassCase4 : BaseKotlin() {}
fun
case4
()
{
val
v
=
Case4
()
v
.
boo
(
true
)
val
o
=
object
:
AbstractClassCase4
()
{}
val
o
=
<!
INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER
!>
object
<!>
:
AbstractClassCase4
()
{}
}
compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.9.fir.kt
浏览文件 @
449a7915
...
...
@@ -59,7 +59,7 @@ import libModule.*
// TESTCASE NUMBER: 2
class
KotlinClassWithAbstractJavaClass
()
{
fun
foo
()
{
val
baseJava1
=
object
:
BaseJava1
()
{}
val
baseKotlin
=
object
:
BaseKotlin1
()
{}
val
baseJava1
=
<!
INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER
!>
object
<!>
:
BaseJava1
()
{}
val
baseKotlin
=
<!
INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER
!>
object
<!>
:
BaseKotlin1
()
{}
}
}
idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/diagnostics/KtFirDataClassConverters.kt
浏览文件 @
449a7915
...
...
@@ -882,48 +882,48 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
}
add
(
FirErrors
.
ABSTRACT_MEMBER_NOT_IMPLEMENTED
)
{
firDiagnostic
->
AbstractMemberNotImplementedImpl
(
firSymbolBuilder
.
buildClassLikeSymbol
(
firDiagnostic
.
a
),
firSymbolBuilder
.
buildCallableSymbol
(
firDiagnostic
.
b
as
FirCallableDeclaration
),
firSymbolBuilder
.
classifierBuilder
.
buildClassLikeSymbol
(
firDiagnostic
.
a
),
firSymbolBuilder
.
callableBuilder
.
buildCallableSymbol
(
firDiagnostic
.
b
as
FirCallableDeclaration
),
firDiagnostic
as
FirPsiDiagnostic
<
*
>,
token
,
)
}
add
(
FirErrors
.
ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED
)
{
firDiagnostic
->
AbstractClassMemberNotImplementedImpl
(
firSymbolBuilder
.
buildClassLikeSymbol
(
firDiagnostic
.
a
),
firSymbolBuilder
.
buildCallableSymbol
(
firDiagnostic
.
b
as
FirCallableDeclaration
),
firSymbolBuilder
.
classifierBuilder
.
buildClassLikeSymbol
(
firDiagnostic
.
a
),
firSymbolBuilder
.
callableBuilder
.
buildCallableSymbol
(
firDiagnostic
.
b
as
FirCallableDeclaration
),
firDiagnostic
as
FirPsiDiagnostic
<
*
>,
token
,
)
}
add
(
FirErrors
.
INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER
)
{
firDiagnostic
->
InvisibleAbstractMemberFromSuperImpl
(
firSymbolBuilder
.
buildClassLikeSymbol
(
firDiagnostic
.
a
),
firSymbolBuilder
.
buildCallableSymbol
(
firDiagnostic
.
b
as
FirCallableDeclaration
),
firSymbolBuilder
.
classifierBuilder
.
buildClassLikeSymbol
(
firDiagnostic
.
a
),
firSymbolBuilder
.
callableBuilder
.
buildCallableSymbol
(
firDiagnostic
.
b
as
FirCallableDeclaration
),
firDiagnostic
as
FirPsiDiagnostic
<
*
>,
token
,
)
}
add
(
FirErrors
.
INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_WARNING
)
{
firDiagnostic
->
InvisibleAbstractMemberFromSuperWarningImpl
(
firSymbolBuilder
.
buildClassLikeSymbol
(
firDiagnostic
.
a
),
firSymbolBuilder
.
buildCallableSymbol
(
firDiagnostic
.
b
as
FirCallableDeclaration
),
firSymbolBuilder
.
classifierBuilder
.
buildClassLikeSymbol
(
firDiagnostic
.
a
),
firSymbolBuilder
.
callableBuilder
.
buildCallableSymbol
(
firDiagnostic
.
b
as
FirCallableDeclaration
),
firDiagnostic
as
FirPsiDiagnostic
<
*
>,
token
,
)
}
add
(
FirErrors
.
MANY_IMPL_MEMBER_NOT_IMPLEMENTED
)
{
firDiagnostic
->
ManyImplMemberNotImplementedImpl
(
firSymbolBuilder
.
buildClassLikeSymbol
(
firDiagnostic
.
a
),
firSymbolBuilder
.
buildCallableSymbol
(
firDiagnostic
.
b
as
FirCallableDeclaration
),
firSymbolBuilder
.
classifierBuilder
.
buildClassLikeSymbol
(
firDiagnostic
.
a
),
firSymbolBuilder
.
callableBuilder
.
buildCallableSymbol
(
firDiagnostic
.
b
as
FirCallableDeclaration
),
firDiagnostic
as
FirPsiDiagnostic
<
*
>,
token
,
)
}
add
(
FirErrors
.
MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED
)
{
firDiagnostic
->
ManyInterfacesMemberNotImplementedImpl
(
firSymbolBuilder
.
buildClassLikeSymbol
(
firDiagnostic
.
a
),
firSymbolBuilder
.
buildCallableSymbol
(
firDiagnostic
.
b
as
FirCallableDeclaration
),
firSymbolBuilder
.
classifierBuilder
.
buildClassLikeSymbol
(
firDiagnostic
.
a
),
firSymbolBuilder
.
callableBuilder
.
buildCallableSymbol
(
firDiagnostic
.
b
as
FirCallableDeclaration
),
firDiagnostic
as
FirPsiDiagnostic
<
*
>,
token
,
)
...
...
idea/testData/checker/ObjectLiteralInDelegate.kt
浏览文件 @
449a7915
// FIR_COMPARISON
// Test for KT-8187
interface
A
{
fun
get
(
x
:
Int
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录