From f0dfea49476e1b1f1d3c0f60e52e96db957dff78 Mon Sep 17 00:00:00 2001 From: Dmitry Petrashko Date: Tue, 9 Sep 2014 16:42:03 +0200 Subject: Changes from discussion in #171 --- src/dotty/tools/dotc/transform/FirstTransform.scala | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/dotty/tools/dotc/transform/FirstTransform.scala') diff --git a/src/dotty/tools/dotc/transform/FirstTransform.scala b/src/dotty/tools/dotc/transform/FirstTransform.scala index 5a3e65294..a8cbb0595 100644 --- a/src/dotty/tools/dotc/transform/FirstTransform.scala +++ b/src/dotty/tools/dotc/transform/FirstTransform.scala @@ -85,7 +85,13 @@ class FirstTransform extends MiniPhaseTransform with IdentityDenotTransformer { if (tree.isType) TypeTree(tree.tpe).withPos(tree.pos) else tree override def transformIdent(tree: Ident)(implicit ctx: Context, info: TransformerInfo) = tree.tpe match { - case tpe: ThisType => This(tpe.cls).withPos(tree.pos) + case tpe: ThisType => + /* + A this reference hide in a self ident, and be subsequently missed + when deciding on whether outer accessors are needed and computing outer paths. + sWe do this normalization directly after Typer, because during typer the + ident should rest available for hyperlinking.*/ + This(tpe.cls).withPos(tree.pos) case _ => normalizeType(tree) } -- cgit v1.2.3