Skip to content

Commit d847d03

Browse files
committed
Add capture checking to annotations
1 parent ffb59c6 commit d847d03

40 files changed

+118
-40
lines changed

TODO.md

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -8,47 +8,47 @@
88
- [x] library/src/scala/Pure.scala
99
- [x] library/src/scala/Selectable.scala
1010
- [x] library/src/scala/Tuple.scala
11-
- [ ] library/src/scala/annotation/MacroAnnotation.scala
12-
- [ ] library/src/scala/annotation/RefiningAnnotation.scala
13-
- [ ] library/src/scala/annotation/alpha.scala
14-
- [ ] library/src/scala/annotation/capability.scala
15-
- [ ] library/src/scala/annotation/constructorOnly.scala
16-
- [ ] library/src/scala/annotation/experimental.scala
17-
- [ ] library/src/scala/annotation/init.scala
18-
- [ ] library/src/scala/annotation/internal/$into.scala
19-
- [ ] library/src/scala/annotation/internal/Alias.scala
20-
- [ ] library/src/scala/annotation/internal/AnnotationDefault.scala
21-
- [ ] library/src/scala/annotation/internal/AssignedNonLocally.scala
22-
- [ ] library/src/scala/annotation/internal/Body.scala
23-
- [ ] library/src/scala/annotation/internal/CaptureChecked.scala
24-
- [ ] library/src/scala/annotation/internal/Child.scala
25-
- [ ] library/src/scala/annotation/internal/ContextResultCount.scala
26-
- [ ] library/src/scala/annotation/internal/ErasedParam.scala
27-
- [ ] library/src/scala/annotation/internal/InlineParam.scala
28-
- [ ] library/src/scala/annotation/internal/MappedAlternative.scala
29-
- [ ] library/src/scala/annotation/internal/ProvisionalSuperClass.scala
30-
- [ ] library/src/scala/annotation/internal/Repeated.scala
31-
- [ ] library/src/scala/annotation/internal/RuntimeChecked.scala
32-
- [ ] library/src/scala/annotation/internal/SourceFile.scala
33-
- [ ] library/src/scala/annotation/internal/WithPureFuns.scala
34-
- [ ] library/src/scala/annotation/internal/WitnessNames.scala
35-
- [ ] library/src/scala/annotation/internal/preview.scala
36-
- [ ] library/src/scala/annotation/internal/reachCapability.scala
37-
- [ ] library/src/scala/annotation/internal/readOnlyCapability.scala
38-
- [ ] library/src/scala/annotation/internal/requiresCapability.scala
39-
- [ ] library/src/scala/annotation/internal/sharable.scala
40-
- [ ] library/src/scala/annotation/internal/unshared.scala
41-
- [ ] library/src/scala/annotation/into.scala
42-
- [ ] library/src/scala/annotation/publicInBinary.scala
43-
- [ ] library/src/scala/annotation/retains.scala
44-
- [ ] library/src/scala/annotation/retainsByName.scala
45-
- [ ] library/src/scala/annotation/static.scala
46-
- [ ] library/src/scala/annotation/targetName.scala
47-
- [ ] library/src/scala/annotation/threadUnsafe.scala
48-
- [ ] library/src/scala/annotation/transparentTrait.scala
11+
- [x] library/src/scala/annotation/MacroAnnotation.scala
12+
- [x] library/src/scala/annotation/RefiningAnnotation.scala
13+
- [x] library/src/scala/annotation/alpha.scala
14+
- [x] library/src/scala/annotation/capability.scala
15+
- [x] library/src/scala/annotation/constructorOnly.scala
16+
- [x] library/src/scala/annotation/experimental.scala
17+
- [x] library/src/scala/annotation/init.scala
18+
- [x] library/src/scala/annotation/internal/$into.scala
19+
- [x] library/src/scala/annotation/internal/Alias.scala
20+
- [x] library/src/scala/annotation/internal/AnnotationDefault.scala
21+
- [x] library/src/scala/annotation/internal/AssignedNonLocally.scala
22+
- [x] library/src/scala/annotation/internal/Body.scala
23+
- [x] library/src/scala/annotation/internal/CaptureChecked.scala
24+
- [x] library/src/scala/annotation/internal/Child.scala
25+
- [x] library/src/scala/annotation/internal/ContextResultCount.scala
26+
- [x] library/src/scala/annotation/internal/ErasedParam.scala
27+
- [x] library/src/scala/annotation/internal/InlineParam.scala
28+
- [x] library/src/scala/annotation/internal/MappedAlternative.scala
29+
- [x] library/src/scala/annotation/internal/ProvisionalSuperClass.scala
30+
- [x] library/src/scala/annotation/internal/Repeated.scala
31+
- [x] library/src/scala/annotation/internal/RuntimeChecked.scala
32+
- [x] library/src/scala/annotation/internal/SourceFile.scala
33+
- [x] library/src/scala/annotation/internal/WithPureFuns.scala
34+
- [x] library/src/scala/annotation/internal/WitnessNames.scala
35+
- [x] library/src/scala/annotation/internal/preview.scala
36+
- [x] library/src/scala/annotation/internal/reachCapability.scala
37+
- [x] library/src/scala/annotation/internal/readOnlyCapability.scala
38+
- [x] library/src/scala/annotation/internal/requiresCapability.scala
39+
- [x] library/src/scala/annotation/internal/sharable.scala
40+
- [x] library/src/scala/annotation/internal/unshared.scala
41+
- [x] library/src/scala/annotation/into.scala
42+
- [x] library/src/scala/annotation/publicInBinary.scala
43+
- [x] library/src/scala/annotation/retains.scala
44+
- [x] library/src/scala/annotation/retainsByName.scala
45+
- [x] library/src/scala/annotation/static.scala
46+
- [x] library/src/scala/annotation/targetName.scala
47+
- [x] library/src/scala/annotation/threadUnsafe.scala
48+
- [x] library/src/scala/annotation/transparentTrait.scala
4949
- [ ] library/src/scala/annotation/unchecked/uncheckedCapabilityLeaks.scala
50-
- [ ] library/src/scala/annotation/unchecked/uncheckedCaptures.scala
51-
- [ ] library/src/scala/annotation/unroll.scala
50+
- [x] library/src/scala/annotation/unchecked/uncheckedCaptures.scala
51+
- [x] library/src/scala/annotation/unroll.scala
5252
- [x] library/src/scala/caps/package.scala
5353
- [x] library/src/scala/compiletime/ops/any.scala
5454
- [x] library/src/scala/compiletime/ops/boolean.scala

library/src/scala/annotation/MacroAnnotation.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
package scala
33
package annotation
44

5+
import language.experimental.captureChecking
6+
57
import scala.quoted.*
68

79
/** Base trait for macro annotation implementation.

library/src/scala/annotation/RefiningAnnotation.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package scala.annotation
22

3+
import language.experimental.captureChecking
4+
35
/** A base trait for annotations that yield proper subtypes of the types they annotate.
46
* Refining annotations are more "sticky" than normal ones. They are conceptually kept
57
* around when normal refinements would also not be stripped away.

library/src/scala/annotation/alpha.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package scala.annotation
22

3+
import language.experimental.captureChecking
4+
35
/** An annotation that defines an external name for a definition.
46
* If an `alpha(extname)` annotation is given for a method or some other
57
* definition, its implementation will use the name `extname` instead of

library/src/scala/annotation/capability.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package scala.annotation
22
import annotation.experimental
33

4+
import language.experimental.captureChecking
5+
46
/** Marks an annotated class as a capability.
57
* If the annotation is present and -Ycc is set, any (possibly aliased
68
* or refined) instance of the class type is implicitly augmented with

library/src/scala/annotation/constructorOnly.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
package scala.annotation
1010

11+
import language.experimental.captureChecking
12+
1113
import scala.annotation.meta.*
1214

1315
/** An annotation that goes on parameters of classes or traits. It asserts

library/src/scala/annotation/experimental.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package scala.annotation
22

3+
import language.experimental.captureChecking
4+
35
/** An annotation that can be used to mark a definition as experimental.
46
*
57
* @see [[https://dotty.epfl.ch/docs/reference/other-new-features/experimental-defs]]

library/src/scala/annotation/init.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package scala.annotation
22

3+
import language.experimental.captureChecking
4+
35
/** Annotations to control the behavior of the compiler check for safe initialization of static obects.
46
*
57
* Programmers usually do not need to use any annotations. They are intended for complex initialization

library/src/scala/annotation/internal/$into.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
package scala.annotation.internal
2+
3+
import language.experimental.captureChecking
4+
25
import annotation.experimental
36

47
/** An internal annotation on (part of) a parameter type that serves as a marker where

library/src/scala/annotation/internal/Alias.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package scala.annotation.internal
22

3+
import language.experimental.captureChecking
4+
35
import scala.annotation.Annotation
46

57
/** An annotation to record a Scala2 pickled alias.

0 commit comments

Comments
 (0)