aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/backend/sjs/JSPositions.scala
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2016-10-26 16:19:35 +0200
committerGuillaume Martres <smarter@ubuntu.com>2016-11-22 01:35:06 +0100
commit06a3d47ea9fd1b67b3acba9d115a16d18549e377 (patch)
tree36311873f40e1410154c50d00abb03715619e8cc /src/dotty/tools/backend/sjs/JSPositions.scala
parent0da788c52121e44de6be0cdc7a0c4c6e1b125ff9 (diff)
downloaddotty-06a3d47ea9fd1b67b3acba9d115a16d18549e377.tar.gz
dotty-06a3d47ea9fd1b67b3acba9d115a16d18549e377.tar.bz2
dotty-06a3d47ea9fd1b67b3acba9d115a16d18549e377.zip
Move sjs, make sure that partest compiles everything in dirs
Diffstat (limited to 'src/dotty/tools/backend/sjs/JSPositions.scala')
-rw-r--r--src/dotty/tools/backend/sjs/JSPositions.scala65
1 files changed, 0 insertions, 65 deletions
diff --git a/src/dotty/tools/backend/sjs/JSPositions.scala b/src/dotty/tools/backend/sjs/JSPositions.scala
deleted file mode 100644
index 10570da00..000000000
--- a/src/dotty/tools/backend/sjs/JSPositions.scala
+++ /dev/null
@@ -1,65 +0,0 @@
-package dotty.tools.backend.sjs
-
-import dotty.tools.dotc.core._
-import Contexts._
-import dotty.tools.dotc.util.Positions
-import Positions.Position
-
-import org.scalajs.core.ir
-
-/** Conversion utilities from dotty Positions to IR Positions. */
-class JSPositions()(implicit ctx: Context) {
-
- /** Implicit conversion from dotty Position to ir.Position. */
- implicit def pos2irPos(pos: Positions.Position): ir.Position = {
- if (!pos.exists) ir.Position.NoPosition
- else {
- val source = pos2irPosCache.toIRSource(ctx.compilationUnit.source)
- val sourcePos = ctx.compilationUnit.source.atPos(pos)
- // dotty positions are 1-based but IR positions are 0-based
- ir.Position(source, sourcePos.line-1, sourcePos.column-1)
- }
- }
-
- /** Implicitly materializes an ir.Position from an implicit dotty Position. */
- implicit def implicitPos2irPos(
- implicit pos: Positions.Position): ir.Position = {
- pos2irPos(pos)
- }
-
- private[this] object pos2irPosCache { // scalastyle:ignore
- import dotty.tools.dotc.util._
-
- private[this] var lastDotcSource: SourceFile = null
- private[this] var lastIRSource: ir.Position.SourceFile = null
-
- def toIRSource(dotcSource: SourceFile): ir.Position.SourceFile = {
- if (dotcSource != lastDotcSource) {
- lastIRSource = convert(dotcSource)
- lastDotcSource = dotcSource
- }
- lastIRSource
- }
-
- private[this] def convert(dotcSource: SourceFile): ir.Position.SourceFile = {
- dotcSource.file.file match {
- case null =>
- new java.net.URI(
- "virtualfile", // Pseudo-Scheme
- dotcSource.file.path, // Scheme specific part
- null // Fragment
- )
- case file =>
- val srcURI = file.toURI
- def matches(pat: java.net.URI) = pat.relativize(srcURI) != srcURI
-
- // TODO
- /*scalaJSOpts.sourceURIMaps.collectFirst {
- case ScalaJSOptions.URIMap(from, to) if matches(from) =>
- val relURI = from.relativize(srcURI)
- to.fold(relURI)(_.resolve(relURI))
- } getOrElse*/ srcURI
- }
- }
- }
-}