src/Pure/General/position.scala
changeset 74714 135787601438
parent 74692 80ae353b798e
child 75393 87ebf5a50283
--- a/src/Pure/General/position.scala	Sat Nov 06 10:39:47 2021 +0100
+++ b/src/Pure/General/position.scala	Sat Nov 06 11:25:03 2021 +0100
@@ -63,6 +63,17 @@
       }
   }
 
+  object Def_Range
+  {
+    def apply(range: Symbol.Range): T = Def_Offset(range.start) ::: Def_End_Offset(range.stop)
+    def unapply(pos: T): Option[Symbol.Range] =
+      (pos, pos) match {
+        case (Def_Offset(start), Def_End_Offset(stop)) if start <= stop => Some(Text.Range(start, stop))
+        case (Def_Offset(start), _) => Some(Text.Range(start, start + 1))
+        case _ => None
+      }
+  }
+
   object Item_Id
   {
     def unapply(pos: T): Option[(Long, Symbol.Range)] =