diff options
author | Paul Phillips <paulp@improving.org> | 2012-07-07 13:54:39 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-07-07 13:54:39 -0700 |
commit | 300cace2b9473ddbdab762d49f9d39f7347081ff (patch) | |
tree | cb3d4e491276ad277d1f47e4704aaa2ba023079c | |
parent | d9dde67d8be98d358539652d3e694f2d4d18d0df (diff) | |
parent | 946f51c8d8aefe23c939d3f46b97332a33e30c66 (diff) | |
download | scala-300cace2b9473ddbdab762d49f9d39f7347081ff.tar.gz scala-300cace2b9473ddbdab762d49f9d39f7347081ff.tar.bz2 scala-300cace2b9473ddbdab762d49f9d39f7347081ff.zip |
Merge pull request #848 from paulp/topic/asSeenFrom-base
Eliminated some code in asSeenFrom.
-rw-r--r-- | src/reflect/scala/reflect/internal/Types.scala | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/src/reflect/scala/reflect/internal/Types.scala b/src/reflect/scala/reflect/internal/Types.scala index 96a6d4bba0..56cc265e48 100644 --- a/src/reflect/scala/reflect/internal/Types.scala +++ b/src/reflect/scala/reflect/internal/Types.scala @@ -4293,18 +4293,6 @@ trait Types extends api.Types { self: SymbolTable => qvar }).tpe - /** Return `pre.baseType(clazz)`, or if that's `NoType` and `clazz` is a refinement, `pre` itself. - * See bug397.scala for an example where the second alternative is needed. - * The problem is that when forming the base type sequence of an abstract type, - * any refinements in the base type list might be regenerated, and thus acquire - * new class symbols. However, since refinements always have non-interesting prefixes - * it looks OK to me to just take the prefix directly. */ - def base(pre: Type, clazz: Symbol) = { - val b = pre.baseType(clazz) - if (b == NoType && clazz.isRefinementClass) pre - else b - } - def apply(tp: Type): Type = if ((pre eq NoType) || (pre eq NoPrefix) || !clazz.isClass) tp else tp match { @@ -4325,7 +4313,7 @@ trait Types extends api.Types { self: SymbolTable => pre1 } } else { - toPrefix(base(pre, clazz).prefix, clazz.owner) + toPrefix(pre.baseType(clazz).prefix, clazz.owner) } toPrefix(pre, clazz) case SingleType(pre, sym) => @@ -4405,7 +4393,7 @@ trait Types extends api.Types { self: SymbolTable => case t => throwError } - } else toInstance(base(pre, clazz).prefix, clazz.owner) + } else toInstance(pre.baseType(clazz).prefix, clazz.owner) } toInstance(pre, clazz) case _ => |