diff options
author | odersky <odersky@gmail.com> | 2016-11-21 19:00:19 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-21 19:00:19 +0100 |
commit | 5b409515613173970d44a21978b04432cd01b73d (patch) | |
tree | 580409cc8e02bc2cfba3d5b94f62daa492ff2e49 /src/dotty/tools/dotc/transform | |
parent | 601a286b1c1eb7f0bbea64609a7d07ed40f02118 (diff) | |
parent | a2b1e601142e66255c252bf0584d2fc5ceb46b07 (diff) | |
download | dotty-5b409515613173970d44a21978b04432cd01b73d.tar.gz dotty-5b409515613173970d44a21978b04432cd01b73d.tar.bz2 dotty-5b409515613173970d44a21978b04432cd01b73d.zip |
Merge pull request #1634 from dotty-staging/change-tasty-pos-ctd
Towards correct positions in TASTY types
Diffstat (limited to 'src/dotty/tools/dotc/transform')
-rw-r--r-- | src/dotty/tools/dotc/transform/Erasure.scala | 4 | ||||
-rw-r--r-- | src/dotty/tools/dotc/transform/Pickler.scala | 4 | ||||
-rw-r--r-- | src/dotty/tools/dotc/transform/PostTyper.scala | 2 | ||||
-rw-r--r-- | src/dotty/tools/dotc/transform/SuperAccessors.scala | 6 | ||||
-rw-r--r-- | src/dotty/tools/dotc/transform/TreeTransform.scala | 2 |
5 files changed, 9 insertions, 9 deletions
diff --git a/src/dotty/tools/dotc/transform/Erasure.scala b/src/dotty/tools/dotc/transform/Erasure.scala index a503d55e5..069176111 100644 --- a/src/dotty/tools/dotc/transform/Erasure.scala +++ b/src/dotty/tools/dotc/transform/Erasure.scala @@ -352,10 +352,10 @@ object Erasure extends TypeTestsCasts{ assignType(untpd.cpy.Select(tree)(qual, tree.name.primitiveArrayOp), qual) def adaptIfSuper(qual: Tree): Tree = qual match { - case Super(thisQual, tpnme.EMPTY) => + case Super(thisQual, untpd.EmptyTypeIdent) => val SuperType(thisType, supType) = qual.tpe if (sym.owner is Flags.Trait) - cpy.Super(qual)(thisQual, sym.owner.asClass.name) + cpy.Super(qual)(thisQual, untpd.Ident(sym.owner.asClass.name)) .withType(SuperType(thisType, sym.owner.typeRef)) else qual.withType(SuperType(thisType, thisType.firstParent)) diff --git a/src/dotty/tools/dotc/transform/Pickler.scala b/src/dotty/tools/dotc/transform/Pickler.scala index fc70ac4f2..2fb85b6c0 100644 --- a/src/dotty/tools/dotc/transform/Pickler.scala +++ b/src/dotty/tools/dotc/transform/Pickler.scala @@ -46,10 +46,10 @@ class Pickler extends Phase { val treePkl = pickler.treePkl treePkl.pickle(tree :: Nil) treePkl.compactify() - pickler.addrsOfTree = treePkl.buf.addrsOfTree + pickler.addrOfTree = treePkl.buf.addrOfTree pickler.addrOfSym = treePkl.addrOfSym if (tree.pos.exists) - new PositionPickler(pickler, treePkl.buf.addrsOfTree).picklePositions(tree :: Nil) + new PositionPickler(pickler, treePkl.buf.addrOfTree).picklePositions(tree :: Nil) def rawBytes = // not needed right now, but useful to print raw format. pickler.assembleParts().iterator.grouped(10).toList.zipWithIndex.map { diff --git a/src/dotty/tools/dotc/transform/PostTyper.scala b/src/dotty/tools/dotc/transform/PostTyper.scala index 7e51635e5..1ed47d92e 100644 --- a/src/dotty/tools/dotc/transform/PostTyper.scala +++ b/src/dotty/tools/dotc/transform/PostTyper.scala @@ -175,7 +175,7 @@ class PostTyper extends MacroTransform with IdentityDenotTransformer { thisTran Checking.checkRealizable(qual.tpe, qual.pos.focus) super.transform(tree) } - else + else transformSelect(paramFwd.adaptRef(fixSignature(tree)), Nil) case tree: Super => if (ctx.owner.enclosingMethod.isInlineMethod) diff --git a/src/dotty/tools/dotc/transform/SuperAccessors.scala b/src/dotty/tools/dotc/transform/SuperAccessors.scala index 10be6db65..fea478c9b 100644 --- a/src/dotty/tools/dotc/transform/SuperAccessors.scala +++ b/src/dotty/tools/dotc/transform/SuperAccessors.scala @@ -106,7 +106,7 @@ class SuperAccessors(thisTransformer: DenotTransformer) { ctx.error(s"super not allowed here: use this.${sel.name.decode} instead", sel.pos) else if (sym is Deferred) { val member = sym.overridingSymbol(clazz) - if (mix != tpnme.EMPTY || + if (!mix.name.isEmpty || !member.exists || !((member is AbsOverride) && member.isIncompleteIn(clazz))) ctx.error( @@ -114,7 +114,7 @@ class SuperAccessors(thisTransformer: DenotTransformer) { sel.pos) else ctx.log(i"ok super $sel ${sym.showLocated} $member $clazz ${member.isIncompleteIn(clazz)}") } - else if (mix == tpnme.EMPTY && !(sym.owner is Trait)) + else if (mix.name.isEmpty && !(sym.owner is Trait)) // SI-4989 Check if an intermediate class between `clazz` and `sym.owner` redeclares the method as abstract. for (intermediateClass <- clazz.info.baseClasses.tail.takeWhile(_ != sym.owner)) { val overriding = sym.overridingSymbol(intermediateClass) @@ -124,7 +124,7 @@ class SuperAccessors(thisTransformer: DenotTransformer) { sel.pos) } - if (name.isTermName && mix == tpnme.EMPTY && + if (name.isTermName && mix.name.isEmpty && ((clazz is Trait) || clazz != ctx.owner.enclosingClass || !validCurrentClass)) superAccessorCall(sel)(ctx.withPhase(thisTransformer.next)) else sel diff --git a/src/dotty/tools/dotc/transform/TreeTransform.scala b/src/dotty/tools/dotc/transform/TreeTransform.scala index a1ccf0e63..5385ca720 100644 --- a/src/dotty/tools/dotc/transform/TreeTransform.scala +++ b/src/dotty/tools/dotc/transform/TreeTransform.scala @@ -977,7 +977,7 @@ object TreeTransforms { if (mutatedInfo eq null) tree else { val rhs = transform(tree.rhs, mutatedInfo, cur)(localContext(tree.symbol)) - goTypeDef(cpy.TypeDef(tree)(tree.name, rhs, tree.tparams), mutatedInfo.nx.nxTransTypeDef(cur)) + goTypeDef(cpy.TypeDef(tree)(tree.name, rhs), mutatedInfo.nx.nxTransTypeDef(cur)) } case _ => tree |