From 814d61e48cf76ce0019d2e465c8d3b0a68615997 Mon Sep 17 00:00:00 2001 From: Allan Renucci Date: Fri, 5 Jan 2018 15:47:38 +0100 Subject: [PATCH] Make Ycheck stricter --- .../dotty/tools/dotc/transform/TreeChecker.scala | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/compiler/src/dotty/tools/dotc/transform/TreeChecker.scala b/compiler/src/dotty/tools/dotc/transform/TreeChecker.scala index 2508c984bf59..41d21d61cd12 100644 --- a/compiler/src/dotty/tools/dotc/transform/TreeChecker.scala +++ b/compiler/src/dotty/tools/dotc/transform/TreeChecker.scala @@ -56,16 +56,12 @@ class TreeChecker extends Phase with SymTransformer { def isValidJVMMethodName(name: Name) = name.toString.forall(isValidJVMMethodChar) - def printError(str: String)(implicit ctx: Context) = { - ctx.echo(Console.RED + "[error] " + Console.WHITE + str) - } - val NoSuperClass = Trait | Package def testDuplicate(sym: Symbol, registry: mutable.Map[String, Symbol], typ: String)(implicit ctx: Context) = { val name = sym.fullName.mangledString - if (this.flatClasses && registry.contains(name)) - assert(false, s"$typ defined twice $sym ${sym.id} ${registry(name).id}") + val isDuplicate = this.flatClasses && registry.contains(name) + assert(!isDuplicate, s"$typ defined twice $sym ${sym.id} ${registry(name).id}") registry(name) = sym } @@ -85,14 +81,13 @@ class TreeChecker extends Phase with SymTransformer { if (sym.isClass && !sym.isAbsent) { val validSuperclass = sym.isPrimitiveValueClass || defn.syntheticCoreClasses.contains(sym) || (sym eq defn.ObjectClass) || (sym is NoSuperClass) || (sym.asClass.superClass.exists) - if (!validSuperclass) - printError(s"$sym has no superclass set") + assert(validSuperclass, i"$sym has no superclass set") testDuplicate(sym, seenClasses, "class") } - if (sym.is(Method) && sym.is(Deferred) && sym.is(Private)) - assert(false, s"$sym is both Deferred and Private") + val isDeferredAndPrivate = sym.is(Method) && sym.is(Deferred) && sym.is(Private) + assert(!isDeferredAndPrivate, i"$sym is both Deferred and Private") checkCompanion(symd)