aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scala/async/internal/AsyncAnalysis.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2016-09-08 15:23:22 +1000
committerJason Zaugg <jzaugg@gmail.com>2016-09-08 15:44:04 +1000
commit6bf20ee474afa46564899e9f57065ad1f22fabed (patch)
tree042f9a73f036191ae5b8178ebd3846b05eade760 /src/main/scala/scala/async/internal/AsyncAnalysis.scala
parent4395afe0ab7c59f088607d0849abe48b0f83265d (diff)
downloadscala-async-6bf20ee474afa46564899e9f57065ad1f22fabed.tar.gz
scala-async-6bf20ee474afa46564899e9f57065ad1f22fabed.tar.bz2
scala-async-6bf20ee474afa46564899e9f57065ad1f22fabed.zip
Compatibility with Scala 2.12.0-RC1
- method local lazy vals are now encoded as a single ValDef rather than a ValDef + DefDef pair. We need to treat ValDef-s with the LAZY flag in the same way as we used to treat the DefDef. - Rename one of the symbols `ANF,anf` in the same scope to avoid generating anonymous class names that differ only in case. The compiler warned about this one. - When patching the LabelDefs to have a `Unit` result type, propagate this other LabelDefs conclude with a jump to that label. Not sure why, but without this we now hit an error in the backend about the nonsensical attempt to emit a coercion from void to int. - Use crossScalaVersions in the build and update the Scala versions tested in CI.
Diffstat (limited to 'src/main/scala/scala/async/internal/AsyncAnalysis.scala')
-rw-r--r--src/main/scala/scala/async/internal/AsyncAnalysis.scala2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/main/scala/scala/async/internal/AsyncAnalysis.scala b/src/main/scala/scala/async/internal/AsyncAnalysis.scala
index 6b75493..bd64f17 100644
--- a/src/main/scala/scala/async/internal/AsyncAnalysis.scala
+++ b/src/main/scala/scala/async/internal/AsyncAnalysis.scala
@@ -62,6 +62,8 @@ trait AsyncAnalysis {
c.abort(tree.pos, "return is illegal within a async block")
case DefDef(mods, _, _, _, _, _) if mods.hasFlag(Flag.LAZY) && containsAwait(tree) =>
reportUnsupportedAwait(tree, "lazy val initializer")
+ case ValDef(mods, _, _, _) if mods.hasFlag(Flag.LAZY) && containsAwait(tree) =>
+ reportUnsupportedAwait(tree, "lazy val initializer")
case CaseDef(_, guard, _) if guard exists isAwait =>
// TODO lift this restriction
reportUnsupportedAwait(tree, "pattern guard")