File tree Expand file tree Collapse file tree 4 files changed +54
-0
lines changed Expand file tree Collapse file tree 4 files changed +54
-0
lines changed Original file line number Diff line number Diff line change 1+ package examples .select
2+
3+ import scala .language .dynamics
4+ import scala .quoted .*
5+
6+ case class Wrapper [A ](inner : A ) extends Dynamic :
7+ transparent inline def selectDynamic (inline name : String ) =
8+ $ {selectDynamicImpl(' inner , ' name )}
9+
10+ def selectDynamicImpl [A : Type ](inner : Expr [A ], name : Expr [String ])(using quotes : Quotes ): Expr [Any ] =
11+ import quotes .reflect .*
12+ Select .unique(inner.asTerm, name.valueOrAbort).asExpr
Original file line number Diff line number Diff line change 1+ package examples .select
2+
3+
4+ import scala .language .dynamics
5+ import examples .select .Wrapper
6+
7+ object Dynamic0 :
8+
9+ @ main
10+ def runTimeError =
11+
12+ val w = Wrapper (Option (1 ))
13+ println(w.isEmpty)
14+
15+ end Dynamic0
Original file line number Diff line number Diff line change 1+ package examples .select
2+
3+ import scala .language .dynamics
4+ import scala .quoted .*
5+
6+ case class Wrapper [A ](inner : A ) extends Dynamic :
7+ transparent inline def selectDynamic (inline name : String ) =
8+ $ {selectDynamicImpl(' inner , ' name )}
9+
10+ def selectDynamicImpl [A : Type ](inner : Expr [A ], name : Expr [String ])(using quotes : Quotes ): Expr [Any ] =
11+ import quotes .reflect .*
12+ Select .unique(inner.asTerm, name.valueOrAbort).asExpr
Original file line number Diff line number Diff line change 1+ package examples .select
2+
3+
4+ import scala .language .dynamics
5+ import examples .select .Wrapper
6+
7+ object Dynamic0 :
8+
9+ @ main
10+ def runTimeError =
11+
12+ val w = Wrapper (Option (1 ))
13+ println(w.isEmpty)
14+
15+ end Dynamic0
You can’t perform that action at this time.
0 commit comments