diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2013-10-02 17:21:55 +0200 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-11-12 18:40:01 -0800 |
commit | 6038bac3513a834e67ab4074c2c7b03aac11b1b3 (patch) | |
tree | 61a5fb1019fd24e69c8fca420b710f1235b27b50 /test/files/run/macro-whitebox-fundep-materialization/Test_2.scala | |
parent | a2b523a39b4e56eb9ab5d9a5639f5b59d425e354 (diff) | |
download | scala-6038bac3513a834e67ab4074c2c7b03aac11b1b3.tar.gz scala-6038bac3513a834e67ab4074c2c7b03aac11b1b3.tar.bz2 scala-6038bac3513a834e67ab4074c2c7b03aac11b1b3.zip |
blackbox restriction #2: can't guide type inference
When an application of a blackbox macro still has undetermined type
parameters after Scala’s type inference algorithm has finished working,
these type parameters are inferred forcedly, in exactly the same manner
as type inference happens for normal methods.
This makes it impossible for blackbox macros to influence type inference,
prohibiting fundep materialization.
Diffstat (limited to 'test/files/run/macro-whitebox-fundep-materialization/Test_2.scala')
-rw-r--r-- | test/files/run/macro-whitebox-fundep-materialization/Test_2.scala | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/files/run/macro-whitebox-fundep-materialization/Test_2.scala b/test/files/run/macro-whitebox-fundep-materialization/Test_2.scala new file mode 100644 index 0000000000..a00f4ed7db --- /dev/null +++ b/test/files/run/macro-whitebox-fundep-materialization/Test_2.scala @@ -0,0 +1,12 @@ +// see the comments for macroExpandApply.onDelayed for an explanation of what's tested here +object Test extends App { + case class Foo(i: Int, s: String, b: Boolean) + def foo[C, L](c: C)(implicit iso: Iso[C, L]): L = iso.to(c) + + { + val equiv = foo(Foo(23, "foo", true)) + def typed[T](t: => T) {} + typed[(Int, String, Boolean)](equiv) + println(equiv) + } +}
\ No newline at end of file |