summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect/internal/Definitions.scala
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2014-02-21 22:18:09 +0100
committerEugene Burmako <xeno.by@gmail.com>2014-02-21 22:24:31 +0100
commitda1032caa4ee4c780b5fff3056dd816623a53737 (patch)
treebf819b16e339bbcec8ed2d260b86b7abd40efaed /src/reflect/scala/reflect/internal/Definitions.scala
parent31b52ed651e58a68d478aabe41c62287b6d4d718 (diff)
downloadscala-da1032caa4ee4c780b5fff3056dd816623a53737.tar.gz
scala-da1032caa4ee4c780b5fff3056dd816623a53737.tar.bz2
scala-da1032caa4ee4c780b5fff3056dd816623a53737.zip
prohibits polymorphic bundles
It's not like they were inducing bugs, but I can't see how polymorphism can be useful for macro bundles, hence imho it's better to reduce the number of degrees of freedom of the system.
Diffstat (limited to 'src/reflect/scala/reflect/internal/Definitions.scala')
-rw-r--r--src/reflect/scala/reflect/internal/Definitions.scala3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/internal/Definitions.scala b/src/reflect/scala/reflect/internal/Definitions.scala
index f8f7673530..62e98829b7 100644
--- a/src/reflect/scala/reflect/internal/Definitions.scala
+++ b/src/reflect/scala/reflect/internal/Definitions.scala
@@ -618,10 +618,11 @@ trait Definitions extends api.StandardDefinitions {
macroBundleParamInfo(tp) != NoType
def isMacroBundleType(tp: Type) = {
+ val isMonomorphic = tp.typeSymbol.typeParams.isEmpty
val isContextCompatible = macroBundleParamInfo(tp) != NoType
val hasSingleConstructor = !tp.declaration(nme.CONSTRUCTOR).isOverloaded
val nonAbstract = !tp.erasure.typeSymbol.isAbstractClass
- isContextCompatible && hasSingleConstructor && nonAbstract
+ isMonomorphic && isContextCompatible && hasSingleConstructor && nonAbstract
}
def isBlackboxMacroBundleType(tp: Type) = {