Skip to content

Commit 95f148f

Browse files
committed
Allow Symbols
1 parent df1b5ed commit 95f148f

File tree

3 files changed

+5
-0
lines changed

3 files changed

+5
-0
lines changed

compiler/src/dotty/tools/dotc/core/Definitions.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,8 @@ class Definitions {
499499

500500
@tu lazy val DummyImplicitClass: ClassSymbol = requiredClass("scala.DummyImplicit")
501501

502+
@tu lazy val SymbolModule: Symbol = requiredModule("scala.Symbol")
503+
502504
@tu lazy val ScalaRuntimeModule: Symbol = requiredModule("scala.runtime.ScalaRunTime")
503505
def runtimeMethodRef(name: PreName): TermRef = ScalaRuntimeModule.requiredMethodRef(name)
504506
def ScalaRuntime_drop: Symbol = runtimeMethodRef(nme.drop).symbol

compiler/src/dotty/tools/dotc/typer/Checking.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -957,6 +957,7 @@ object Checking {
957957
case Select(qual, nme.apply) =>
958958
qual.symbol == defn.ArrayModule
959959
|| qual.symbol == defn.ClassTagModule // class tags are used as arguments to Array.apply
960+
|| qual.symbol == defn.SymbolModule // used in Akka
960961
|| isTupleModule(qual.symbol)
961962
case Select(New(clazz), nme.CONSTRUCTOR) => clazz.symbol.isAnnotation
962963
case Apply(fun, _) => isFunctionAllowed(fun)

tests/pos/annot-valid.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ def main =
1313
val x7: Int @annot((1,2,3)) = 0
1414
val x8: Int @annot(((1,2),3)) = 0
1515
val x9: Int @annot(((1,2),(3,4))) = 0
16+
val x10: Int @annot(Symbol("hello")) = 0
1617

1718
@annot(42) val y1: Int = 0
1819
@annot("hello") val y2: Int = 0
@@ -23,5 +24,6 @@ def main =
2324
@annot((1,2,3)) val y7: Int = 0
2425
@annot(((1,2),3)) val y8: Int = 0
2526
@annot(((1,2),(3,4))) val y9: Int = 0
27+
@annot(Symbol("hello")) val y10: Int = 0
2628

2729
()

0 commit comments

Comments
 (0)