Skip to content

Commit 0b9acb3

Browse files
committed
Switch version where separation checking starts to 3.8
3.7 is already on us, so bump by one. Two new tests for separation checking. One i15749a required a change in SepCheck: We need to be able to declare reach capabilities in dependencies. The reach is imply dropped. But we can't sometimes use a normal capability since its capture set might be empty.
1 parent b114ada commit 0b9acb3

File tree

17 files changed

+44
-26
lines changed

17 files changed

+44
-26
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ class SepChecker(checker: CheckCaptures.CheckerAPI) extends tpd.TreeTraverser:
256256
(formal, arg) <- mt.paramInfos.zip(args)
257257
dep <- formal.captureSet.elems.toList
258258
do
259-
val referred = dep match
259+
val referred = dep.stripReach match
260260
case dep: TermParamRef =>
261261
argMap(dep.binder)(dep.paramNum) :: Nil
262262
case dep: ThisType if dep.cls == fn.symbol.owner =>

project/Build.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1223,7 +1223,7 @@ object Build {
12231223
settings(scala2LibraryBootstrappedSettings).
12241224
settings(
12251225
moduleName := "scala2-library-cc",
1226-
scalacOptions ++= Seq("-Ycheck:all", "-source", "3.7")
1226+
scalacOptions ++= Seq("-Ycheck:all", "-source", "3.8")
12271227
)
12281228

12291229
lazy val scala2LibraryBootstrappedSettings = Seq(

tests/neg-custom-args/captures/box-adapt-cases.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import language.`3.7` // sepchecks on
1+
import language.`3.8` // sepchecks on
22
trait Cap { def use(): Int }
33

44
def test1(): Unit = {

tests/neg-custom-args/captures/depfun-reach.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import language.experimental.captureChecking
22
import caps.cap
3-
import language.`3.7` // sepchecks on
3+
import language.`3.8` // sepchecks on
44
def test(io: Object^, async: Object^) =
55
def compose(op: List[(() ->{cap} Unit, () ->{cap} Unit)]): List[() ->{op*} Unit] =
66
List(() => op.foreach((f,g) => { f(); g() }))

tests/neg-custom-args/captures/existential-mapping.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import language.experimental.captureChecking
2-
import language.`3.7` // sepchecks on
2+
import language.`3.8` // sepchecks on
33
class A
44
class C
55
type Fun[X] = (x: C^) -> X

tests/neg-custom-args/captures/i19330.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import language.`3.7` // sepchecks on
1+
import language.`3.8` // sepchecks on
22
import language.experimental.captureChecking
33

44

tests/neg-custom-args/captures/i21614.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import language.experimental.captureChecking
22
import caps.Capability
33
import caps.use
4-
import language.`3.7` // sepchecks on
4+
import language.`3.8` // sepchecks on
55
trait List[+T]:
66
def map[U](f: T => U): List[U]
77

tests/neg-custom-args/captures/lazyref.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import language.`3.7` // sepchecks on
1+
import language.`3.8` // sepchecks on
22
class CC
33
type Cap = CC^
44

tests/neg-custom-args/captures/outer-var.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import language.`3.7` // sepchecks on
1+
import language.`3.8` // sepchecks on
22
class CC
33
type Cap = CC^
44

tests/neg-custom-args/captures/reaches.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import caps.use; import language.`3.7` // sepchecks on
1+
import caps.use; import language.`3.8` // sepchecks on
22
class File:
33
def write(): Unit = ???
44

0 commit comments

Comments
 (0)