@@ -1083,10 +1083,15 @@ object CaptureSet:
1083
1083
*/
1084
1084
case class ExistentialSubsumesFailure (val ex : root.Result , val other : CaptureRef ) extends ErrorNote
1085
1085
1086
- enum CompareResult extends Showable :
1087
- case OK
1088
- case Fail (trace : List [CaptureSet ])
1089
- case LevelError (cs : CaptureSet , elem : CaptureRef ) extends CompareResult , ErrorNote
1086
+ trait AcceptsNotes extends CompareResult :
1087
+ protected var myErrorNotes : List [ErrorNote ] = Nil
1088
+ override def errorNotes : List [ErrorNote ] = myErrorNotes
1089
+ override def withNotes (notes : List [ErrorNote ]): CompareResult =
1090
+ myErrorNotes = notes
1091
+ this
1092
+
1093
+ class CompareResult extends Showable :
1094
+ import CompareResult .*
1090
1095
1091
1096
override def toText (printer : Printer ): Text =
1092
1097
inContext(printer.printerContext):
@@ -1111,16 +1116,6 @@ object CaptureSet:
1111
1116
case result : LevelError => Some (result)
1112
1117
case _ => None
1113
1118
1114
- private var myErrorNotes : List [ErrorNote ] = Nil
1115
-
1116
- def errorNotes : List [ErrorNote ] = myErrorNotes
1117
-
1118
- def withNotes (notes : List [ErrorNote ]): CompareResult = this match
1119
- case OK => OK
1120
- case _ =>
1121
- myErrorNotes = notes
1122
- this
1123
-
1124
1119
inline def andAlso (op : Context ?=> CompareResult )(using Context ): CompareResult =
1125
1120
if isOK then op else this
1126
1121
@@ -1134,6 +1129,15 @@ object CaptureSet:
1134
1129
inline def addToTrace (cs : CaptureSet ): CompareResult = this match
1135
1130
case Fail (trace) => Fail (cs :: trace)
1136
1131
case _ => this
1132
+
1133
+ def errorNotes : List [ErrorNote ] = Nil
1134
+ def withNotes (notes : List [ErrorNote ]): CompareResult = this
1135
+
1136
+ object CompareResult :
1137
+ val OK : CompareResult = new CompareResult :
1138
+ override def toString = " OK"
1139
+ case class Fail (trace : List [CaptureSet ]) extends CompareResult , AcceptsNotes
1140
+ case class LevelError (cs : CaptureSet , elem : CaptureRef ) extends CompareResult , AcceptsNotes , ErrorNote
1137
1141
end CompareResult
1138
1142
1139
1143
/** A VarState serves as a snapshot mechanism that can undo
0 commit comments