summaryrefslogtreecommitdiff
path: root/src/reflect
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-09-09 10:06:00 +0200
committerJason Zaugg <jzaugg@gmail.com>2013-09-10 01:34:00 +0200
commitbf0f9da50983941b8575ffae284d9c90de886020 (patch)
treeb7464c8f529f0be94600a0b72c824607301cfb33 /src/reflect
parent7fa0e60c47a05f335ab890ef182769699263b3ce (diff)
downloadscala-bf0f9da50983941b8575ffae284d9c90de886020.tar.gz
scala-bf0f9da50983941b8575ffae284d9c90de886020.tar.bz2
scala-bf0f9da50983941b8575ffae284d9c90de886020.zip
SI-7825 Consider DEFAULTMETHOD when refchecking concreteness
A class should not be required to implement a Java default method. This commit uses `isDeferredNotDefault` in place of `isDeferred` when finding unimplemented methods. The test itself does not depend on Java 8 as we use scalac's Java source parser to set things up.
Diffstat (limited to 'src/reflect')
-rw-r--r--src/reflect/scala/reflect/internal/HasFlags.scala3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/reflect/scala/reflect/internal/HasFlags.scala b/src/reflect/scala/reflect/internal/HasFlags.scala
index 4a3663b8ea..12fd3a31cd 100644
--- a/src/reflect/scala/reflect/internal/HasFlags.scala
+++ b/src/reflect/scala/reflect/internal/HasFlags.scala
@@ -115,6 +115,9 @@ trait HasFlags {
def isSynthetic = hasFlag(SYNTHETIC)
def isTrait = hasFlag(TRAIT) && !hasFlag(PARAM)
+ def isDeferredOrDefault = hasFlag(DEFERRED | DEFAULTMETHOD)
+ def isDeferredNotDefault = isDeferred && !hasFlag(DEFAULTMETHOD)
+
def flagBitsToString(bits: Long): String = {
// Fast path for common case
if (bits == 0L) "" else {