diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-09-09 17:28:17 +0200 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-09-17 18:07:17 +0200 |
commit | c2402d232a7531778f71fc033da4d83bf7f06212 (patch) | |
tree | 0e510acfb3e23607e1e060841e9eea459e4a4457 /src | |
parent | 80d8634fcabe709cb56fb827acd0fc640effcfdb (diff) | |
download | dotty-c2402d232a7531778f71fc033da4d83bf7f06212.tar.gz dotty-c2402d232a7531778f71fc033da4d83bf7f06212.tar.bz2 dotty-c2402d232a7531778f71fc033da4d83bf7f06212.zip |
After merge fixes
Diffstat (limited to 'src')
-rw-r--r-- | src/dotty/tools/dotc/core/Definitions.scala | 9 | ||||
-rw-r--r-- | src/dotty/tools/dotc/transform/ExplicitOuter.scala | 2 | ||||
-rw-r--r-- | src/dotty/tools/dotc/transform/PatternMatcher.scala | 16 |
3 files changed, 9 insertions, 18 deletions
diff --git a/src/dotty/tools/dotc/core/Definitions.scala b/src/dotty/tools/dotc/core/Definitions.scala index a47cae560..1bc60f053 100644 --- a/src/dotty/tools/dotc/core/Definitions.scala +++ b/src/dotty/tools/dotc/core/Definitions.scala @@ -211,7 +211,7 @@ class Definitions { lazy val Array_update = ctx.requiredMethod(ArrayClass, nme.update) lazy val Array_length = ctx.requiredMethod(ArrayClass, nme.length) lazy val Array_clone = ctx.requiredMethod(ArrayClass, nme.clone_) - lazy val traversableDropMethod = ctx.requiredMethod(ScalaRuntimeModuleClass, nme.drop) + lazy val traversableDropMethod = ctx.requiredMethod(ScalaRuntimeClass, nme.drop) lazy val uncheckedStableClass: ClassSymbol = ctx.requiredClass("scala.annotation.unchecked.uncheckedStable") lazy val UnitClass = valueClassSymbol("scala.Unit", BoxedUnitClass, java.lang.Void.TYPE, UnitEnc) @@ -423,17 +423,11 @@ class Definitions { lazy val TupleClasses: Set[Symbol] = TupleClass.toSet lazy val ProductClasses: Set[Symbol] = ProductNClass.toSet - lazy val RepeatedParamClasses: Set[Symbol] = Set(RepeatedParamClass, JavaRepeatedParamClass) - /** `Modules whose members are in the default namespace and their module classes */ lazy val UnqualifiedOwners = RootImports.toSet ++ RootImports.map(_.moduleClass) lazy val PhantomClasses = Set[Symbol](AnyClass, AnyValClass, NullClass, NothingClass) - lazy val asInstanceOfMethods = Set[Symbol](Any_asInstanceOf) - lazy val isInstanceOfMethods = Set[Symbol](Any_isInstanceOf) - lazy val typeTestsOrCasts = asInstanceOfMethods ++ isInstanceOfMethods - lazy val RootImports = List[Symbol](JavaLangPackageVal, ScalaPackageVal, ScalaPredefModule, DottyPredefModule) lazy val overriddenBySynthetic = Set[Symbol](Any_equals, Any_hashCode, Any_toString, Product_canEqual) @@ -595,7 +589,6 @@ class Definitions { AnyClass, AnyRefAlias, RepeatedParamClass, - JavaRepeatedParamClass, ByNameParamClass2x, AnyValClass, NullClass, diff --git a/src/dotty/tools/dotc/transform/ExplicitOuter.scala b/src/dotty/tools/dotc/transform/ExplicitOuter.scala index a814f302f..b13ea6c8a 100644 --- a/src/dotty/tools/dotc/transform/ExplicitOuter.scala +++ b/src/dotty/tools/dotc/transform/ExplicitOuter.scala @@ -29,7 +29,7 @@ import collection.mutable * - replace outer this by outer paths. */ class ExplicitOuter extends MiniPhaseTransform with InfoTransformer { thisTransformer => - imoport ExplicitOuter._ + import ExplicitOuter._ import ast.tpd._ val Outer = new Attachment.Key[Tree] diff --git a/src/dotty/tools/dotc/transform/PatternMatcher.scala b/src/dotty/tools/dotc/transform/PatternMatcher.scala index 8e41b4c9d..6ceb0398b 100644 --- a/src/dotty/tools/dotc/transform/PatternMatcher.scala +++ b/src/dotty/tools/dotc/transform/PatternMatcher.scala @@ -36,10 +36,10 @@ class PatternMatcher extends MiniPhaseTransform { import dotty.tools.dotc.ast.tpd._ - /** List of names of phases that should precede this phase */ - override def runsAfter: Set[String] = Set("elimrepeated") + override def runsAfter = Set(classOf[ElimRepeated]) + + override def phaseName = "patternMatcher" - def name: String = "patternMatcher" var _id = 0 override def transformMatch(tree: tpd.Match)(implicit ctx: Context, info: TransformerInfo): tpd.Tree = { @@ -542,7 +542,7 @@ class PatternMatcher extends MiniPhaseTransform { val nullCheck: Tree = ref(prevBinder).select(ctx.definitions.Object_ne).appliedTo(Literal(Constant(null))) val cond: Option[Tree] = if (binderKnownNonNull) extraCond - else extraCond.map(nullCheck.select(ctx.definitions.Boolean_and).appliedTo).orElse(Some(nullCheck)) + else extraCond.map(nullCheck.select(ctx.definitions.Boolean_&&).appliedTo).orElse(Some(nullCheck)) cond match { case Some(cond: Tree) => @@ -593,7 +593,7 @@ class PatternMatcher extends MiniPhaseTransform { object treeCondStrategy extends TypeTestCondStrategy { type Result = Tree - def and(a: Result, b: Result): Result = a.select(ctx.definitions.Boolean_and).appliedTo(b) + def and(a: Result, b: Result): Result = a.select(ctx.definitions.Boolean_&&).appliedTo(b) def tru = Literal(Constant(true)) def typeTest(testedBinder: Symbol, expectedTp: Type) = codegen._isInstanceOf(testedBinder, expectedTp) def nonNullTest(testedBinder: Symbol) = ref(testedBinder).select(ctx.definitions.Object_ne).appliedTo(Literal(Constant(null))) @@ -759,7 +759,7 @@ class PatternMatcher extends MiniPhaseTransform { // - Scala's arrays are invariant (so we don't drop type tests unsoundly) if (extractorArgTypeTest) mkDefault else expectedTp match { - case ThisType(sym) if sym.flags is Flags.Module => and(mkEqualsTest(ref(sym)), mkTypeTest) // must use == to support e.g. List() == Nil + case ThisType(tref) if tref.symbol.flags is Flags.Module => and(mkEqualsTest(ref(tref.symbol)), mkTypeTest) // must use == to support e.g. List() == Nil case ConstantType(Constant(null)) if isAnyRef => mkEqTest(expTp(Literal(Constant(null)))) case ConstantType(const) => mkEqualsTest(expTp(Literal(const))) case t:SingletonType => mkEqTest(singleton(expectedTp)) // SI-4577, SI-4897 @@ -1486,7 +1486,7 @@ class PatternMatcher extends MiniPhaseTransform { else _.select(defn.Int_==).appliedTo(_) // `if (binder != null && $checkExpectedLength [== | >=] 0) then else zero` - (seqTree(binder).select(defn.Any_!=).appliedTo(Literal(Constant(null)))).select(defn.Boolean_and).appliedTo(compareOp(checkExpectedLength, Literal(Constant(0)))) + (seqTree(binder).select(defn.Any_!=).appliedTo(Literal(Constant(null)))).select(defn.Boolean_&&).appliedTo(compareOp(checkExpectedLength, Literal(Constant(0)))) } def checkedLength: Option[Int] = @@ -1804,8 +1804,6 @@ class PatternMatcher extends MiniPhaseTransform { */ def unapplyMethodTypes(tree:Tree, fun: Tree, args:List[Tree], resultType:Type, isSeq: Boolean): Extractor = { _id = _id + 1 - if(_id == 3) - println("here") val whole = fun.tpe.widen.paramTypess.headOption.flatMap(_.headOption).getOrElse(NoType)//firstParamType(method) val resultOfGet = extractorMemberType(resultType, nme.get) |