File tree 3 files changed +16
-7
lines changed
compiler/src/dotty/tools/dotc
library/src/scala/annotation/internal
3 files changed +16
-7
lines changed Original file line number Diff line number Diff line change @@ -972,6 +972,7 @@ class Definitions {
972
972
@ tu lazy val BooleanBeanPropertyAnnot : ClassSymbol = requiredClass(" scala.beans.BooleanBeanProperty" )
973
973
@ tu lazy val BodyAnnot : ClassSymbol = requiredClass(" scala.annotation.internal.Body" )
974
974
@ tu lazy val CapabilityAnnot : ClassSymbol = requiredClass(" scala.annotation.capability" )
975
+ @ tu lazy val CaptureCheckedAnnot : ClassSymbol = requiredClass(" scala.annotation.internal.CaptureChecked" )
975
976
@ tu lazy val ChildAnnot : ClassSymbol = requiredClass(" scala.annotation.internal.Child" )
976
977
@ tu lazy val ContextResultCountAnnot : ClassSymbol = requiredClass(" scala.annotation.internal.ContextResultCount" )
977
978
@ tu lazy val ProvisionalSuperClassAnnot : ClassSymbol = requiredClass(" scala.annotation.internal.ProvisionalSuperClass" )
Original file line number Diff line number Diff line change @@ -388,13 +388,13 @@ class PostTyper extends MacroTransform with IdentityDenotTransformer { thisPhase
388
388
for parent <- impl.parents do
389
389
Checking .checkTraitInheritance(parent.tpe.classSymbol, sym.asClass, parent.srcPos)
390
390
// Add SourceFile annotation to top-level classes
391
- if sym.owner.is(Package )
392
- && ctx.compilationUnit.source.exists
393
- && sym != defn. SourceFileAnnot
394
- then
395
- val reference = ctx.settings.sourceroot.value
396
- val relativePath = util. SourceFile .relativePath(ctx.compilationUnit.source, reference)
397
- sym.addAnnotation(Annotation .makeSourceFile(relativePath ))
391
+ if sym.owner.is(Package ) then
392
+ if ctx.compilationUnit.source.exists && sym != defn. SourceFileAnnot then
393
+ val reference = ctx.settings.sourceroot.value
394
+ val relativePath = util. SourceFile .relativePath(ctx.compilationUnit.source, reference)
395
+ sym.addAnnotation( Annotation .makeSourceFile(relativePath))
396
+ if ctx.settings. Ycc .value && sym != defn. CaptureCheckedAnnot then
397
+ sym.addAnnotation(Annotation (defn. CaptureCheckedAnnot ))
398
398
else (tree.rhs, sym.info) match
399
399
case (rhs : LambdaTypeTree , bounds : TypeBounds ) =>
400
400
VarianceChecker .checkLambda(rhs, bounds)
Original file line number Diff line number Diff line change
1
+ package scala .annotation
2
+ package internal
3
+
4
+ /** A marker annotation on a toplevel class that indicates
5
+ * that the class was checked under -Ycc
6
+ */
7
+ class CaptureChecked extends StaticAnnotation
8
+
You can’t perform that action at this time.
0 commit comments