Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
硅谷海盗
kotlin
提交
b9dee7fc
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 搜索 >>
提交
b9dee7fc
编写于
5月 05, 2017
作者:
D
Dmitry Petrov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Extract SymbolRemapper interface for DeepCopy customization
上级
5f57368b
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
98 addition
and
57 deletion
+98
-57
compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTreeWithSymbols.kt
...org/jetbrains/kotlin/ir/util/DeepCopyIrTreeWithSymbols.kt
+35
-35
compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopySymbolsRemapper.kt
...c/org/jetbrains/kotlin/ir/util/DeepCopySymbolsRemapper.kt
+22
-22
compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolRemapper.kt
...r.tree/src/org/jetbrains/kotlin/ir/util/SymbolRemapper.kt
+41
-0
未找到文件。
compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTreeWithSymbols.kt
浏览文件 @
b9dee7fc
...
...
@@ -36,7 +36,7 @@ inline fun <reified T : IrElement> T.deepCopyWithSymbols(): T {
}
class
DeepCopyIrTreeWithSymbols
(
private
val
symbol
sRemapper
:
DeepCopySymbols
Remapper
)
:
IrElementTransformerVoid
()
{
class
DeepCopyIrTreeWithSymbols
(
private
val
symbol
Remapper
:
Symbol
Remapper
)
:
IrElementTransformerVoid
()
{
private
fun
mapDeclarationOrigin
(
origin
:
IrDeclarationOrigin
)
=
origin
private
fun
mapStatementOrigin
(
origin
:
IrStatementOrigin
?)
=
origin
...
...
@@ -64,7 +64,7 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
override
fun
visitExternalPackageFragment
(
declaration
:
IrExternalPackageFragment
,
data
:
Nothing
?):
IrExternalPackageFragment
=
IrExternalPackageFragmentImpl
(
symbol
s
Remapper
.
getDeclaredExternalPackageFragment
(
declaration
.
symbol
)
symbolRemapper
.
getDeclaredExternalPackageFragment
(
declaration
.
symbol
)
).
apply
{
declaration
.
transformDeclarationsTo
(
this
)
}
...
...
@@ -72,7 +72,7 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
override
fun
visitFile
(
declaration
:
IrFile
):
IrFile
=
IrFileImpl
(
declaration
.
fileEntry
,
symbol
s
Remapper
.
getDeclaredFile
(
declaration
.
symbol
)
symbolRemapper
.
getDeclaredFile
(
declaration
.
symbol
)
).
apply
{
fileAnnotations
.
addAll
(
declaration
.
fileAnnotations
)
declaration
.
transformDeclarationsTo
(
this
)
...
...
@@ -85,7 +85,7 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
IrClassImpl
(
declaration
.
startOffset
,
declaration
.
endOffset
,
mapDeclarationOrigin
(
declaration
.
origin
),
symbol
s
Remapper
.
getDeclaredClass
(
declaration
.
symbol
)
symbolRemapper
.
getDeclaredClass
(
declaration
.
symbol
)
).
apply
{
thisReceiver
=
declaration
.
thisReceiver
?.
transform
()
declaration
.
typeParameters
.
transformTo
(
typeParameters
)
...
...
@@ -103,7 +103,7 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
IrFunctionImpl
(
declaration
.
startOffset
,
declaration
.
endOffset
,
mapDeclarationOrigin
(
declaration
.
origin
),
symbol
s
Remapper
.
getDeclaredFunction
(
declaration
.
symbol
)
symbolRemapper
.
getDeclaredFunction
(
declaration
.
symbol
)
).
apply
{
transformFunctionChildren
(
declaration
)
}
...
...
@@ -112,7 +112,7 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
IrConstructorImpl
(
declaration
.
startOffset
,
declaration
.
endOffset
,
mapDeclarationOrigin
(
declaration
.
origin
),
symbol
s
Remapper
.
getDeclaredConstructor
(
declaration
.
symbol
)
symbolRemapper
.
getDeclaredConstructor
(
declaration
.
symbol
)
).
apply
{
transformFunctionChildren
(
declaration
)
}
...
...
@@ -141,7 +141,7 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
IrFieldImpl
(
declaration
.
startOffset
,
declaration
.
endOffset
,
mapDeclarationOrigin
(
declaration
.
origin
),
symbol
s
Remapper
.
getDeclaredField
(
declaration
.
symbol
)
symbolRemapper
.
getDeclaredField
(
declaration
.
symbol
)
).
apply
{
initializer
=
declaration
.
initializer
?.
transform
()
}
...
...
@@ -160,7 +160,7 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
IrEnumEntryImpl
(
declaration
.
startOffset
,
declaration
.
endOffset
,
mapDeclarationOrigin
(
declaration
.
origin
),
symbol
s
Remapper
.
getDeclaredEnumEntry
(
declaration
.
symbol
)
symbolRemapper
.
getDeclaredEnumEntry
(
declaration
.
symbol
)
).
apply
{
correspondingClass
=
declaration
.
correspondingClass
?.
transform
()
initializerExpression
=
declaration
.
initializerExpression
?.
transform
()
...
...
@@ -179,7 +179,7 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
IrVariableImpl
(
declaration
.
startOffset
,
declaration
.
endOffset
,
mapDeclarationOrigin
(
declaration
.
origin
),
symbol
s
Remapper
.
getDeclaredVariable
(
declaration
.
symbol
)
symbolRemapper
.
getDeclaredVariable
(
declaration
.
symbol
)
).
apply
{
initializer
=
declaration
.
initializer
?.
transform
()
}
...
...
@@ -188,14 +188,14 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
IrTypeParameterImpl
(
declaration
.
startOffset
,
declaration
.
endOffset
,
mapDeclarationOrigin
(
declaration
.
origin
),
symbol
s
Remapper
.
getDeclaredTypeParameter
(
declaration
.
symbol
)
symbolRemapper
.
getDeclaredTypeParameter
(
declaration
.
symbol
)
)
override
fun
visitValueParameter
(
declaration
:
IrValueParameter
):
IrValueParameter
=
IrValueParameterImpl
(
declaration
.
startOffset
,
declaration
.
endOffset
,
mapDeclarationOrigin
(
declaration
.
origin
),
symbol
s
Remapper
.
getDeclaredValueParameter
(
declaration
.
symbol
)
symbolRemapper
.
getDeclaredValueParameter
(
declaration
.
symbol
)
).
apply
{
defaultValue
=
declaration
.
defaultValue
?.
transform
()
}
...
...
@@ -261,27 +261,27 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
IrGetObjectValueImpl
(
expression
.
startOffset
,
expression
.
endOffset
,
expression
.
type
,
symbol
s
Remapper
.
getReferencedClass
(
expression
.
symbol
)
symbolRemapper
.
getReferencedClass
(
expression
.
symbol
)
)
override
fun
visitGetEnumValue
(
expression
:
IrGetEnumValue
):
IrGetEnumValue
=
IrGetEnumValueImpl
(
expression
.
startOffset
,
expression
.
endOffset
,
expression
.
type
,
symbol
s
Remapper
.
getReferencedEnumEntry
(
expression
.
symbol
)
symbolRemapper
.
getReferencedEnumEntry
(
expression
.
symbol
)
)
override
fun
visitGetValue
(
expression
:
IrGetValue
):
IrGetValue
=
IrGetValueImpl
(
expression
.
startOffset
,
expression
.
endOffset
,
symbol
s
Remapper
.
getReferencedValue
(
expression
.
symbol
),
symbolRemapper
.
getReferencedValue
(
expression
.
symbol
),
mapStatementOrigin
(
expression
.
origin
)
)
override
fun
visitSetVariable
(
expression
:
IrSetVariable
):
IrSetVariable
=
IrSetVariableImpl
(
expression
.
startOffset
,
expression
.
endOffset
,
symbol
s
Remapper
.
getReferencedVariable
(
expression
.
symbol
),
symbolRemapper
.
getReferencedVariable
(
expression
.
symbol
),
expression
.
value
.
transform
(),
mapStatementOrigin
(
expression
.
origin
)
)
...
...
@@ -289,20 +289,20 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
override
fun
visitGetField
(
expression
:
IrGetField
):
IrGetField
=
IrGetFieldImpl
(
expression
.
startOffset
,
expression
.
endOffset
,
symbol
s
Remapper
.
getReferencedField
(
expression
.
symbol
),
symbolRemapper
.
getReferencedField
(
expression
.
symbol
),
expression
.
receiver
?.
transform
(),
mapStatementOrigin
(
expression
.
origin
),
symbol
s
Remapper
.
getReferencedClassOrNull
(
expression
.
superQualifierSymbol
)
symbolRemapper
.
getReferencedClassOrNull
(
expression
.
superQualifierSymbol
)
)
override
fun
visitSetField
(
expression
:
IrSetField
):
IrSetField
=
IrSetFieldImpl
(
expression
.
startOffset
,
expression
.
endOffset
,
symbol
s
Remapper
.
getReferencedField
(
expression
.
symbol
),
symbolRemapper
.
getReferencedField
(
expression
.
symbol
),
expression
.
receiver
?.
transform
(),
expression
.
value
.
transform
(),
mapStatementOrigin
(
expression
.
origin
),
symbol
s
Remapper
.
getReferencedClassOrNull
(
expression
.
superQualifierSymbol
)
symbolRemapper
.
getReferencedClassOrNull
(
expression
.
superQualifierSymbol
)
)
override
fun
visitCall
(
expression
:
IrCall
):
IrCall
=
...
...
@@ -313,18 +313,18 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
is
IrCallWithShallowCopy
->
expression
.
shallowCopy
(
mapStatementOrigin
(
expression
.
origin
),
symbol
s
Remapper
.
getReferencedFunction
(
expression
.
symbol
),
symbol
s
Remapper
.
getReferencedClassOrNull
(
expression
.
superQualifierSymbol
)
symbolRemapper
.
getReferencedFunction
(
expression
.
symbol
),
symbolRemapper
.
getReferencedClassOrNull
(
expression
.
superQualifierSymbol
)
)
else
->
IrCallImpl
(
expression
.
startOffset
,
expression
.
endOffset
,
expression
.
type
,
symbol
s
Remapper
.
getReferencedFunction
(
expression
.
symbol
),
symbolRemapper
.
getReferencedFunction
(
expression
.
symbol
),
expression
.
descriptor
,
// TODO substitute referenced descriptor
expression
.
getTypeArgumentsMap
(),
mapStatementOrigin
(
expression
.
origin
),
symbol
s
Remapper
.
getReferencedClassOrNull
(
expression
.
superQualifierSymbol
)
symbolRemapper
.
getReferencedClassOrNull
(
expression
.
superQualifierSymbol
)
)
}
...
...
@@ -355,7 +355,7 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
override
fun
visitDelegatingConstructorCall
(
expression
:
IrDelegatingConstructorCall
):
IrDelegatingConstructorCall
=
IrDelegatingConstructorCallImpl
(
expression
.
startOffset
,
expression
.
endOffset
,
symbol
s
Remapper
.
getReferencedConstructor
(
expression
.
symbol
),
symbolRemapper
.
getReferencedConstructor
(
expression
.
symbol
),
expression
.
descriptor
,
expression
.
getTypeArgumentsMap
()
).
transformValueArguments
(
expression
)
...
...
@@ -363,7 +363,7 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
override
fun
visitEnumConstructorCall
(
expression
:
IrEnumConstructorCall
):
IrEnumConstructorCall
=
IrEnumConstructorCallImpl
(
expression
.
startOffset
,
expression
.
endOffset
,
symbol
s
Remapper
.
getReferencedConstructor
(
expression
.
symbol
)
symbolRemapper
.
getReferencedConstructor
(
expression
.
symbol
)
).
transformValueArguments
(
expression
)
override
fun
visitGetClass
(
expression
:
IrGetClass
):
IrGetClass
=
...
...
@@ -377,7 +377,7 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
IrFunctionReferenceImpl
(
expression
.
startOffset
,
expression
.
endOffset
,
expression
.
type
,
symbol
s
Remapper
.
getReferencedFunction
(
expression
.
symbol
),
symbolRemapper
.
getReferencedFunction
(
expression
.
symbol
),
expression
.
descriptor
,
// TODO substitute referenced descriptor
expression
.
getTypeArgumentsMap
(),
mapStatementOrigin
(
expression
.
origin
)
...
...
@@ -388,9 +388,9 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
expression
.
startOffset
,
expression
.
endOffset
,
expression
.
type
,
expression
.
descriptor
,
expression
.
field
?.
let
{
symbol
s
Remapper
.
getReferencedField
(
it
)
},
expression
.
getter
?.
let
{
symbol
s
Remapper
.
getReferencedFunction
(
it
)
},
expression
.
setter
?.
let
{
symbol
s
Remapper
.
getReferencedFunction
(
it
)
},
expression
.
field
?.
let
{
symbolRemapper
.
getReferencedField
(
it
)
},
expression
.
getter
?.
let
{
symbolRemapper
.
getReferencedFunction
(
it
)
},
expression
.
setter
?.
let
{
symbolRemapper
.
getReferencedFunction
(
it
)
},
expression
.
getTypeArgumentsMap
(),
mapStatementOrigin
(
expression
.
origin
)
).
transformReceiverArguments
(
expression
)
...
...
@@ -400,9 +400,9 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
expression
.
startOffset
,
expression
.
endOffset
,
expression
.
type
,
expression
.
descriptor
,
symbol
s
Remapper
.
getReferencedVariable
(
expression
.
delegate
),
symbol
s
Remapper
.
getReferencedFunction
(
expression
.
getter
),
expression
.
setter
?.
let
{
symbol
s
Remapper
.
getReferencedFunction
(
it
)
},
symbolRemapper
.
getReferencedVariable
(
expression
.
delegate
),
symbolRemapper
.
getReferencedFunction
(
expression
.
getter
),
expression
.
setter
?.
let
{
symbolRemapper
.
getReferencedFunction
(
it
)
},
mapStatementOrigin
(
expression
.
origin
)
)
...
...
@@ -410,13 +410,13 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
IrClassReferenceImpl
(
expression
.
startOffset
,
expression
.
endOffset
,
expression
.
type
,
symbol
s
Remapper
.
getReferencedClassifier
(
expression
.
symbol
)
symbolRemapper
.
getReferencedClassifier
(
expression
.
symbol
)
)
override
fun
visitInstanceInitializerCall
(
expression
:
IrInstanceInitializerCall
):
IrInstanceInitializerCall
=
IrInstanceInitializerCallImpl
(
expression
.
startOffset
,
expression
.
endOffset
,
symbol
s
Remapper
.
getReferencedClass
(
expression
.
classSymbol
)
symbolRemapper
.
getReferencedClass
(
expression
.
classSymbol
)
)
override
fun
visitTypeOperator
(
expression
:
IrTypeOperatorCall
):
IrTypeOperatorCall
=
...
...
@@ -508,7 +508,7 @@ class DeepCopyIrTreeWithSymbols(private val symbolsRemapper: DeepCopySymbolsRema
IrReturnImpl
(
expression
.
startOffset
,
expression
.
endOffset
,
expression
.
type
,
symbol
s
Remapper
.
getReferencedFunction
(
expression
.
returnTargetSymbol
),
symbolRemapper
.
getReferencedFunction
(
expression
.
returnTargetSymbol
),
expression
.
value
.
transform
()
)
...
...
compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopySymbolsRemapper.kt
浏览文件 @
b9dee7fc
...
...
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.ir.symbols.impl.*
import
org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
import
org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
class
DeepCopySymbolsRemapper
:
IrElementVisitorVoid
{
class
DeepCopySymbolsRemapper
:
IrElementVisitorVoid
,
SymbolRemapper
{
private
val
classes
=
hashMapOf
<
IrClassSymbol
,
IrClassSymbol
>()
private
val
constructors
=
hashMapOf
<
IrConstructorSymbol
,
IrConstructorSymbol
>()
private
val
enumEntries
=
hashMapOf
<
IrEnumEntrySymbol
,
IrEnumEntrySymbol
>()
...
...
@@ -104,39 +104,39 @@ class DeepCopySymbolsRemapper : IrElementVisitorVoid {
private
fun
<
T
:
IrSymbol
>
Map
<
T
,
T
>.
getReferenced
(
symbol
:
T
)
=
getOrElse
(
symbol
)
{
symbol
}
fun
getDeclaredClass
(
symbol
:
IrClassSymbol
):
IrClassSymbol
=
classes
.
getDeclared
(
symbol
)
fun
getDeclaredFunction
(
symbol
:
IrSimpleFunctionSymbol
):
IrSimpleFunctionSymbol
=
functions
.
getDeclared
(
symbol
)
fun
getDeclaredField
(
symbol
:
IrFieldSymbol
):
IrFieldSymbol
=
fields
.
getDeclared
(
symbol
)
fun
getDeclaredFile
(
symbol
:
IrFileSymbol
):
IrFileSymbol
=
files
.
getDeclared
(
symbol
)
fun
getDeclaredConstructor
(
symbol
:
IrConstructorSymbol
):
IrConstructorSymbol
=
constructors
.
getDeclared
(
symbol
)
fun
getDeclaredEnumEntry
(
symbol
:
IrEnumEntrySymbol
):
IrEnumEntrySymbol
=
enumEntries
.
getDeclared
(
symbol
)
fun
getDeclaredExternalPackageFragment
(
symbol
:
IrExternalPackageFragmentSymbol
):
IrExternalPackageFragmentSymbol
=
externalPackageFragments
.
getDeclared
(
symbol
)
fun
getDeclaredVariable
(
symbol
:
IrVariableSymbol
):
IrVariableSymbol
=
variables
.
getDeclared
(
symbol
)
fun
getDeclaredTypeParameter
(
symbol
:
IrTypeParameterSymbol
):
IrTypeParameterSymbol
=
typeParameters
.
getDeclared
(
symbol
)
fun
getDeclaredValueParameter
(
symbol
:
IrValueParameterSymbol
):
IrValueParameterSymbol
=
valueParameters
.
getDeclared
(
symbol
)
fun
getReferencedClass
(
symbol
:
IrClassSymbol
):
IrClassSymbol
=
classes
.
getReferenced
(
symbol
)
fun
getReferencedClassOrNull
(
symbol
:
IrClassSymbol
?):
IrClassSymbol
?
=
symbol
?.
let
{
classes
.
getReferenced
(
it
)
}
fun
getReferencedEnumEntry
(
symbol
:
IrEnumEntrySymbol
):
IrEnumEntrySymbol
=
enumEntries
.
getReferenced
(
symbol
)
fun
getReferencedVariable
(
symbol
:
IrVariableSymbol
):
IrVariableSymbol
=
variables
.
getReferenced
(
symbol
)
fun
getReferencedField
(
symbol
:
IrFieldSymbol
):
IrFieldSymbol
=
fields
.
getReferenced
(
symbol
)
fun
getReferencedConstructor
(
symbol
:
IrConstructorSymbol
):
IrConstructorSymbol
=
constructors
.
getReferenced
(
symbol
)
fun
getReferencedValue
(
symbol
:
IrValueSymbol
):
IrValueSymbol
=
override
fun
getDeclaredClass
(
symbol
:
IrClassSymbol
):
IrClassSymbol
=
classes
.
getDeclared
(
symbol
)
override
fun
getDeclaredFunction
(
symbol
:
IrSimpleFunctionSymbol
):
IrSimpleFunctionSymbol
=
functions
.
getDeclared
(
symbol
)
override
fun
getDeclaredField
(
symbol
:
IrFieldSymbol
):
IrFieldSymbol
=
fields
.
getDeclared
(
symbol
)
override
fun
getDeclaredFile
(
symbol
:
IrFileSymbol
):
IrFileSymbol
=
files
.
getDeclared
(
symbol
)
override
fun
getDeclaredConstructor
(
symbol
:
IrConstructorSymbol
):
IrConstructorSymbol
=
constructors
.
getDeclared
(
symbol
)
override
fun
getDeclaredEnumEntry
(
symbol
:
IrEnumEntrySymbol
):
IrEnumEntrySymbol
=
enumEntries
.
getDeclared
(
symbol
)
override
fun
getDeclaredExternalPackageFragment
(
symbol
:
IrExternalPackageFragmentSymbol
):
IrExternalPackageFragmentSymbol
=
externalPackageFragments
.
getDeclared
(
symbol
)
override
fun
getDeclaredVariable
(
symbol
:
IrVariableSymbol
):
IrVariableSymbol
=
variables
.
getDeclared
(
symbol
)
override
fun
getDeclaredTypeParameter
(
symbol
:
IrTypeParameterSymbol
):
IrTypeParameterSymbol
=
typeParameters
.
getDeclared
(
symbol
)
override
fun
getDeclaredValueParameter
(
symbol
:
IrValueParameterSymbol
):
IrValueParameterSymbol
=
valueParameters
.
getDeclared
(
symbol
)
override
fun
getReferencedClass
(
symbol
:
IrClassSymbol
):
IrClassSymbol
=
classes
.
getReferenced
(
symbol
)
override
fun
getReferencedClassOrNull
(
symbol
:
IrClassSymbol
?):
IrClassSymbol
?
=
symbol
?.
let
{
classes
.
getReferenced
(
it
)
}
override
fun
getReferencedEnumEntry
(
symbol
:
IrEnumEntrySymbol
):
IrEnumEntrySymbol
=
enumEntries
.
getReferenced
(
symbol
)
override
fun
getReferencedVariable
(
symbol
:
IrVariableSymbol
):
IrVariableSymbol
=
variables
.
getReferenced
(
symbol
)
override
fun
getReferencedField
(
symbol
:
IrFieldSymbol
):
IrFieldSymbol
=
fields
.
getReferenced
(
symbol
)
override
fun
getReferencedConstructor
(
symbol
:
IrConstructorSymbol
):
IrConstructorSymbol
=
constructors
.
getReferenced
(
symbol
)
override
fun
getReferencedValue
(
symbol
:
IrValueSymbol
):
IrValueSymbol
=
when
(
symbol
)
{
is
IrValueParameterSymbol
->
valueParameters
.
getReferenced
(
symbol
)
is
IrVariableSymbol
->
variables
.
getReferenced
(
symbol
)
else
->
throw
IllegalArgumentException
(
"Unexpected symbol $symbol ${symbol.descriptor}"
)
}
fun
getReferencedFunction
(
symbol
:
IrFunctionSymbol
):
IrFunctionSymbol
=
override
fun
getReferencedFunction
(
symbol
:
IrFunctionSymbol
):
IrFunctionSymbol
=
when
(
symbol
)
{
is
IrSimpleFunctionSymbol
->
functions
.
getReferenced
(
symbol
)
is
IrConstructorSymbol
->
constructors
.
getReferenced
(
symbol
)
else
->
throw
IllegalArgumentException
(
"Unexpected symbol $symbol ${symbol.descriptor}"
)
}
fun
getReferencedClassifier
(
symbol
:
IrClassifierSymbol
):
IrClassifierSymbol
=
override
fun
getReferencedClassifier
(
symbol
:
IrClassifierSymbol
):
IrClassifierSymbol
=
when
(
symbol
)
{
is
IrClassSymbol
->
classes
.
getReferenced
(
symbol
)
is
IrTypeParameterSymbol
->
typeParameters
.
getReferenced
(
symbol
)
...
...
compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolRemapper.kt
0 → 100644
浏览文件 @
b9dee7fc
/*
* Copyright 2010-2017 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.kotlin.ir.util
import
org.jetbrains.kotlin.ir.symbols.*
interface
SymbolRemapper
{
fun
getDeclaredClass
(
symbol
:
IrClassSymbol
):
IrClassSymbol
fun
getDeclaredFunction
(
symbol
:
IrSimpleFunctionSymbol
):
IrSimpleFunctionSymbol
fun
getDeclaredField
(
symbol
:
IrFieldSymbol
):
IrFieldSymbol
fun
getDeclaredFile
(
symbol
:
IrFileSymbol
):
IrFileSymbol
fun
getDeclaredConstructor
(
symbol
:
IrConstructorSymbol
):
IrConstructorSymbol
fun
getDeclaredEnumEntry
(
symbol
:
IrEnumEntrySymbol
):
IrEnumEntrySymbol
fun
getDeclaredExternalPackageFragment
(
symbol
:
IrExternalPackageFragmentSymbol
):
IrExternalPackageFragmentSymbol
fun
getDeclaredVariable
(
symbol
:
IrVariableSymbol
):
IrVariableSymbol
fun
getDeclaredTypeParameter
(
symbol
:
IrTypeParameterSymbol
):
IrTypeParameterSymbol
fun
getDeclaredValueParameter
(
symbol
:
IrValueParameterSymbol
):
IrValueParameterSymbol
fun
getReferencedClass
(
symbol
:
IrClassSymbol
):
IrClassSymbol
fun
getReferencedClassOrNull
(
symbol
:
IrClassSymbol
?):
IrClassSymbol
?
fun
getReferencedEnumEntry
(
symbol
:
IrEnumEntrySymbol
):
IrEnumEntrySymbol
fun
getReferencedVariable
(
symbol
:
IrVariableSymbol
):
IrVariableSymbol
fun
getReferencedField
(
symbol
:
IrFieldSymbol
):
IrFieldSymbol
fun
getReferencedConstructor
(
symbol
:
IrConstructorSymbol
):
IrConstructorSymbol
fun
getReferencedValue
(
symbol
:
IrValueSymbol
):
IrValueSymbol
fun
getReferencedFunction
(
symbol
:
IrFunctionSymbol
):
IrFunctionSymbol
fun
getReferencedClassifier
(
symbol
:
IrClassifierSymbol
):
IrClassifierSymbol
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录