diff options
author | Martin Odersky <odersky@gmail.com> | 2014-12-17 17:13:30 +0100 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-12-17 17:42:01 +0100 |
commit | 6eaf815923e194cd4d0da8faa0f132dbf8de4608 (patch) | |
tree | f3a76f8bb60353cac118c40d029a8ac72d1a5615 /src/dotty/tools/dotc/typer/TypeAssigner.scala | |
parent | 48966b403a638201e7d174f96176351385f85ac7 (diff) | |
download | dotty-6eaf815923e194cd4d0da8faa0f132dbf8de4608.tar.gz dotty-6eaf815923e194cd4d0da8faa0f132dbf8de4608.tar.bz2 dotty-6eaf815923e194cd4d0da8faa0f132dbf8de4608.zip |
Refactored common behavior from TypeAssigner and TypeErasure
Diffstat (limited to 'src/dotty/tools/dotc/typer/TypeAssigner.scala')
-rw-r--r-- | src/dotty/tools/dotc/typer/TypeAssigner.scala | 17 |
1 files changed, 1 insertions, 16 deletions
diff --git a/src/dotty/tools/dotc/typer/TypeAssigner.scala b/src/dotty/tools/dotc/typer/TypeAssigner.scala index 97c959a7a..4394b8557 100644 --- a/src/dotty/tools/dotc/typer/TypeAssigner.scala +++ b/src/dotty/tools/dotc/typer/TypeAssigner.scala @@ -112,21 +112,6 @@ trait TypeAssigner { * that the package object shows up as the prefix. */ def ensureAccessible(tpe: Type, superAccess: Boolean, pos: Position)(implicit ctx: Context): Type = { - - def tryInsertPackageObj(tpe: NamedType, d: Denotation): Type = { - def tryInsert(pkgClass: SymDenotation): Type = pkgClass match { - case pkgCls: PackageClassDenotation if !(d.symbol.maybeOwner is Package) => - tpe.derivedSelect(pkgCls.packageObj.valRef) - case _ => - tpe - } - tpe.prefix match { - case pre: ThisType if pre.cls is Package => tryInsert(pre.cls) - case pre: TermRef if pre.symbol is Package => tryInsert(pre.symbol.moduleClass) - case _ => tpe - } - } - def test(tpe: Type, firstTry: Boolean): Type = tpe match { case tpe: NamedType => val pre = tpe.prefix @@ -159,7 +144,7 @@ trait TypeAssigner { else if (d.symbol is TypeParamAccessor) // always dereference type param accessors ensureAccessible(d.info.bounds.hi, superAccess, pos) else - tryInsertPackageObj(tpe withDenot d, d) + ctx.makePackageObjPrefixExplicit(tpe withDenot d, d) case _ => tpe } |