Move all InliningContext's to one place

This commit is contained in:
Mikhael Bogdanov
2017-05-12 15:09:55 +02:00
parent 9fdd4c647a
commit da13ea4a8a
3 changed files with 31 additions and 78 deletions
@@ -17,8 +17,38 @@
package org.jetbrains.kotlin.codegen.inline
import org.jetbrains.kotlin.codegen.state.GenerationState
import org.jetbrains.kotlin.psi.KtElement
import java.util.*
class RootInliningContext(
expressionMap: Map<Int, LambdaInfo>,
state: GenerationState,
nameGenerator: NameGenerator,
val callElement: KtElement,
override val callSiteInfo: InlineCallSiteInfo,
inliner: ReifiedTypeInliner,
val typeParameterMappings: TypeParameterMappings
) : InliningContext(
null, expressionMap, state, nameGenerator, TypeRemapper.createRoot(typeParameterMappings), inliner, null, false
)
class RegeneratedClassContext(
parent: InliningContext,
expressionMap: Map<Int, LambdaInfo>,
state: GenerationState,
nameGenerator: NameGenerator,
typeRemapper: TypeRemapper,
reifiedTypeInliner: ReifiedTypeInliner,
lambdaInfo: LambdaInfo?,
override val callSiteInfo: InlineCallSiteInfo
) : InliningContext(
parent, expressionMap, state, nameGenerator, typeRemapper, reifiedTypeInliner, lambdaInfo, true
)
open class InliningContext(
val parent: InliningContext?,
private val expressionMap: Map<Int, LambdaInfo>,
@@ -56,7 +86,7 @@ open class InliningContext(
): InliningContext {
return RegeneratedClassContext(
this, expressionMap, state, generator, TypeRemapper.createFrom(typeRemapper, newTypeMappings),
reifiedTypeInliner, isInliningLambda, callSiteInfo
reifiedTypeInliner, lambdaInfo, callSiteInfo
)
}
@@ -1,47 +0,0 @@
/*
* Copyright 2010-2015 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.codegen.inline;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.codegen.state.GenerationState;
import java.util.Map;
public class RegeneratedClassContext extends InliningContext {
private final InlineCallSiteInfo callSiteInfo;
public RegeneratedClassContext(
@Nullable InliningContext parent,
@NotNull Map<Integer, LambdaInfo> map,
@NotNull GenerationState state,
@NotNull NameGenerator nameGenerator,
@NotNull TypeRemapper typeRemapper,
@NotNull ReifiedTypeInliner reifiedTypeInliner,
boolean isInliningLambda,
@NotNull InlineCallSiteInfo callSiteInfo
) {
super(parent, map, state, nameGenerator, typeRemapper, reifiedTypeInliner, isInliningLambda, true);
this.callSiteInfo = callSiteInfo;
}
@NotNull
@Override
public InlineCallSiteInfo getCallSiteInfo() {
return callSiteInfo;
}
}
@@ -1,30 +0,0 @@
/*
* Copyright 2010-2015 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.codegen.inline
import org.jetbrains.kotlin.codegen.state.GenerationState
import org.jetbrains.kotlin.psi.KtElement
class RootInliningContext(
expressionMap: Map<Int, LambdaInfo>,
state: GenerationState,
nameGenerator: NameGenerator,
val callElement: KtElement,
override val callSiteInfo: InlineCallSiteInfo,
inliner: ReifiedTypeInliner,
val typeParameterMappings: TypeParameterMappings
) : InliningContext(null, expressionMap, state, nameGenerator, TypeRemapper.createRoot(typeParameterMappings), inliner, false, false)