diff --git a/mtags/src/main/scala-2/scala/meta/internal/pc/InferredMethodProvider.scala b/mtags/src/main/scala-2/scala/meta/internal/pc/InferredMethodProvider.scala
index dcaa2137c9b..8e5426a16b4 100644
--- a/mtags/src/main/scala-2/scala/meta/internal/pc/InferredMethodProvider.scala
+++ b/mtags/src/main/scala-2/scala/meta/internal/pc/InferredMethodProvider.scala
@@ -177,37 +177,24 @@ final class InferredMethodProvider(
   }
 
   private def inferArgType(arg: Tree): String = {
-    @tailrec
-    def findBefore(trees: List[Tree], prev: Tree): Tree = {
-      trees match {
-        case (_: Block | _: PackageDef | _: Template) :: _ =>
-          prev
-        case head :: tail =>
-          findBefore(tail, head)
-        case Nil => prev
-      }
-    }
-    val last = findBefore(lastVisitedParentTrees, lastVisitedParentTrees.head)
-    val updatedText = params
-      .text()
-      .substring(
-        0,
-        last.pos.start
-      ) + "val rand = " + arg.toString + ";" + params
-      .text()
-      .substring(last.pos.start)
+    val last = insertPosition()
+    val before = params.text().substring(0, last.pos.start)
+    val after = params.text().substring(last.start)
+    val randomValName = s"val $$metals_internal"
+    val updatedText = s"${before}${randomValName} = ${arg.toString()};$after"
     val newParams =
       new CompilerOffsetParams(
         URI.create("InferMethod" + Random.nextLong() + ".scala"),
         updatedText,
-        last.pos.start + "val ran".length,
+        last.pos.start + randomValName.length - 1,
         params.token(),
         params.outlineFiles()
       )
 
     val inferredTypeProvider = new InferredTypeProvider(compiler, newParams)
     inferredTypeProvider.inferredTypeEdits() match {
-      case (edit: TextEdit) :: _ => edit.getNewText().stripPrefix(": ")
+      case (edit: TextEdit) :: _ =>
+        edit.getNewText().stripPrefix(": ")
       case _ =>
         logger.warning(
           "infer-method: could not infer type of argument, defaulting to Any"