diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2016-03-29 18:18:09 -0700 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2016-03-29 23:19:26 -0700 |
commit | 3904c3216c741b387d81754e55aa079ce4218d06 (patch) | |
tree | 9d53968a9542a5b2791afac33d6f8fa2152b66dd /src/reflect | |
parent | 62d97d7f110894a0c2f36b1ed9dd7ad59c0115fa (diff) | |
download | scala-3904c3216c741b387d81754e55aa079ce4218d06.tar.gz scala-3904c3216c741b387d81754e55aa079ce4218d06.tar.bz2 scala-3904c3216c741b387d81754e55aa079ce4218d06.zip |
LMF cannot instantiate SAM of trait with non-trait superclass
Also, drop AbstractFunction for parent of anonymous subclass of
function type that must have its class spun up at compile time
(rather than at linkage time by LambdaMetaFactory).
This revealed an old problem with typedTemplate, in which
parent types may be normalized at the level of trees,
while this change does not get propagated to the class's info
in time for the constructor to be located when we type check
the primary constructor.
Diffstat (limited to 'src/reflect')
-rw-r--r-- | src/reflect/scala/reflect/internal/Definitions.scala | 1 | ||||
-rw-r--r-- | src/reflect/scala/reflect/internal/Types.scala | 5 |
2 files changed, 0 insertions, 6 deletions
diff --git a/src/reflect/scala/reflect/internal/Definitions.scala b/src/reflect/scala/reflect/internal/Definitions.scala index 8074b448fe..e9baa47d82 100644 --- a/src/reflect/scala/reflect/internal/Definitions.scala +++ b/src/reflect/scala/reflect/internal/Definitions.scala @@ -581,7 +581,6 @@ trait Definitions extends api.StandardDefinitions { /** Creators for TupleN, ProductN, FunctionN. */ def tupleType(elems: List[Type]) = TupleClass.specificType(elems) def functionType(formals: List[Type], restpe: Type) = FunctionClass.specificType(formals, restpe) - def abstractFunctionType(formals: List[Type], restpe: Type) = AbstractFunctionClass.specificType(formals, restpe) def wrapArrayMethodName(elemtp: Type): TermName = elemtp.typeSymbol match { case ByteClass => nme.wrapByteArray diff --git a/src/reflect/scala/reflect/internal/Types.scala b/src/reflect/scala/reflect/internal/Types.scala index 00df55f044..f385ca08c9 100644 --- a/src/reflect/scala/reflect/internal/Types.scala +++ b/src/reflect/scala/reflect/internal/Types.scala @@ -4553,11 +4553,6 @@ trait Types else (ps :+ SerializableTpe).toList ) - def addObjectParent(tps: List[Type]) = tps match { - case hd :: _ if hd.typeSymbol.isTrait => ObjectTpe :: tps - case _ => tps - } - /** Adds the @uncheckedBound annotation if the given `tp` has type arguments */ final def uncheckedBounds(tp: Type): Type = { if (tp.typeArgs.isEmpty || UncheckedBoundsClass == NoSymbol) tp // second condition for backwards compatibility with older scala-reflect.jar |