diff options
author | Martin Odersky <odersky@gmail.com> | 2016-06-29 20:00:59 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2016-07-11 13:35:02 +0200 |
commit | 60d81f81ddfc85719fd303e8d15d3891adbf4dfd (patch) | |
tree | 17e830e9e73157451c1a46ba2d716ca0d1037f97 /src/dotty/tools/dotc/printing/RefinedPrinter.scala | |
parent | d1f809f14cad2c14c312767d71361c7f2e7d8244 (diff) | |
download | dotty-60d81f81ddfc85719fd303e8d15d3891adbf4dfd.tar.gz dotty-60d81f81ddfc85719fd303e8d15d3891adbf4dfd.tar.bz2 dotty-60d81f81ddfc85719fd303e8d15d3891adbf4dfd.zip |
Start new, direct HK scheme
- Re-introduce newHK option. Label some things that will be
removed with OLD.
Diffstat (limited to 'src/dotty/tools/dotc/printing/RefinedPrinter.scala')
-rw-r--r-- | src/dotty/tools/dotc/printing/RefinedPrinter.scala | 29 |
1 files changed, 3 insertions, 26 deletions
diff --git a/src/dotty/tools/dotc/printing/RefinedPrinter.scala b/src/dotty/tools/dotc/printing/RefinedPrinter.scala index 3da977b31..91f896da2 100644 --- a/src/dotty/tools/dotc/printing/RefinedPrinter.scala +++ b/src/dotty/tools/dotc/printing/RefinedPrinter.scala @@ -95,10 +95,6 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) { } override def toText(tp: Type): Text = controlled { - def argText(arg: Type): Text = arg match { - case arg: TypeBounds => "_" ~ toTextGlobal(arg) - case _ => toTextGlobal(arg) - } def toTextTuple(args: List[Type]): Text = "(" ~ toTextGlobal(args, ", ") ~ ")" def toTextFunction(args: List[Type]): Text = @@ -117,7 +113,7 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) { if (defn.isFunctionClass(cls)) return toTextFunction(args) if (defn.isTupleClass(cls)) return toTextTuple(args) return (toTextLocal(tycon) ~ "[" ~ Text(args map argText, ", ") ~ "]").close - case tp @ TypeLambda(argBoundss, body) => + case tp @ TypeLambdaOLD(argBoundss, body) => val variances = argBoundss.map(b => BindingKind.toVariance(b.bindingKind)) val prefix = ((('X' - 'A') + lambdaNestingLevel) % 26 + 'A').toChar val paramNames = argBoundss.indices.toList.map(prefix.toString + _) @@ -130,13 +126,13 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) { } } def apply(t: Type): Type = t match { - case TypeRef(RecThis(rt), name) if name.isHkArgName && contains(tp, rt) => + case TypeRef(RecThis(rt), name) if name.isHkArgNameOLD && contains(tp, rt) => // Make up a name that prints as "Xi". Need to be careful we do not // accidentally unique-hash to something else. That's why we can't // use prefix = NoPrefix or a WithFixedSym instance. TypeRef.withSymAndName( defn.EmptyPackageClass.thisType, defn.AnyClass, - paramNames(name.hkArgIndex).toTypeName) + paramNames(name.hkArgIndexOLD).toTypeName) case _ => mapOver(t) } @@ -186,25 +182,6 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) { def blockText[T >: Untyped](trees: List[Tree[T]]): Text = "{" ~ toText(trees, "\n") ~ "}" - /** The text for a TypeLambda - * - * [v_1 p_1: B_1, ..., v_n p_n: B_n] -> T - * - * where - * @param paramNames = p_1, ..., p_n - * @param variances = v_1, ..., v_n - * @param argBoundss = B_1, ..., B_n - * @param body = T - */ - def typeLambdaText(paramNames: List[String], variances: List[Int], argBoundss: List[TypeBounds], body: Type): Text = { - def lambdaParamText(variance: Int, name: String, bounds: TypeBounds): Text = - varianceString(variance) ~ name ~ toText(bounds) - changePrec(GlobalPrec) { - "[" ~ Text((variances, paramNames, argBoundss).zipped.map(lambdaParamText), ", ") ~ - "] -> " ~ toTextGlobal(body) - } - } - override def toText[T >: Untyped](tree: Tree[T]): Text = controlled { import untpd.{modsDeco => _, _} |