Skip to content

Commit a067026

Browse files
kasiaMarektgodzik
authored andcommitted
fix: insert missing members in correct place for case classes
1 parent cd0f91a commit a067026

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

mtags/src/main/scala-3/scala/meta/internal/pc/completions/OverrideCompletions.scala

+2
Original file line numberDiff line numberDiff line change
@@ -509,6 +509,8 @@ object OverrideCompletions:
509509
defn match
510510
case td: TypeDef if text.charAt(td.rhs.span.end) == ':' =>
511511
Some(td.rhs.span.end)
512+
case TypeDef(_, temp : Template) =>
513+
temp.parentsOrDerived.lastOption.map(_.span.end).filter(text.charAt(_) == ':')
512514
case _ => None
513515

514516
private def fallbackFromParent(parent: Tree, name: String)(using Context) =

tests/cross/src/test/scala/tests/pc/AutoImplementAbstractMembersSuite.scala

+29
Original file line numberDiff line numberDiff line change
@@ -1271,6 +1271,35 @@ class AutoImplementAbstractMembersSuite extends BaseCodeActionSuite {
12711271
|""".stripMargin
12721272
)
12731273

1274+
checkEdit(
1275+
"braceless-case-class".tag(IgnoreScala2),
1276+
"""|package a
1277+
|
1278+
|trait Base:
1279+
| def foo(x: Int): Int
1280+
| def bar(x: String): String
1281+
|
1282+
|case class <<Concrete>>() extends Base:
1283+
| def aaa = "aaa"
1284+
|end Concrete
1285+
|""".stripMargin,
1286+
"""|package a
1287+
|
1288+
|trait Base:
1289+
| def foo(x: Int): Int
1290+
| def bar(x: String): String
1291+
|
1292+
|case class Concrete() extends Base:
1293+
|
1294+
| override def bar(x: String): String = ???
1295+
|
1296+
| override def foo(x: Int): Int = ???
1297+
|
1298+
| def aaa = "aaa"
1299+
|end Concrete
1300+
|""".stripMargin
1301+
)
1302+
12741303
def checkEdit(
12751304
name: TestOptions,
12761305
original: String,

0 commit comments

Comments
 (0)