@@ -147,29 +147,6 @@ object SepCheck:
147147
148148 case class DefInfo (tree : ValOrDefDef , symbol : Symbol , hidden : Refs , hiddenPeaks : Refs )
149149
150- class SepCheck (checker : CheckCaptures .CheckerAPI ) extends tpd.TreeTraverser :
151- import checker .*
152- import SepCheck .*
153-
154- /** The set of capabilities that are hidden by a polymorphic result type
155- * of some previous definition.
156- */
157- private var defsShadow : Refs = emptyRefs
158-
159- /** The previous val or def definitions encountered during separation checking
160- * in reverse order. These all enclose and precede the current traversal node.
161- */
162- private var previousDefs : List [DefInfo ] = Nil
163-
164- /** The set of references that were consumed so far in the current method */
165- private var consumed : MutConsumedSet = MutConsumedSet ()
166-
167- /** Infos aboput Labeled expressions enclosing the current traversal point.
168- * For each labeled expression, it's label name, and a list buffer containing
169- * all consumed sets of return expressions referring to that label.
170- */
171- private var openLabeled : List [(Name , mutable.ListBuffer [ConsumedSet ])] = Nil
172-
173150 extension (refs : Refs )
174151
175152 /** The footprint of a set of references `refs` the smallest set `F` such that
@@ -280,24 +257,37 @@ class SepCheck(checker: CheckCaptures.CheckerAPI) extends tpd.TreeTraverser:
280257 refs.filter: ref =>
281258 ! others.exists(_.covers(ref))
282259
283- /** Deduct the footprint of `sym` and `sym*` from `refs` */
284- private def deductSymFootprint (sym : Symbol )(using Context ): Refs =
285- val ref = sym.termRef
286- if ref.isTrackableRef then refs.deduct(CaptureSet (ref, ref.reach).elems.footprint())
287- else refs
288-
289260 /** Deduct `sym` and `sym*` from `refs` */
290261 private def deductSymRefs (sym : Symbol )(using Context ): Refs =
291262 val ref = sym.termRef
292263 if ref.isTrackableRef then refs.deduct(SimpleIdentitySet (ref, ref.reach))
293264 else refs
294265
295- /** Deduct the footprint of all captures of trees in `deps` from `refs` */
296- private def deductCapturesOf (deps : List [Tree ])(using Context ): Refs =
297- deps.foldLeft(refs): (refs, dep) =>
298- refs.deduct(captures(dep).footprint())
299266 end extension
300267
268+ class SepCheck (checker : CheckCaptures .CheckerAPI ) extends tpd.TreeTraverser :
269+ import checker .*
270+ import SepCheck .*
271+
272+ /** The set of capabilities that are hidden by a polymorphic result type
273+ * of some previous definition.
274+ */
275+ private var defsShadow : Refs = emptyRefs
276+
277+ /** The previous val or def definitions encountered during separation checking
278+ * in reverse order. These all enclose and precede the current traversal node.
279+ */
280+ private var previousDefs : List [DefInfo ] = Nil
281+
282+ /** The set of references that were consumed so far in the current method */
283+ private var consumed : MutConsumedSet = MutConsumedSet ()
284+
285+ /** Infos aboput Labeled expressions enclosing the current traversal point.
286+ * For each labeled expression, it's label name, and a list buffer containing
287+ * all consumed sets of return expressions referring to that label.
288+ */
289+ private var openLabeled : List [(Name , mutable.ListBuffer [ConsumedSet ])] = Nil
290+
301291 /** The deep capture set of an argument or prefix widened to the formal parameter, if
302292 * the latter contains a cap.
303293 */
0 commit comments