Skip to content

Commit c844809

Browse files
authored
Merge pull request #2062 from dotty-staging/fix/scala-reflect-dep
Remove most uses of scala-reflect jar
2 parents 3c4d29e + a2b3bc1 commit c844809

39 files changed

+388
-71
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package dotty.tools
2+
3+
case class FatalError(msg: String) extends Exception(msg)

compiler/src/dotty/tools/backend/jvm/CollectEntryPoints.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import java.io.{File => JFile}
1515
import scala.collection.generic.Clearable
1616
import scala.collection.mutable
1717
import scala.reflect.ClassTag
18-
import scala.reflect.internal.util.WeakHashSet
1918
import scala.reflect.io.{Directory, PlainDirectory, AbstractFile}
2019
import scala.tools.asm.{ClassVisitor, FieldVisitor, MethodVisitor}
2120
import scala.tools.nsc.backend.jvm.{BCodeHelpers, BackendInterface}

compiler/src/dotty/tools/backend/jvm/LabelDefs.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import scala.collection.generic.Clearable
1616
import scala.collection.mutable
1717
import scala.collection.mutable.{ListBuffer, ArrayBuffer}
1818
import scala.reflect.ClassTag
19-
import scala.reflect.internal.util.WeakHashSet
2019
import scala.reflect.io.{Directory, PlainDirectory, AbstractFile}
2120
import scala.tools.asm.{ClassVisitor, FieldVisitor, MethodVisitor}
2221
import scala.tools.nsc.backend.jvm.{BCodeHelpers, BackendInterface}

compiler/src/dotty/tools/dotc/ast/TreeInfo.scala

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,16 @@ trait TreeInfo[T >: Untyped <: Type] { self: Trees.Instance[T] =>
3131
* Does tree contain an initialization part when seen as a member of a class or trait?
3232
*/
3333
def defKind(tree: Tree): FlagSet = unsplice(tree) match {
34-
case EmptyTree | _: Import => NoInitsInterface
35-
case tree: TypeDef => if (tree.isClassDef) NoInits else NoInitsInterface
36-
case tree: DefDef => if (tree.unforcedRhs == EmptyTree) NoInitsInterface else NoInits
37-
case tree: ValDef => if (tree.unforcedRhs == EmptyTree) NoInitsInterface else EmptyFlags
38-
case _ => EmptyFlags
34+
case EmptyTree | _: Import =>
35+
NoInitsInterface
36+
case tree: TypeDef =>
37+
if (tree.isClassDef) NoInits else NoInitsInterface
38+
case tree: DefDef =>
39+
if (tree.unforcedRhs == EmptyTree && tree.vparamss.forall(_.forall(_.unforcedRhs == EmptyTree))) NoInitsInterface else NoInits
40+
case tree: ValDef =>
41+
if (tree.unforcedRhs == EmptyTree) NoInitsInterface else EmptyFlags
42+
case _ =>
43+
EmptyFlags
3944
}
4045

4146
def isOpAssign(tree: Tree) = unsplice(tree) match {

compiler/src/dotty/tools/dotc/config/Settings.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package config
33

44
import collection.mutable.{ ArrayBuffer }
55
import scala.util.{ Try, Success, Failure }
6-
import scala.reflect.internal.util.StringOps
76
import reflect.ClassTag
87
import core.Contexts._
98
// import annotation.unchecked

compiler/src/dotty/tools/dotc/core/Decorators.scala

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,22 @@ import printing.Formatting._
1515
object Decorators {
1616

1717
/** Turns Strings into PreNames, adding toType/TermName methods */
18-
implicit class StringDecorator(val s: String) extends AnyVal with PreName {
18+
implicit class PreNamedString(val s: String) extends AnyVal with PreName {
1919
def toTypeName: TypeName = typeName(s)
2020
def toTermName: TermName = termName(s)
2121
def toText(printer: Printer): Text = Str(s)
2222
}
2323

24+
implicit class StringDecorator(val s: String) extends AnyVal {
25+
def splitWhere(f: Char => Boolean, doDropIndex: Boolean): Option[(String, String)] = {
26+
def splitAt(idx: Int, doDropIndex: Boolean): Option[(String, String)] =
27+
if (idx == -1) None
28+
else Some((s.take(idx), s.drop(if (doDropIndex) idx + 1 else idx)))
29+
30+
splitAt(s.indexWhere(f), doDropIndex)
31+
}
32+
}
33+
2434
/** Implements a findSymbol method on iterators of Symbols that
2535
* works like find but avoids Option, replacing None with NoSymbol.
2636
*/

compiler/src/dotty/tools/dotc/core/Definitions.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import scala.collection.{ mutable, immutable }
1010
import PartialFunction._
1111
import collection.mutable
1212
import util.common.alwaysZero
13-
import scala.reflect.api.{ Universe => ApiUniverse }
1413

1514
object Definitions {
1615

compiler/src/dotty/tools/dotc/core/NameOps.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import java.security.MessageDigest
55
import scala.annotation.switch
66
import scala.io.Codec
77
import Names._, StdNames._, Contexts._, Symbols._, Flags._
8-
import Decorators.StringDecorator
8+
import Decorators.PreNamedString
99
import util.{Chars, NameTransformer}
1010
import Chars.isOperatorPart
1111
import Definitions._

compiler/src/dotty/tools/dotc/core/StdNames.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import scala.annotation.switch
77
import Names._
88
import Symbols._
99
import Contexts._
10-
import Decorators.StringDecorator
10+
import Decorators.PreNamedString
1111
import util.NameTransformer
1212
import scala.collection.breakOut
1313

compiler/src/dotty/tools/dotc/core/SymbolLoaders.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import scala.compat.Platform.currentTime
1212
import dotty.tools.io.{ ClassPath, AbstractFile }
1313
import Contexts._, Symbols._, Flags._, SymDenotations._, Types._, Scopes._, util.Positions._, Names._
1414
import StdNames._, NameOps._
15-
import Decorators.{StringDecorator, StringInterpolators}
15+
import Decorators.{PreNamedString, StringInterpolators}
1616
import classfile.ClassfileParser
1717
import scala.util.control.NonFatal
1818

0 commit comments

Comments
 (0)