Skip to content
Snippets Groups Projects
Commit c691fe52 authored by Etienne Kneuss's avatar Etienne Kneuss
Browse files

Fix printing of empty lists, simplify printing of bigints

parent 2fd59923
No related branches found
No related tags found
No related merge requests found
......@@ -235,18 +235,18 @@ class PrettyPrinter(opts: PrinterOptions, val sb: StringBuffer = new StringBuffe
isListLiteral(e) match {
case Some((tpe, elems)) =>
val chars = elems.collect{case CharLiteral(ch) => ch}
if (chars.length == elems.length) {
if (chars.length == elems.length && tpe == CharType) {
// String literal
val str = chars mkString ""
val q = '"'
p"$q$str$q"
}
val elemTps = leastUpperBound(elems.map(_.getType))
if (elemTps == Some(tpe)) {
p"List($elems)"
} else {
p"List[$tpe]($elems)"
val elemTps = leastUpperBound(elems.map(_.getType))
if (elemTps == Some(tpe)) {
p"List($elems)"
} else {
p"List[$tpe]($elems)"
}
}
case None =>
......@@ -268,7 +268,7 @@ class PrettyPrinter(opts: PrinterOptions, val sb: StringBuffer = new StringBuffe
case BVUMinus(expr) => p"-$expr"
case Equals(l,r) => optP { p"$l == $r" }
case IntLiteral(v) => p"$v"
case InfiniteIntegerLiteral(v) => p"BigInt($v)"
case InfiniteIntegerLiteral(v) => p"$v"
case CharLiteral(v) => p"$v"
case BooleanLiteral(v) => p"$v"
case UnitLiteral() => p"()"
......
......@@ -52,6 +52,7 @@ class ScalaPrinter(opts: PrinterOptions, sb: StringBuffer = new StringBuffer) ex
case SetDifference(l,r) => p"$l -- $r"
case SetIntersection(l,r) => p"$l & $r"
case SetCardinality(s) => p"$s.size"
case InfiniteIntegerLiteral(v) => p"BigInt($v)"
case a@FiniteArray(elems, oDef, size) => {
import ExprOps._
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment