残念ながらscala.util.parsing.input.Position伸びませんOrdering[Position]。
ListBuffer位置に基づいてエラーを並べ替えるには、次のコードを使用します。
semanticErrors.sortBy(_.pos)(new Ordering[Position] {
def compare(x: Position, y: Position): Int = x.line - y.line
}).toList
これはもっとエレガントにできると確信しています。しかし、どのように?たとえば、私はそのPosition実装に気付きました<。<サポートするものをに変換する一般的なラッパーはありOrderingますか?
興味深いことに、List最初に変換すると、これははるかに簡単になるようです。
semanticErrors.toList.sort((a, b) => a.pos < b.pos)
しかし、これはおそらく最も効率的なソリューションではありません。のインプレース ソートListBufferが理想的です。