Minor. Optimized enhanceSignature method

This commit is contained in:
Stanislav Erokhin
2015-12-18 07:32:28 +03:00
parent f710ba88f8
commit 30bb8d4828
@@ -31,6 +31,8 @@ fun <D : CallableMemberDescriptor> D.enhanceSignature(): D {
// TODO use new type parameters while enhancing other types // TODO use new type parameters while enhancing other types
// TODO Propagation into generic type arguments // TODO Propagation into generic type arguments
if (this !is JavaCallableMemberDescriptor) return this
val enhancedReceiverType = val enhancedReceiverType =
if (extensionReceiverParameter != null) if (extensionReceiverParameter != null)
parts(isCovariant = false) { it.extensionReceiverParameter!!.type }.enhance() parts(isCovariant = false) { it.extensionReceiverParameter!!.type }.enhance()
@@ -42,12 +44,8 @@ fun <D : CallableMemberDescriptor> D.enhanceSignature(): D {
val enhancedReturnType = parts(isCovariant = true) { it.returnType!! }.enhance() val enhancedReturnType = parts(isCovariant = true) { it.returnType!! }.enhance()
if (this is JavaCallableMemberDescriptor) { @Suppress("UNCHECKED_CAST")
@Suppress("UNCHECKED_CAST") return this.enhance(enhancedReceiverType, enhancedValueParametersTypes, enhancedReturnType) as D
return this.enhance(enhancedReceiverType, enhancedValueParametersTypes, enhancedReturnType) as D
}
return this
} }
private class SignatureParts( private class SignatureParts(