diff options
author | François Garillot <francois@garillot.net> | 2014-03-11 15:16:56 +0100 |
---|---|---|
committer | François Garillot <francois@garillot.net> | 2014-03-11 16:46:14 +0100 |
commit | e09e5a46f16387dbe4866546967c71a8840e26a1 (patch) | |
tree | a04bd014c2000e35a83198340cf45b96f7bdf33c /src/reflect | |
parent | 7f07d44bcc97ba8435e8c77393554571c9a006ad (diff) | |
download | scala-e09e5a46f16387dbe4866546967c71a8840e26a1.tar.gz scala-e09e5a46f16387dbe4866546967c71a8840e26a1.tar.bz2 scala-e09e5a46f16387dbe4866546967c71a8840e26a1.zip |
SI-8392 Guards QuasiquoteClass against non-availability in scala-reflect
This assimilates behavior on Quasiquotes to the one on Reflection : if
we don't have the right resource on classpath, we do without rather
than throwing.
See the bug report for more on rationale (-Xsource flag, early
quasiquote loading in Analyzer through FastTrack, etc).
Review by @gkossakowski or @xeno-by
Diffstat (limited to 'src/reflect')
-rw-r--r-- | src/reflect/scala/reflect/internal/Definitions.scala | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/internal/Definitions.scala b/src/reflect/scala/reflect/internal/Definitions.scala index 558e1aa611..fa1694c527 100644 --- a/src/reflect/scala/reflect/internal/Definitions.scala +++ b/src/reflect/scala/reflect/internal/Definitions.scala @@ -501,7 +501,9 @@ trait Definitions extends api.StandardDefinitions { lazy val StringContextClass = requiredClass[scala.StringContext] - lazy val QuasiquoteClass = if (ApiUniverseClass != NoSymbol) getMember(ApiUniverseClass, tpnme.Quasiquote) else NoSymbol + // SI-8392 a reflection universe on classpath may not have + // quasiquotes, if e.g. crosstyping with -Xsource on + lazy val QuasiquoteClass = if (ApiUniverseClass != NoSymbol) getMemberIfDefined(ApiUniverseClass, tpnme.Quasiquote) else NoSymbol lazy val QuasiquoteClass_api = if (QuasiquoteClass != NoSymbol) getMember(QuasiquoteClass, tpnme.api) else NoSymbol lazy val QuasiquoteClass_api_apply = if (QuasiquoteClass_api != NoSymbol) getMember(QuasiquoteClass_api, nme.apply) else NoSymbol lazy val QuasiquoteClass_api_unapply = if (QuasiquoteClass_api != NoSymbol) getMember(QuasiquoteClass_api, nme.unapply) else NoSymbol |