Skip to content

Commit f547582

Browse files
committed
Refactor
Move extension methods to SepChecks object, drop unused ones.
1 parent d2e276c commit f547582

File tree

1 file changed

+23
-33
lines changed

1 file changed

+23
-33
lines changed

compiler/src/dotty/tools/dotc/cc/SepCheck.scala

Lines changed: 23 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)