Skip to content

Commit

Permalink
Fix scala#3373 and scala#3349 - windows filenames
Browse files Browse the repository at this point in the history
  • Loading branch information
rsoeldner committed Oct 31, 2017
1 parent ae45b9e commit e327695
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 18 deletions.
4 changes: 2 additions & 2 deletions compiler/src/dotty/tools/dotc/core/NameKinds.scala
Expand Up @@ -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
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion compiler/src/dotty/tools/dotc/util/NameTransformer.scala
Expand Up @@ -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)
Expand Down
Expand Up @@ -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")
Expand Down
2 changes: 1 addition & 1 deletion doc-tool/src/dotty/tools/dottydoc/model/factories.scala
Expand Up @@ -31,7 +31,7 @@ object factories {

def path(sym: Symbol)(implicit ctx: Context): List[String] = sym match {
case sym if sym.name.decode.toString == "<root>" => 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] =
Expand Down
16 changes: 3 additions & 13 deletions doc-tool/src/dotty/tools/dottydoc/staticsite/Site.scala
Expand Up @@ -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

Expand All @@ -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}
Expand Down Expand Up @@ -193,24 +193,14 @@ 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
val (suffix, offset) =
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)

Expand Down

0 comments on commit e327695

Please sign in to comment.