aboutsummaryrefslogtreecommitdiff
path: root/src/dotty
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-09-21 22:14:36 +0200
committerMartin Odersky <odersky@gmail.com>2015-10-01 19:33:25 +0200
commit3604a738654effc20be1d31b0e7af3d0847114b4 (patch)
tree1535a9ee7d2bb23fab69bb3ec6730cc66c32131a /src/dotty
parentfe714ed2b6aaca41f1e6681b217022b301f3049d (diff)
downloaddotty-3604a738654effc20be1d31b0e7af3d0847114b4.tar.gz
dotty-3604a738654effc20be1d31b0e7af3d0847114b4.tar.bz2
dotty-3604a738654effc20be1d31b0e7af3d0847114b4.zip
Replace withMode by addMode
withMode sets the whole mode, nit an individual bits. This was used wrongly in several places. Make this less of a trap by renaming withMode -> withModeBits.
Diffstat (limited to 'src/dotty')
-rw-r--r--src/dotty/tools/dotc/ast/tpd.scala4
-rw-r--r--src/dotty/tools/dotc/core/Contexts.scala8
-rw-r--r--src/dotty/tools/dotc/printing/PlainPrinter.scala2
-rw-r--r--src/dotty/tools/dotc/transform/TreeChecker.scala2
4 files changed, 8 insertions, 8 deletions
diff --git a/src/dotty/tools/dotc/ast/tpd.scala b/src/dotty/tools/dotc/ast/tpd.scala
index 29a31375b..14a36f398 100644
--- a/src/dotty/tools/dotc/ast/tpd.scala
+++ b/src/dotty/tools/dotc/ast/tpd.scala
@@ -626,7 +626,7 @@ object tpd extends Trees.Instance[Type] with TypedTreeInfo {
loop(from.owner, from :: froms, to :: tos)
else {
//println(i"change owner ${from :: froms}%, % ==> $tos of $tree")
- new TreeTypeMap(oldOwners = from :: froms, newOwners = tos)(ctx.withMode(Mode.FutureDefsOK)).apply(tree)
+ new TreeTypeMap(oldOwners = from :: froms, newOwners = tos)(ctx.addMode(Mode.FutureDefsOK)).apply(tree)
}
}
loop(from, Nil, to :: Nil)
@@ -652,7 +652,7 @@ object tpd extends Trees.Instance[Type] with TypedTreeInfo {
traverseChildren(tree)
}
}
- traverser.traverse(tree)(ctx.withMode(Mode.FutureDefsOK))
+ traverser.traverse(tree)(ctx.addMode(Mode.FutureDefsOK))
tree
}
diff --git a/src/dotty/tools/dotc/core/Contexts.scala b/src/dotty/tools/dotc/core/Contexts.scala
index 206ef9d8b..f9d64b2cc 100644
--- a/src/dotty/tools/dotc/core/Contexts.scala
+++ b/src/dotty/tools/dotc/core/Contexts.scala
@@ -439,12 +439,12 @@ object Contexts {
}
implicit class ModeChanges(val c: Context) extends AnyVal {
- final def withMode(mode: Mode): Context =
+ final def withModeBits(mode: Mode): Context =
if (mode != c.mode) c.fresh.setMode(mode) else c
- final def addMode(mode: Mode): Context = withMode(c.mode | mode)
- final def maskMode(mode: Mode): Context = withMode(c.mode & mode)
- final def retractMode(mode: Mode): Context = withMode(c.mode &~ mode)
+ final def addMode(mode: Mode): Context = withModeBits(c.mode | mode)
+ final def maskMode(mode: Mode): Context = withModeBits(c.mode & mode)
+ final def retractMode(mode: Mode): Context = withModeBits(c.mode &~ mode)
}
implicit class FreshModeChanges(val c: FreshContext) extends AnyVal {
diff --git a/src/dotty/tools/dotc/printing/PlainPrinter.scala b/src/dotty/tools/dotc/printing/PlainPrinter.scala
index 45928af4b..5daef9fb8 100644
--- a/src/dotty/tools/dotc/printing/PlainPrinter.scala
+++ b/src/dotty/tools/dotc/printing/PlainPrinter.scala
@@ -166,7 +166,7 @@ class PlainPrinter(_ctx: Context) extends Printer {
else {
val constr = ctx.typerState.constraint
val bounds =
- if (constr.contains(tp)) constr.fullBounds(tp.origin)
+ if (constr.contains(tp)) constr.fullBounds(tp.origin)(ctx.addMode(Mode.Printing))
else TypeBounds.empty
"(" ~ toText(tp.origin) ~ "?" ~ toText(bounds) ~ ")"
}
diff --git a/src/dotty/tools/dotc/transform/TreeChecker.scala b/src/dotty/tools/dotc/transform/TreeChecker.scala
index f046226d1..2296ae658 100644
--- a/src/dotty/tools/dotc/transform/TreeChecker.scala
+++ b/src/dotty/tools/dotc/transform/TreeChecker.scala
@@ -66,7 +66,7 @@ class TreeChecker extends Phase with SymTransformer {
val cur = symd.linkedClass
val prev = ctx.atPhase(ctx.phase.prev) {
ct => {
- implicit val ctx: Context = ct.withMode(Mode.FutureDefsOK)
+ implicit val ctx: Context = ct.addMode(Mode.FutureDefsOK)
symd.symbol.linkedClass
}
}