summaryrefslogtreecommitdiff
path: root/bincompat-backward.whitelist.conf
diff options
context:
space:
mode:
authorDenys Shabalin <denys.shabalin@typesafe.com>2014-03-24 15:21:32 +0100
committerDenys Shabalin <denys.shabalin@typesafe.com>2014-03-24 15:56:46 +0100
commitfa91b173f7e5e64c2221d50af0684985f046637c (patch)
tree4ce1ffb4b44edb37aef60cd6e3f93e44460ab146 /bincompat-backward.whitelist.conf
parentbcf24ec9ba07408ad9e8745135cc941ac3e76289 (diff)
downloadscala-fa91b173f7e5e64c2221d50af0684985f046637c.tar.gz
scala-fa91b173f7e5e64c2221d50af0684985f046637c.tar.bz2
scala-fa91b173f7e5e64c2221d50af0684985f046637c.zip
SI-8200 provide an identity liftable for trees
This liftable hasn't been originally included in the set of standard liftables due to following contradiction: 1. On one hand we can have identity lifting that seems to be quite consistent with regular unquoting: q"..${List(1,2)}" <==> q"1; 2" q"${List(1,2)}" <==> q"s.c.i.List(1, 2)" q"..${List(q"a", q"b")}” <==> q"a; b" q"${List(q"a", q"b")}" <==> q"s.c.i.List(a, b)" This is also consistent with how lisp unquoting works although they get lifting for free thanks to homoiconicity: // scala scala> val x = List(q"a", q"b); q"f($x)" q"f(s.c.i.List(a, b))" // scheme > (let [(x (list a b))] `(f ,x)) '(f (list a b)) 2. On the other hand lifting is an operation that converts a value into a code that when evaluated turns into the same value. In this sense Liftable[Tree] means reification of a tree into a tree that represents it, i.e.: q"${List(q"a", q"b")}" <==> q"""s.c.i.List(Ident(TermName("a")), Ident(TermName("b")))""" But I belive that such lifting will be very confusing for everyone other than a few very advanced users. This commit introduces the first option as a default Liftable for trees.
Diffstat (limited to 'bincompat-backward.whitelist.conf')
-rw-r--r--bincompat-backward.whitelist.conf5
1 files changed, 5 insertions, 0 deletions
diff --git a/bincompat-backward.whitelist.conf b/bincompat-backward.whitelist.conf
index ae31c286f3..f9760b5c3f 100644
--- a/bincompat-backward.whitelist.conf
+++ b/bincompat-backward.whitelist.conf
@@ -102,6 +102,11 @@ filter {
matchName="scala.collection.mutable.ArrayOps#ofDouble.unzip3"
problemName=IncompatibleMethTypeProblem
},
+ // see SI-8200
+ {
+ matchName="scala.reflect.api.StandardLiftables#StandardLiftableInstances.liftTree"
+ problemName=MissingMethodProblem
+ },
// see SI-8331
{
matchName="scala.reflect.api.Internals#ReificationSupportApi#SyntacticTypeAppliedExtractor.unapply"