AA FE1.0: Fix StackOverflowError during resolution to a function w/ recursive type parameter
^KT-55825 Fixed
This commit is contained in:
committed by
Yan Zhulanow
parent
0c516f8483
commit
2dca2b4827
+49
@@ -0,0 +1,49 @@
|
||||
KtSuccessCallInfo:
|
||||
call = KtSimpleFunctionCall:
|
||||
isImplicitInvoke = false
|
||||
partiallyAppliedSymbol = KtPartiallyAppliedSymbol:
|
||||
dispatchReceiver = KtImplicitReceiverValue:
|
||||
symbol = KtNamedClassOrObjectSymbol:
|
||||
annotationsList: []
|
||||
classIdIfNonLocal: RunnerModule
|
||||
classKind: CLASS
|
||||
companionObject: null
|
||||
contextReceivers: []
|
||||
isData: false
|
||||
isExternal: false
|
||||
isFun: false
|
||||
isInline: false
|
||||
isInner: false
|
||||
modality: FINAL
|
||||
name: RunnerModule
|
||||
origin: SOURCE
|
||||
superTypes: [
|
||||
AbstractModule
|
||||
]
|
||||
symbolKind: TOP_LEVEL
|
||||
typeParameters: []
|
||||
visibility: Public
|
||||
type = RunnerModule
|
||||
extensionReceiver = null
|
||||
signature = KtFunctionLikeSignature:
|
||||
receiverType = null
|
||||
returnType = kotlin.Unit
|
||||
symbol = /AbstractModule.install(<dispatch receiver>: AbstractModule, builder: AbstractModule.Builder<*>!): kotlin.Unit
|
||||
valueParameters = [
|
||||
KtVariableLikeSignature:
|
||||
name = builder
|
||||
receiverType = null
|
||||
returnType = AbstractModule.Builder<*>!
|
||||
symbol = builder: AbstractModule.Builder<*>!
|
||||
callableIdIfNonLocal = null
|
||||
]
|
||||
callableIdIfNonLocal = /AbstractModule.install
|
||||
typeArgumentsMapping = {}
|
||||
argumentMapping = {
|
||||
CoroutineModule.builder() -> (KtVariableLikeSignature:
|
||||
name = builder
|
||||
receiverType = null
|
||||
returnType = AbstractModule.Builder<*>!
|
||||
symbol = builder: AbstractModule.Builder<*>!
|
||||
callableIdIfNonLocal = null)
|
||||
}
|
||||
Vendored
+39
@@ -0,0 +1,39 @@
|
||||
// FILE: RunnerModule.kt
|
||||
|
||||
class RunnerModule : AbstractModule() {
|
||||
fun configure() {
|
||||
<expr>install(CoroutineModule.builder())</expr>
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: Module.java
|
||||
|
||||
public interface Module {
|
||||
public interface Builder {
|
||||
Module build();
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: AbstractModule.java
|
||||
|
||||
public abstract class AbstractModule {
|
||||
public abstract static class Builder<B extends Builder<B>> implements Module.Builder {
|
||||
protected abstract B self();
|
||||
public abstract Module build();
|
||||
}
|
||||
|
||||
protected void install(Builder<?> builder) {}
|
||||
}
|
||||
|
||||
// FILE: CoroutineModule.kt
|
||||
|
||||
class CoroutineModule : AbstractModule() {
|
||||
class Builder : AbstractModule.Builder<Builder>() {
|
||||
protected override fun self(): Builder = this
|
||||
override fun build(): Module = CoroutineModule()
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun builder(): Builder = Builder()
|
||||
}
|
||||
}
|
||||
Vendored
+49
@@ -0,0 +1,49 @@
|
||||
KtSuccessCallInfo:
|
||||
call = KtSimpleFunctionCall:
|
||||
isImplicitInvoke = false
|
||||
partiallyAppliedSymbol = KtPartiallyAppliedSymbol:
|
||||
dispatchReceiver = KtImplicitReceiverValue:
|
||||
symbol = KtNamedClassOrObjectSymbol:
|
||||
annotationsList: []
|
||||
classIdIfNonLocal: RunnerModule
|
||||
classKind: CLASS
|
||||
companionObject: null
|
||||
contextReceivers: []
|
||||
isData: false
|
||||
isExternal: false
|
||||
isFun: false
|
||||
isInline: false
|
||||
isInner: false
|
||||
modality: FINAL
|
||||
name: RunnerModule
|
||||
origin: SOURCE
|
||||
superTypes: [
|
||||
AbstractModule
|
||||
]
|
||||
symbolKind: TOP_LEVEL
|
||||
typeParameters: []
|
||||
visibility: Public
|
||||
type = RunnerModule
|
||||
extensionReceiver = null
|
||||
signature = KtFunctionLikeSignature:
|
||||
receiverType = null
|
||||
returnType = kotlin.Unit
|
||||
symbol = /AbstractModule.install(<dispatch receiver>: AbstractModule, builder: ft<AbstractModule.Builder<*>, AbstractModule.Builder<*>?>): kotlin.Unit
|
||||
valueParameters = [
|
||||
KtVariableLikeSignature:
|
||||
name = builder
|
||||
receiverType = null
|
||||
returnType = ft<AbstractModule.Builder<*>, AbstractModule.Builder<*>?>
|
||||
symbol = builder: ft<AbstractModule.Builder<*>, AbstractModule.Builder<*>?>
|
||||
callableIdIfNonLocal = null
|
||||
]
|
||||
callableIdIfNonLocal = /AbstractModule.install
|
||||
typeArgumentsMapping = {}
|
||||
argumentMapping = {
|
||||
CoroutineModule.builder() -> (KtVariableLikeSignature:
|
||||
name = builder
|
||||
receiverType = null
|
||||
returnType = ft<AbstractModule.Builder<*>, AbstractModule.Builder<*>?>
|
||||
symbol = builder: ft<AbstractModule.Builder<*>, AbstractModule.Builder<*>?>
|
||||
callableIdIfNonLocal = null)
|
||||
}
|
||||
Reference in New Issue
Block a user