diff options
author | Som Snytt <som.snytt@gmail.com> | 2013-03-25 15:35:55 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2013-03-27 10:38:14 -0700 |
commit | e073975997a5291cbe76ea15e797a6783bb4d544 (patch) | |
tree | e4315bc6e4df17114dac052eb99f7cbceff02b2c | |
parent | 79b18ccf9e9e9cb167ef9c2bdaf7e5adfa9a0ef0 (diff) | |
download | scala-e073975997a5291cbe76ea15e797a6783bb4d544.tar.gz scala-e073975997a5291cbe76ea15e797a6783bb4d544.tar.bz2 scala-e073975997a5291cbe76ea15e797a6783bb4d544.zip |
SI-7261 Implicit conversion of BooleanSetting to Boolean and BooleanFlag
This allows a more compact expression `if (settings.debug)` instead of
`if (settings.debug.value)` and similarly `render(..., printIds = settings.uniqid, ...)`.
-rw-r--r-- | src/reflect/scala/reflect/api/Printers.scala | 2 | ||||
-rw-r--r-- | src/reflect/scala/reflect/internal/settings/MutableSettings.scala | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/reflect/scala/reflect/api/Printers.scala b/src/reflect/scala/reflect/api/Printers.scala index d9e05e77c1..162fe1296b 100644 --- a/src/reflect/scala/reflect/api/Printers.scala +++ b/src/reflect/scala/reflect/api/Printers.scala @@ -163,6 +163,8 @@ trait Printers { self: Universe => import scala.language.implicitConversions implicit def booleanToBooleanFlag(value: Boolean): BooleanFlag = BooleanFlag(Some(value)) implicit def optionToBooleanFlag(value: Option[Boolean]): BooleanFlag = BooleanFlag(value) + import scala.reflect.internal.settings.MutableSettings + implicit def settingToBooleanFlag(setting: MutableSettings#BooleanSetting): BooleanFlag = BooleanFlag(Some(setting.value)) } /** @group Printers */ diff --git a/src/reflect/scala/reflect/internal/settings/MutableSettings.scala b/src/reflect/scala/reflect/internal/settings/MutableSettings.scala index e7a1ea9311..68f9fc8e83 100644 --- a/src/reflect/scala/reflect/internal/settings/MutableSettings.scala +++ b/src/reflect/scala/reflect/internal/settings/MutableSettings.scala @@ -49,3 +49,8 @@ abstract class MutableSettings extends AbsSettings { def XfullLubs: BooleanSetting def breakCycles: BooleanSetting } +object MutableSettings { + import scala.language.implicitConversions + /** Support the common use case, `if (settings.debug) println("Hello, martin.")` */ + @inline implicit def reflectSettingToBoolean(s: MutableSettings#BooleanSetting): Boolean = s.value +} |