aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJonathan Rodriguez <son.of.yhwh@gmail.com>2016-02-16 15:04:47 -0500
committerJonathan Rodriguez <son.of.yhwh@gmail.com>2016-02-16 15:04:47 -0500
commit697e5e38be89b3477313e86fe57ac3ba49e2344e (patch)
treea1513bbef19eaf8a8026d540ceee87097cc3be97 /src
parent5e8023335e641c9c05c6517a82764571e7ef6386 (diff)
downloaddotty-697e5e38be89b3477313e86fe57ac3ba49e2344e.tar.gz
dotty-697e5e38be89b3477313e86fe57ac3ba49e2344e.tar.bz2
dotty-697e5e38be89b3477313e86fe57ac3ba49e2344e.zip
Support for extending the Typer
Diffstat (limited to 'src')
-rw-r--r--src/dotty/tools/dotc/typer/Namer.scala2
-rw-r--r--src/dotty/tools/dotc/typer/Typer.scala2
2 files changed, 3 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/typer/Namer.scala b/src/dotty/tools/dotc/typer/Namer.scala
index ecbec7d07..c8d2b3418 100644
--- a/src/dotty/tools/dotc/typer/Namer.scala
+++ b/src/dotty/tools/dotc/typer/Namer.scala
@@ -508,7 +508,7 @@ class Namer { typer: Typer =>
if (sym is Module) moduleValSig(sym)
else valOrDefDefSig(original, sym, Nil, Nil, identity)(localContext(sym).setNewScope)
case original: DefDef =>
- val typer1 = new Typer
+ val typer1 = ctx.typer.newLikeThis
nestedTyper(sym) = typer1
typer1.defDefSig(original, sym)(localContext(sym).setTyper(typer1))
case original: TypeDef =>
diff --git a/src/dotty/tools/dotc/typer/Typer.scala b/src/dotty/tools/dotc/typer/Typer.scala
index 6a2ff30fa..b886d8663 100644
--- a/src/dotty/tools/dotc/typer/Typer.scala
+++ b/src/dotty/tools/dotc/typer/Typer.scala
@@ -68,6 +68,8 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
*/
private var importedFromRoot: Set[Symbol] = Set()
+ def newLikeThis: Typer = new Typer
+
/** Attribute an identifier consisting of a simple name or wildcard
*
* @param tree The tree representing the identifier.