Skip to content

Commit 5489ead

Browse files
kasiaMarekWojciechMazur
authored andcommitted
improvement: sort abstract members for auto implement
[Cherry-picked d31aab8]
1 parent b7909e4 commit 5489ead

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

presentation-compiler/src/main/dotty/tools/pc/completions/OverrideCompletions.scala

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,14 @@ object OverrideCompletions:
279279
else ""
280280
(indent, indent, lastIndent)
281281
end calcIndent
282-
val abstractMembers = defn.typeOpt.abstractTermMembers.map(_.symbol)
282+
val abstractMembers =
283+
defn.tpe.abstractTermMembers.map(_.symbol).groupBy(_.owner).map {
284+
case (owner, members) => (owner, members.sortWith{ (sym1, sym2) =>
285+
if(sym1.sourcePos.exists && sym2.sourcePos.exists)
286+
sym1.sourcePos.start <= sym2.sourcePos.start
287+
else !sym2.sourcePos.exists
288+
})
289+
}.toSeq.sortBy(_._1.name.decoded).flatMap(_._2)
283290

284291
val caseClassOwners = Set("Product", "Equals")
285292
val overridables =

presentation-compiler/test/dotty/tools/pc/tests/edit/AutoImplementAbstractMembersSuite.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -345,10 +345,10 @@ class AutoImplementAbstractMembersSuite extends BaseCodeActionSuite:
345345
|object Main {
346346
| class Baz extends Bar {
347347
|
348-
| override def foo: Int = ???
349-
|
350348
| override def bar: Int = ???
351349
|
350+
| override def foo: Int = ???
351+
|
352352
| }
353353
|}
354354
|""".stripMargin
@@ -1288,10 +1288,10 @@ class AutoImplementAbstractMembersSuite extends BaseCodeActionSuite:
12881288
|
12891289
|case class Concrete() extends Base:
12901290
|
1291-
| override def bar(x: String): String = ???
1292-
|
12931291
| override def foo(x: Int): Int = ???
12941292
|
1293+
| override def bar(x: String): String = ???
1294+
|
12951295
| def aaa = "aaa"
12961296
|end Concrete
12971297
|""".stripMargin

0 commit comments

Comments
 (0)