Skip to content

Commit e97fea5

Browse files
committed
refactor: add in a Rewrites.applyAction helper
This also has a small change where instead of applying all the actions if we are doing a rewrite, we only actually take the first one
1 parent 1cd8007 commit e97fea5

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

compiler/src/dotty/tools/dotc/rewrites/Rewrites.scala

+9
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import dotty.tools.dotc.util.SourcePosition;
1111

1212
import java.io.OutputStreamWriter
1313
import java.nio.charset.StandardCharsets.UTF_8
14+
import dotty.tools.dotc.reporting.CodeAction
1415

1516
/** Handles rewriting of Scala2 files to Dotty */
1617
object Rewrites {
@@ -99,6 +100,14 @@ object Rewrites {
99100
report.echo(s"[patched file ${source.file.path}]")
100101
rewrites.patched(source).writeBack()
101102
}
103+
104+
/** Given a CodeAction take the patches and apply them.
105+
*
106+
* @param action The CodeAction containing the patches
107+
*/
108+
def applyAction(action: CodeAction)(using Context): Unit =
109+
action.patches.foreach: actionPatch =>
110+
patch(actionPatch.srcPos.span, actionPatch.replacement)
102111
}
103112

104113
/** A completely encapsulated class representing rewrite state, used

compiler/src/dotty/tools/dotc/typer/Typer.scala

+5-4
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ import cc.CheckCaptures
5454
import config.Config
5555

5656
import scala.annotation.constructorOnly
57+
import dotty.tools.dotc.rewrites.Rewrites
5758

5859
object Typer {
5960

@@ -2946,8 +2947,8 @@ class Typer(@constructorOnly nestingLevel: Int = 0) extends Namer
29462947
if (migrateTo3) {
29472948
// Under -rewrite, patch `x _` to `(() => x)`
29482949
msg.actions
2949-
.flatMap(_.patches)
2950-
.map(actionPatch => patch(actionPatch.srcPos.span, actionPatch.replacement))
2950+
.headOption
2951+
.foreach(Rewrites.applyAction)
29512952
return typed(untpd.Function(Nil, qual), pt)
29522953
}
29532954
}
@@ -3958,8 +3959,8 @@ class Typer(@constructorOnly nestingLevel: Int = 0) extends Namer
39583959
|| Feature.warnOnMigration(msg, tree.srcPos, version = `3.0`)
39593960
&& {
39603961
msg.actions
3961-
.flatMap(_.patches)
3962-
.map(actionPatch => patch(actionPatch.srcPos.span, actionPatch.replacement))
3962+
.headOption
3963+
.foreach(Rewrites.applyAction)
39633964
true
39643965
}
39653966

0 commit comments

Comments
 (0)