From e327695145804a9affc4ded702e80ed93489aa05 Mon Sep 17 00:00:00 2001 From: Robert Soeldner Date: Sat, 28 Oct 2017 18:37:25 +0200 Subject: [PATCH] Fix #3373 and #3349 - windows filenames --- .../src/dotty/tools/dotc/core/NameKinds.scala | 4 ++-- .../dotty/tools/dotc/util/NameTransformer.scala | 2 +- .../tools/dotc/reporting/TestReporter.scala | 2 +- .../dotty/tools/dottydoc/model/factories.scala | 2 +- .../dotty/tools/dottydoc/staticsite/Site.scala | 16 +++------------- 5 files changed, 8 insertions(+), 18 deletions(-) diff --git a/compiler/src/dotty/tools/dotc/core/NameKinds.scala b/compiler/src/dotty/tools/dotc/core/NameKinds.scala index 8c2b1d431374..21c9f8853935 100644 --- a/compiler/src/dotty/tools/dotc/core/NameKinds.scala +++ b/compiler/src/dotty/tools/dotc/core/NameKinds.scala @@ -92,7 +92,7 @@ object NameKinds { class PrefixNameKind(tag: Int, prefix: String, optInfoString: String = "") extends ClassifiedNameKind(tag, if (optInfoString.isEmpty) s"Prefix $prefix" else optInfoString) { def mkString(underlying: TermName, info: ThisInfo) = - underlying.qualToString(_.toString, n => prefix + n.toString) + underlying.qualToString(_.mangledString, n => prefix + n.mangled.toString) override def unmangle(name: SimpleName): TermName = if (name.startsWith(prefix)) apply(name.drop(prefix.length).asSimpleName) else name @@ -102,7 +102,7 @@ object NameKinds { class SuffixNameKind(tag: Int, suffix: String, optInfoString: String = "") extends ClassifiedNameKind(tag, if (optInfoString.isEmpty) s"Suffix $suffix" else optInfoString) { def mkString(underlying: TermName, info: ThisInfo) = - underlying.qualToString(_.toString, n => n.toString + suffix) + underlying.qualToString(_.mangledString, n => n.mangled.toString + suffix) override def unmangle(name: SimpleName): TermName = if (name.endsWith(suffix)) apply(name.take(name.length - suffix.length).asSimpleName) else name diff --git a/compiler/src/dotty/tools/dotc/util/NameTransformer.scala b/compiler/src/dotty/tools/dotc/util/NameTransformer.scala index 28271bec6281..ea8611b2571a 100644 --- a/compiler/src/dotty/tools/dotc/util/NameTransformer.scala +++ b/compiler/src/dotty/tools/dotc/util/NameTransformer.scala @@ -43,7 +43,7 @@ object NameTransformer { /* Encode characters that are illegal */ - def encodeSting(value: String): String = { + def encodeString(value: String): String = { val builder = new java.lang.StringBuilder value.foreach{ chr => lazy val t = op2code(chr) diff --git a/compiler/test/dotty/tools/dotc/reporting/TestReporter.scala b/compiler/test/dotty/tools/dotc/reporting/TestReporter.scala index 33b66311aa30..634bc2fdb4ff 100644 --- a/compiler/test/dotty/tools/dotc/reporting/TestReporter.scala +++ b/compiler/test/dotty/tools/dotc/reporting/TestReporter.scala @@ -86,7 +86,7 @@ object TestReporter { private[this] def initLog() = if (logWriter eq null) { val date = new Date val df0 = new SimpleDateFormat("yyyy-MM-dd") - val df1 = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss") + val df1 = new SimpleDateFormat("yyyy-MM-dd'T'HHmmss") val folder = s"../testlogs/tests-${df0.format(date)}" new JFile(folder).mkdirs() outFile = new JFile(s"$folder/tests-${df1.format(date)}.log") diff --git a/doc-tool/src/dotty/tools/dottydoc/model/factories.scala b/doc-tool/src/dotty/tools/dottydoc/model/factories.scala index b1f3e530ee55..d64b6711ca8c 100644 --- a/doc-tool/src/dotty/tools/dottydoc/model/factories.scala +++ b/doc-tool/src/dotty/tools/dottydoc/model/factories.scala @@ -31,7 +31,7 @@ object factories { def path(sym: Symbol)(implicit ctx: Context): List[String] = sym match { case sym if sym.name.decode.toString == "" => Nil - case sym => path(sym.owner) :+ sym.name.show + case sym => path(sym.owner) :+ sym.name.mangledString } def annotations(sym: Symbol)(implicit ctx: Context): List[String] = diff --git a/doc-tool/src/dotty/tools/dottydoc/staticsite/Site.scala b/doc-tool/src/dotty/tools/dottydoc/staticsite/Site.scala index 317d1863a39d..49818417d28b 100644 --- a/doc-tool/src/dotty/tools/dottydoc/staticsite/Site.scala +++ b/doc-tool/src/dotty/tools/dottydoc/staticsite/Site.scala @@ -5,7 +5,7 @@ package staticsite import java.nio.file.{FileSystems, Files} import java.nio.file.StandardCopyOption.REPLACE_EXISTING import java.io.{BufferedWriter, ByteArrayInputStream, OutputStreamWriter, File => JFile} -import java.util.{Arrays, List => JList, Map => JMap} +import java.util.{Arrays, List => JList} import java.nio.file.Path import java.nio.charset.StandardCharsets @@ -20,7 +20,7 @@ import com.vladsch.flexmark.ext.anchorlink.AnchorLinkExtension import com.vladsch.flexmark.ext.front.matter.YamlFrontMatterExtension import com.vladsch.flexmark.util.options.{DataHolder, MutableDataSet} import dotc.core.Contexts.Context -import dotc.util.{NameTransformer, SourceFile} +import dotc.util.SourceFile import model.Package import scala.io.{Codec, Source} @@ -193,7 +193,6 @@ case class Site( def generateApiDocs(outDir: JFile = new JFile(root.getAbsolutePath + "/_site"))(implicit ctx: Context): this.type = createOutput(outDir) { def genDoc(e: model.Entity): Unit = { - ctx.docbase.echo(s"Generating doc page for: ${e.path.mkString(".")}") // Suffix is index.html for packages and therefore the additional depth // is increased by 1 @@ -201,16 +200,7 @@ case class Site( if (e.kind == "package") ("/index.html", -1) else (".html", 0) - // Mangle last path element - def genPath(path: List[String]): String = { - def loop(path: List[String], acc: String): String = path match { - case h :: Nil => s"$acc/${NameTransformer.encodeSting(h)}" - case h :: t => loop(t, s"$acc/$h") - } - loop(path, "") - } - - val target: Path = mkdirs(fs.getPath(outDir.getAbsolutePath + "/api/" + genPath(e.path) + suffix)) + val target: Path = mkdirs(fs.getPath(outDir.getAbsolutePath + "/api/" + e.path.mkString("/") + suffix)) val params = defaultParams(target.toFile, -1).withPosts(blogInfo).withEntity(e).toMap val page = new HtmlPage("_layouts/api-page.html", layouts("api-page").content, params, includes)