@@ -1146,15 +1146,6 @@ open class KotlinUsesExtractor(
11461146 return res
11471147 }
11481148
1149- fun <T : DbCallable > useFunctionCommon (f : IrFunction , label : String ): Label <out T > {
1150- val id: Label <T > = tw.getLabelFor(label)
1151- if (isExternalDeclaration(f)) {
1152- extractFunctionLaterIfExternalFileMember(f)
1153- extractExternalEnclosingClassLater(f)
1154- }
1155- return id
1156- }
1157-
11581149 // These are classes with Java equivalents, but whose methods don't all exist on those Java equivalents--
11591150 // for example, the numeric classes define arithmetic functions (Int.plus, Long.or and so on) that lower to
11601151 // primitive arithmetic on the JVM, but which we extract as calls to reflect the source syntax more closely.
@@ -1214,15 +1205,20 @@ open class KotlinUsesExtractor(
12141205 val ids = getLocallyVisibleFunctionLabels(f)
12151206 return ids.function.cast<T >()
12161207 } else {
1217- val realFunction = kotlinFunctionToJavaEquivalent(f, noReplace)
1218- return useFunctionCommon<T >(realFunction, getFunctionLabel(realFunction, classTypeArgsIncludingOuterClasses))
1208+ return useFunction(f, null , classTypeArgsIncludingOuterClasses, noReplace)
12191209 }
12201210 }
12211211
1222- fun <T : DbCallable > useFunction (f : IrFunction , parentId : Label <out DbElement >, classTypeArgsIncludingOuterClasses : List <IrTypeArgument >? , noReplace : Boolean = false) =
1223- kotlinFunctionToJavaEquivalent(f, noReplace).let {
1224- useFunctionCommon<T >(it, getFunctionLabel(it, parentId, classTypeArgsIncludingOuterClasses))
1212+ fun <T : DbCallable > useFunction (f : IrFunction , parentId : Label <out DbElement >? , classTypeArgsIncludingOuterClasses : List <IrTypeArgument >? , noReplace : Boolean = false): Label <out T > {
1213+ val javaFun = kotlinFunctionToJavaEquivalent(f, noReplace)
1214+ val label = getFunctionLabel(javaFun, parentId, classTypeArgsIncludingOuterClasses)
1215+ val id: Label <T > = tw.getLabelFor(label)
1216+ if (isExternalDeclaration(javaFun)) {
1217+ extractFunctionLaterIfExternalFileMember(javaFun)
1218+ extractExternalEnclosingClassLater(javaFun)
12251219 }
1220+ return id
1221+ }
12261222
12271223 fun getTypeArgumentLabel (
12281224 arg : IrTypeArgument
0 commit comments