File tree Expand file tree Collapse file tree 2 files changed +7
-6
lines changed
compiler/src/dotty/tools/dotc Expand file tree Collapse file tree 2 files changed +7
-6
lines changed Original file line number Diff line number Diff line change @@ -32,12 +32,13 @@ object PickledQuotes {
32
32
}
33
33
34
34
/** Transform the expression into its fully spliced Tree */
35
- def quotedExprToTree (expr : quoted.Expr [_ ])(implicit ctx : Context ): Tree = expr match {
35
+ def quotedExprToTree [ T ] (expr : quoted.Expr [T ])(implicit ctx : Context ): Tree = expr match {
36
36
case expr : TastyExpr [_] => unpickleExpr(expr)
37
- case expr : LiftedExpr [_] =>
38
- if (expr.value.isInstanceOf [Class [_]]) // Should be a pattern match after #4198 is fixed
39
- ref(defn.Predef_classOf ).appliedToType(classToType(expr.value.asInstanceOf [Class [_]]))
40
- else Literal (Constant (expr.value))
37
+ case expr : LiftedExpr [T ] =>
38
+ expr.value match {
39
+ case value : Class [_] => ref(defn.Predef_classOf ).appliedToType(classToType(value))
40
+ case value=> Literal (Constant (value))
41
+ }
41
42
case expr : TreeExpr [Tree ] @ unchecked => expr.tree
42
43
case expr : FunctionAppliedTo [_, _] =>
43
44
functionAppliedTo(quotedExprToTree(expr.f), quotedExprToTree(expr.x))
Original file line number Diff line number Diff line change @@ -28,7 +28,7 @@ object Splicer {
28
28
private def reflectiveSplice (tree : Tree )(implicit ctx : Context ): Tree = {
29
29
val interpreter = new Interpreter
30
30
val interpreted =
31
- try interpreter.interpretTree[scala.quoted.Expr [_ ]](tree)
31
+ try interpreter.interpretTree[scala.quoted.Expr [Nothing ]](tree)
32
32
catch { case ex : InvocationTargetException => handleTargetException(tree, ex); None }
33
33
interpreted.fold(tree)(PickledQuotes .quotedExprToTree)
34
34
}
You can’t perform that action at this time.
0 commit comments