From 3896a416faffe337a96f873214b02f231f306174 Mon Sep 17 00:00:00 2001 From: Eugene Burmako Date: Wed, 6 Jun 2012 10:37:31 +0200 Subject: miscellaneous cleanup, mostly fighting with feature warnings --- .../scala/reflect/internal/BaseTypeSeqs.scala | 6 +-- src/compiler/scala/reflect/internal/Chars.scala | 4 +- .../scala/reflect/internal/Definitions.scala | 2 +- .../scala/reflect/internal/Importers.scala | 6 +-- .../scala/reflect/internal/StdAttachments.scala | 2 - src/compiler/scala/reflect/internal/StdNames.scala | 10 ++-- src/compiler/scala/reflect/internal/Symbols.scala | 6 +-- .../scala/reflect/internal/TypeDebugging.scala | 2 +- src/compiler/scala/reflect/internal/Types.scala | 1 + .../reflect/internal/pickling/UnPickler.scala | 2 +- .../reflect/internal/transform/Transforms.scala | 2 + .../internal/util/TraceSymbolActivity.scala | 1 + .../scala/reflect/makro/runtime/Context.scala | 2 +- .../scala/reflect/makro/runtime/ExprUtils.scala | 35 ++++++++++++++ .../scala/reflect/makro/runtime/Names.scala | 9 ++-- .../scala/reflect/makro/runtime/Util.scala | 34 -------------- src/compiler/scala/reflect/reify/Errors.scala | 3 +- src/compiler/scala/reflect/reify/Phases.scala | 3 +- src/compiler/scala/reflect/reify/Reifier.scala | 3 +- .../scala/reflect/reify/phases/Reshape.scala | 6 +-- src/compiler/scala/tools/ant/FastScalac.scala | 2 +- src/compiler/scala/tools/ant/Scalac.scala | 2 +- src/compiler/scala/tools/cmd/CommandLine.scala | 1 + src/compiler/scala/tools/cmd/gen/Codegen.scala | 2 + .../scala/tools/nsc/ast/parser/Scanners.scala | 2 +- .../scala/tools/nsc/backend/jvm/GenJVM.scala | 4 +- .../scala/tools/nsc/interpreter/TypeStrings.scala | 1 + .../scala/tools/nsc/transform/Erasure.scala | 1 - .../tools/nsc/transform/SpecializeTypes.scala | 1 + .../tools/nsc/typechecker/DestructureTypes.scala | 2 + .../scala/tools/nsc/typechecker/Implicits.scala | 3 +- .../scala/tools/nsc/typechecker/Macros.scala | 54 +++++++++++----------- .../scala/tools/nsc/typechecker/Typers.scala | 5 +- .../scala/tools/reflect/WrappedProperties.scala | 4 +- src/compiler/scala/tools/util/Javap.scala | 1 + src/compiler/scala/tools/util/PathResolver.scala | 1 + src/library/scala/collection/generic/package.scala | 2 + src/library/scala/languageFeature.scala | 14 +++--- src/library/scala/reflect/NameTransformer.scala | 4 +- src/library/scala/reflect/ScalaLongSignature.java | 4 +- src/library/scala/reflect/ScalaSignature.java | 3 +- src/library/scala/reflect/api/Exprs.scala | 2 +- src/library/scala/reflect/makro/Aliases.scala | 3 +- .../scala/reflect/makro/CapturedVariables.scala | 3 +- src/library/scala/reflect/makro/Context.scala | 5 +- src/library/scala/reflect/makro/Enclosures.scala | 3 +- src/library/scala/reflect/makro/Evals.scala | 3 +- src/library/scala/reflect/makro/ExprUtils.scala | 32 +++++++++++++ src/library/scala/reflect/makro/Exprs.scala | 3 +- src/library/scala/reflect/makro/FrontEnds.scala | 3 +- .../scala/reflect/makro/Infrastructure.scala | 3 +- src/library/scala/reflect/makro/Names.scala | 3 +- src/library/scala/reflect/makro/Parsers.scala | 3 +- src/library/scala/reflect/makro/Reifiers.scala | 5 +- src/library/scala/reflect/makro/Settings.scala | 4 +- src/library/scala/reflect/makro/TreeBuilder.scala | 3 +- src/library/scala/reflect/makro/TypeTags.scala | 3 +- src/library/scala/reflect/makro/Typers.scala | 3 +- src/library/scala/reflect/makro/Universe.scala | 7 +-- src/library/scala/reflect/makro/Util.scala | 31 ------------- .../scala/reflect/makro/internal/package.scala | 4 +- 61 files changed, 206 insertions(+), 172 deletions(-) create mode 100644 src/compiler/scala/reflect/makro/runtime/ExprUtils.scala delete mode 100644 src/compiler/scala/reflect/makro/runtime/Util.scala create mode 100644 src/library/scala/reflect/makro/ExprUtils.scala delete mode 100644 src/library/scala/reflect/makro/Util.scala diff --git a/src/compiler/scala/reflect/internal/BaseTypeSeqs.scala b/src/compiler/scala/reflect/internal/BaseTypeSeqs.scala index 3753a45133..e07f1bac49 100644 --- a/src/compiler/scala/reflect/internal/BaseTypeSeqs.scala +++ b/src/compiler/scala/reflect/internal/BaseTypeSeqs.scala @@ -225,9 +225,9 @@ trait BaseTypeSeqs { nextRawElem(i) match { case RefinedType(variants, decls) => for (tp <- variants) - if (!(minTypes exists (tp =:=))) minTypes = tp :: minTypes + if (!(minTypes exists (tp =:= _))) minTypes = tp :: minTypes case tp => - if (!(minTypes exists (tp =:=))) minTypes = tp :: minTypes + if (!(minTypes exists (tp =:= _))) minTypes = tp :: minTypes } index(i) = index(i) + 1 } @@ -252,7 +252,7 @@ trait BaseTypeSeqs { override def map(g: Type => Type) = lateMap(g) override def lateMap(g: Type => Type) = orig.lateMap(x => g(f(x))) override def exists(p: Type => Boolean) = elems exists (x => p(f(x))) - override protected def maxDepthOfElems: Int = elems map (x => maxDpth(f(x))) max + override protected def maxDepthOfElems: Int = (elems map (x => maxDpth(f(x)))).max override def toString = elems.mkString("MBTS(", ",", ")") } diff --git a/src/compiler/scala/reflect/internal/Chars.scala b/src/compiler/scala/reflect/internal/Chars.scala index f2c90a6721..50ec71094a 100644 --- a/src/compiler/scala/reflect/internal/Chars.scala +++ b/src/compiler/scala/reflect/internal/Chars.scala @@ -2,10 +2,12 @@ * Copyright 2006-2011 LAMP/EPFL * @author Martin Odersky */ -package scala.reflect.internal +package scala.reflect +package internal import annotation.{ tailrec, switch } import java.lang.{ Character => JCharacter } +import language.postfixOps /** Contains constants and classifier methods for characters */ trait Chars { diff --git a/src/compiler/scala/reflect/internal/Definitions.scala b/src/compiler/scala/reflect/internal/Definitions.scala index 3b32d475ce..d55b38224d 100644 --- a/src/compiler/scala/reflect/internal/Definitions.scala +++ b/src/compiler/scala/reflect/internal/Definitions.scala @@ -770,7 +770,7 @@ trait Definitions extends api.StandardDefinitions { existentialAbstraction( eparams, - ClassType(eparams.head setInfo TypeBounds.upper(upperBound) tpe) + ClassType((eparams.head setInfo TypeBounds.upper(upperBound)).tpe) ) } } diff --git a/src/compiler/scala/reflect/internal/Importers.scala b/src/compiler/scala/reflect/internal/Importers.scala index 72b6288d87..431d9819a5 100644 --- a/src/compiler/scala/reflect/internal/Importers.scala +++ b/src/compiler/scala/reflect/internal/Importers.scala @@ -417,17 +417,17 @@ trait Importers { self: SymbolTable => } addFixup({ if (mytree != null) { - val mysym = if (tree hasSymbol) importSymbol(tree.symbol) else NoSymbol + val mysym = if (tree.hasSymbol) importSymbol(tree.symbol) else NoSymbol val mytpe = importType(tree.tpe) mytree match { case mytt: TypeTree => val tt = tree.asInstanceOf[from.TypeTree] - if (mytree hasSymbol) mytt.symbol = mysym + if (mytree.hasSymbol) mytt.symbol = mysym if (tt.wasEmpty) mytt.defineType(mytpe) else mytt.setType(mytpe) if (tt.original != null) mytt.setOriginal(importTree(tt.original)) case _ => - if (mytree hasSymbol) mytree.symbol = importSymbol(tree.symbol) + if (mytree.hasSymbol) mytree.symbol = importSymbol(tree.symbol) mytree.tpe = importType(tree.tpe) } } diff --git a/src/compiler/scala/reflect/internal/StdAttachments.scala b/src/compiler/scala/reflect/internal/StdAttachments.scala index df1a1267de..4ea9b27da9 100644 --- a/src/compiler/scala/reflect/internal/StdAttachments.scala +++ b/src/compiler/scala/reflect/internal/StdAttachments.scala @@ -1,8 +1,6 @@ package scala.reflect package internal -import scala.reflect.makro.runtime.{Context => MacroContext} - trait StdAttachments { self: SymbolTable => diff --git a/src/compiler/scala/reflect/internal/StdNames.scala b/src/compiler/scala/reflect/internal/StdNames.scala index 0e5f3efb49..6f68b8f63a 100644 --- a/src/compiler/scala/reflect/internal/StdNames.scala +++ b/src/compiler/scala/reflect/internal/StdNames.scala @@ -72,7 +72,7 @@ trait StdNames { val cs = s.toArray val bytes = Codec toUTF8 cs md5 update bytes - val md5chars = md5.digest() map (b => (b & 0xFF).toHexString) mkString + val md5chars = (md5.digest() map (b => (b & 0xFF).toHexString)).mkString prefix + marker + md5chars + marker + suffix } @@ -262,10 +262,10 @@ trait StdNames { final val SourceFileATTR: NameType = "SourceFile" final val SyntheticATTR: NameType = "Synthetic" - def dropSingletonName(name: Name): TypeName = name dropRight SINGLETON_SUFFIX.length toTypeName - def singletonName(name: Name): TypeName = name append SINGLETON_SUFFIX toTypeName - def implClassName(name: Name): TypeName = name append IMPL_CLASS_SUFFIX toTypeName - def interfaceName(implname: Name): TypeName = implname dropRight IMPL_CLASS_SUFFIX.length toTypeName + def dropSingletonName(name: Name): TypeName = (name dropRight SINGLETON_SUFFIX.length).toTypeName + def singletonName(name: Name): TypeName = (name append SINGLETON_SUFFIX).toTypeName + def implClassName(name: Name): TypeName = (name append IMPL_CLASS_SUFFIX).toTypeName + def interfaceName(implname: Name): TypeName = (implname dropRight IMPL_CLASS_SUFFIX.length).toTypeName } abstract class TermNames extends Keywords with TermNamesApi { diff --git a/src/compiler/scala/reflect/internal/Symbols.scala b/src/compiler/scala/reflect/internal/Symbols.scala index 7305cdaf16..86693cf880 100644 --- a/src/compiler/scala/reflect/internal/Symbols.scala +++ b/src/compiler/scala/reflect/internal/Symbols.scala @@ -1667,7 +1667,7 @@ trait Symbols extends api.Symbols { self: SymbolTable => * The empty list for all other classes. */ final def caseFieldAccessors: List[Symbol] = - info.decls filter (_.isCaseAccessorMethod) toList + (info.decls filter (_.isCaseAccessorMethod)).toList final def constrParamAccessors: List[Symbol] = info.decls.toList filter (sym => !sym.isMethod && sym.isParamAccessor) @@ -1730,7 +1730,7 @@ trait Symbols extends api.Symbols { self: SymbolTable => */ def mixinClasses: List[Symbol] = { val sc = superClass - ancestors takeWhile (sc ne) + ancestors takeWhile (sc ne _) } /** All directly or indirectly inherited classes. */ @@ -1994,7 +1994,7 @@ trait Symbols extends api.Symbols { self: SymbolTable => * pre: `this.owner` is in the base class sequence of `base`. */ final def superSymbol(base: Symbol): Symbol = { - var bcs = base.info.baseClasses.dropWhile(owner !=).tail + var bcs = base.info.baseClasses.dropWhile(owner != _).tail var sym: Symbol = NoSymbol while (!bcs.isEmpty && sym == NoSymbol) { if (!bcs.head.isImplClass) diff --git a/src/compiler/scala/reflect/internal/TypeDebugging.scala b/src/compiler/scala/reflect/internal/TypeDebugging.scala index 85a1767067..33f6a645e8 100644 --- a/src/compiler/scala/reflect/internal/TypeDebugging.scala +++ b/src/compiler/scala/reflect/internal/TypeDebugging.scala @@ -24,7 +24,7 @@ trait TypeDebugging { def ptBlock(label: String, pairs: (String, Any)*): String = { if (pairs.isEmpty) label + "{ }" else { - val width = pairs map (_._1.length) max + val width = (pairs map (_._1.length)).max val fmt = "%-" + (width + 1) + "s %s" val strs = pairs map { case (k, v) => fmt.format(k, to_s(v)) } diff --git a/src/compiler/scala/reflect/internal/Types.scala b/src/compiler/scala/reflect/internal/Types.scala index ce7a697439..ada998bf9e 100644 --- a/src/compiler/scala/reflect/internal/Types.scala +++ b/src/compiler/scala/reflect/internal/Types.scala @@ -14,6 +14,7 @@ import Flags._ import scala.util.control.ControlThrowable import scala.annotation.tailrec import util.Statistics._ +import language.postfixOps /* A standard type pattern match: case ErrorType => diff --git a/src/compiler/scala/reflect/internal/pickling/UnPickler.scala b/src/compiler/scala/reflect/internal/pickling/UnPickler.scala index bfccdd3988..757163a074 100644 --- a/src/compiler/scala/reflect/internal/pickling/UnPickler.scala +++ b/src/compiler/scala/reflect/internal/pickling/UnPickler.scala @@ -358,7 +358,7 @@ abstract class UnPickler /*extends reflect.generic.UnPickler*/ { case POLYtpe => val restpe = readTypeRef() val typeParams = until(end, readSymbolRef) - if(typeParams nonEmpty) { + if (typeParams.nonEmpty) { // NMT_TRANSITION: old class files denoted a polymorphic nullary method as PolyType(tps, restpe), we now require PolyType(tps, NullaryMethodType(restpe)) // when a type of kind * is expected (forceProperType is true), we know restpe should be wrapped in a NullaryMethodType (if it wasn't suitably wrapped yet) def transitionNMT(restpe: Type) = { diff --git a/src/compiler/scala/reflect/internal/transform/Transforms.scala b/src/compiler/scala/reflect/internal/transform/Transforms.scala index a7cc99ba3b..c4c5dc3a1c 100644 --- a/src/compiler/scala/reflect/internal/transform/Transforms.scala +++ b/src/compiler/scala/reflect/internal/transform/Transforms.scala @@ -2,6 +2,8 @@ package scala.reflect package internal package transform +import language.existentials + trait Transforms { self: SymbolTable => /** We need to encode laziness by hand here because the three components refChecks, uncurry and erasure diff --git a/src/compiler/scala/reflect/internal/util/TraceSymbolActivity.scala b/src/compiler/scala/reflect/internal/util/TraceSymbolActivity.scala index d8c53c0162..5fbeb5f576 100644 --- a/src/compiler/scala/reflect/internal/util/TraceSymbolActivity.scala +++ b/src/compiler/scala/reflect/internal/util/TraceSymbolActivity.scala @@ -2,6 +2,7 @@ package scala.reflect.internal package util import scala.collection.{ mutable, immutable } +import language.postfixOps trait TraceSymbolActivity { val global: SymbolTable diff --git a/src/compiler/scala/reflect/makro/runtime/Context.scala b/src/compiler/scala/reflect/makro/runtime/Context.scala index 7fd7a358b8..c7563e7b67 100644 --- a/src/compiler/scala/reflect/makro/runtime/Context.scala +++ b/src/compiler/scala/reflect/makro/runtime/Context.scala @@ -18,7 +18,7 @@ abstract class Context extends scala.reflect.makro.Context with Exprs with TypeTags with Evals - with Util + with ExprUtils with Traces { val universe: Global diff --git a/src/compiler/scala/reflect/makro/runtime/ExprUtils.scala b/src/compiler/scala/reflect/makro/runtime/ExprUtils.scala new file mode 100644 index 0000000000..4775138e5a --- /dev/null +++ b/src/compiler/scala/reflect/makro/runtime/ExprUtils.scala @@ -0,0 +1,35 @@ +package scala.reflect.makro +package runtime + +trait ExprUtils { + self: Context => + + import universe._ + import mirror._ + + def literalNull = Expr[Null](Literal(Constant(null)))(TypeTag.Null) + + def literalUnit = Expr[Unit](Literal(Constant(())))(TypeTag.Unit) + + def literalTrue = Expr[Boolean](Literal(Constant(true)))(TypeTag.Boolean) + + def literalFalse = Expr[Boolean](Literal(Constant(false)))(TypeTag.Boolean) + + def literal(x: Boolean) = Expr[Boolean](Literal(Constant(x)))(TypeTag.Boolean) + + def literal(x: Byte) = Expr[Byte](Literal(Constant(x)))(TypeTag.Byte) + + def literal(x: Short) = Expr[Short](Literal(Constant(x)))(TypeTag.Short) + + def literal(x: Int) = Expr[Int](Literal(Constant(x)))(TypeTag.Int) + + def literal(x: Long) = Expr[Long](Literal(Constant(x)))(TypeTag.Long) + + def literal(x: Float) = Expr[Float](Literal(Constant(x)))(TypeTag.Float) + + def literal(x: Double) = Expr[Double](Literal(Constant(x)))(TypeTag.Double) + + def literal(x: String) = Expr[String](Literal(Constant(x)))(TypeTag.String) + + def literal(x: Char) = Expr[Char](Literal(Constant(x)))(TypeTag.Char) +} diff --git a/src/compiler/scala/reflect/makro/runtime/Names.scala b/src/compiler/scala/reflect/makro/runtime/Names.scala index 5b1a41a13d..3f43b15d90 100644 --- a/src/compiler/scala/reflect/makro/runtime/Names.scala +++ b/src/compiler/scala/reflect/makro/runtime/Names.scala @@ -6,15 +6,12 @@ trait Names { lazy val freshNameCreator = callsiteTyper.context.unit.fresh - def fresh(): String = { + def fresh(): String = freshNameCreator.newName() - } - def fresh(name: String): String = { + def fresh(name: String): String = freshNameCreator.newName(name) - } - def fresh[NameType <: Name](name: NameType): NameType = { + def fresh[NameType <: Name](name: NameType): NameType = name.mapName(freshNameCreator.newName(_)).asInstanceOf[NameType] - } } \ No newline at end of file diff --git a/src/compiler/scala/reflect/makro/runtime/Util.scala b/src/compiler/scala/reflect/makro/runtime/Util.scala deleted file mode 100644 index 09ed47efdd..0000000000 --- a/src/compiler/scala/reflect/makro/runtime/Util.scala +++ /dev/null @@ -1,34 +0,0 @@ -package scala.reflect.makro -package runtime - -trait Util { - self: Context => - - import universe._ - - def literalNull = Expr[Null](Literal(Constant(null)))(TypeTag.Null) - - def literalUnit = Expr[Unit](Literal(Constant(())))(TypeTag.Unit) - - def literalTrue = Expr[Boolean](Literal(Constant(true)))(TypeTag.Boolean) - - def literalFalse = Expr[Boolean](Literal(Constant(false)))(TypeTag.Boolean) - - def literal(x: Boolean) = Expr[Boolean](Literal(Constant(x)))(TypeTag.Boolean) - - def literal(x: Byte) = Expr[Byte](Literal(Constant(x)))(TypeTag.Byte) - - def literal(x: Short) = Expr[Short](Literal(Constant(x)))(TypeTag.Short) - - def literal(x: Int) = Expr[Int](Literal(Constant(x)))(TypeTag.Int) - - def literal(x: Long) = Expr[Long](Literal(Constant(x)))(TypeTag.Long) - - def literal(x: Float) = Expr[Float](Literal(Constant(x)))(TypeTag.Float) - - def literal(x: Double) = Expr[Double](Literal(Constant(x)))(TypeTag.Double) - - def literal(x: String) = Expr[String](Literal(Constant(x)))(TypeTag.String) - - def literal(x: Char) = Expr[Char](Literal(Constant(x)))(TypeTag.Char) -} diff --git a/src/compiler/scala/reflect/reify/Errors.scala b/src/compiler/scala/reflect/reify/Errors.scala index 824f237948..7f255dab44 100644 --- a/src/compiler/scala/reflect/reify/Errors.scala +++ b/src/compiler/scala/reflect/reify/Errors.scala @@ -1,5 +1,4 @@ -package scala.reflect -package reify +package scala.reflect.reify import scala.reflect.makro.ReificationError import scala.reflect.makro.UnexpectedReificationError diff --git a/src/compiler/scala/reflect/reify/Phases.scala b/src/compiler/scala/reflect/reify/Phases.scala index 54336ee708..1710cae2a5 100644 --- a/src/compiler/scala/reflect/reify/Phases.scala +++ b/src/compiler/scala/reflect/reify/Phases.scala @@ -1,5 +1,4 @@ -package scala.reflect -package reify +package scala.reflect.reify import phases._ diff --git a/src/compiler/scala/reflect/reify/Reifier.scala b/src/compiler/scala/reflect/reify/Reifier.scala index a5b2fef18c..00f25f0d8b 100644 --- a/src/compiler/scala/reflect/reify/Reifier.scala +++ b/src/compiler/scala/reflect/reify/Reifier.scala @@ -1,5 +1,4 @@ -package scala.reflect -package reify +package scala.reflect.reify import scala.tools.nsc.Global import scala.reflect.makro.ReificationError diff --git a/src/compiler/scala/reflect/reify/phases/Reshape.scala b/src/compiler/scala/reflect/reify/phases/Reshape.scala index 2a562d81e2..a508169019 100644 --- a/src/compiler/scala/reflect/reify/phases/Reshape.scala +++ b/src/compiler/scala/reflect/reify/phases/Reshape.scala @@ -252,7 +252,7 @@ trait Reshape { // [Eugene] is this implemented correctly? private def trimAccessors(deff: Tree, stats: List[Tree]): List[Tree] = { - val symdefs = stats collect { case vodef: ValOrDefDef => vodef } map (vodeff => vodeff.symbol -> vodeff) toMap + val symdefs = (stats collect { case vodef: ValOrDefDef => vodef } map (vodeff => vodeff.symbol -> vodeff)).toMap val accessors = collection.mutable.Map[ValDef, List[DefDef]]() stats collect { case ddef: DefDef => ddef } foreach (defdef => { val valdef = symdefs get defdef.symbol.accessedOrSelf collect { case vdef: ValDef => vdef } getOrElse null @@ -262,8 +262,8 @@ trait Reshape { if (defdef.name.startsWith(prefix)) { var name = defdef.name.toString.substring(prefix.length) def uncapitalize(s: String) = if (s.length == 0) "" else { val chars = s.toCharArray; chars(0) = chars(0).toLower; new String(chars) } - def findValDef(name: String) = symdefs.values collect { case vdef: ValDef if nme.dropLocalSuffix(vdef.name).toString == name => vdef } headOption; - val valdef = findValDef(name) orElse findValDef(uncapitalize(name)) orNull; + def findValDef(name: String) = (symdefs.values collect { case vdef: ValDef if nme.dropLocalSuffix(vdef.name).toString == name => vdef }).headOption + val valdef = findValDef(name).orElse(findValDef(uncapitalize(name))).orNull if (valdef != null) accessors(valdef) = accessors.getOrElse(valdef, Nil) :+ defdef } } diff --git a/src/compiler/scala/tools/ant/FastScalac.scala b/src/compiler/scala/tools/ant/FastScalac.scala index 19a1526e67..c0d7441ad5 100644 --- a/src/compiler/scala/tools/ant/FastScalac.scala +++ b/src/compiler/scala/tools/ant/FastScalac.scala @@ -157,7 +157,7 @@ class FastScalac extends Scalac { val scalaHome: String = try { val url = ScalaClassLoader.originOfClass(classOf[FastScalac]).get - File(url.getFile).jfile.getParentFile.getParentFile getAbsolutePath + File(url.getFile).jfile.getParentFile.getParentFile.getAbsolutePath } catch { case _ => buildError("Compilation failed because of an internal compiler error;"+ diff --git a/src/compiler/scala/tools/ant/Scalac.scala b/src/compiler/scala/tools/ant/Scalac.scala index 3c79fcd3fb..a34692f5e0 100644 --- a/src/compiler/scala/tools/ant/Scalac.scala +++ b/src/compiler/scala/tools/ant/Scalac.scala @@ -632,7 +632,7 @@ class Scalac extends ScalaMatchingTask with ScalacShared { case "none" => case x => val depFilePath = SPath(x) - command.settings.dependenciesFile.value = SPath(getProject.getBaseDir).normalize resolve depFilePath path + command.settings.dependenciesFile.value = SPath(getProject.getBaseDir).normalize.resolve(depFilePath).path } (command.settings, sourceFiles, javaOnly) diff --git a/src/compiler/scala/tools/cmd/CommandLine.scala b/src/compiler/scala/tools/cmd/CommandLine.scala index ced3a97380..d9a74a698c 100644 --- a/src/compiler/scala/tools/cmd/CommandLine.scala +++ b/src/compiler/scala/tools/cmd/CommandLine.scala @@ -7,6 +7,7 @@ package scala.tools package cmd import scala.collection.mutable.ListBuffer +import language.postfixOps trait CommandLineConfig { def enforceArity: Boolean = true diff --git a/src/compiler/scala/tools/cmd/gen/Codegen.scala b/src/compiler/scala/tools/cmd/gen/Codegen.scala index 1bb820455a..59b58563d1 100644 --- a/src/compiler/scala/tools/cmd/gen/Codegen.scala +++ b/src/compiler/scala/tools/cmd/gen/Codegen.scala @@ -6,6 +6,8 @@ package scala.tools.cmd package gen +import language.postfixOps + class Codegen(args: List[String]) extends { val parsed = CodegenSpec(args: _*) } with CodegenSpec with Instance { } diff --git a/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala b/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala index 87072f3172..1835f645b8 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala @@ -185,7 +185,7 @@ trait Scanners extends ScannersCommon { sepRegions.nonEmpty && sepRegions.head == STRINGLIT /** Are we directly in a multiline string interpolation expression? - * @pre: inStringInterpolation + * @pre inStringInterpolation */ @inline private def inMultiLineInterpolation = inStringInterpolation && sepRegions.tail.nonEmpty && sepRegions.tail.head == STRINGPART diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala index f302318185..747e7ef989 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala @@ -1711,7 +1711,7 @@ abstract class GenJVM extends SubComponent with GenJVMUtil with GenAndroid with abort("Unknown arithmetic primitive " + primitive) } - case Logical(op, kind) => (op, kind) match { + case Logical(op, kind) => ((op, kind): @unchecked) match { case (AND, LONG) => jcode.emitLAND() case (AND, INT) => jcode.emitIAND() case (AND, _) => @@ -1734,7 +1734,7 @@ abstract class GenJVM extends SubComponent with GenJVMUtil with GenAndroid with jcode.emitT2T(javaType(INT), javaType(kind)); } - case Shift(op, kind) => (op, kind) match { + case Shift(op, kind) => ((op, kind): @unchecked) match { case (LSL, LONG) => jcode.emitLSHL() case (LSL, INT) => jcode.emitISHL() case (LSL, _) => diff --git a/src/compiler/scala/tools/nsc/interpreter/TypeStrings.scala b/src/compiler/scala/tools/nsc/interpreter/TypeStrings.scala index 12bba9c86a..faf80a39a7 100644 --- a/src/compiler/scala/tools/nsc/interpreter/TypeStrings.scala +++ b/src/compiler/scala/tools/nsc/interpreter/TypeStrings.scala @@ -14,6 +14,7 @@ import scala.reflect.runtime.{universe => ru} import scala.reflect.{ClassTag, classTag} import typechecker.DestructureTypes import scala.tools.util.StringOps.ojoin +import language.implicitConversions /** A more principled system for turning types into strings. */ diff --git a/src/compiler/scala/tools/nsc/transform/Erasure.scala b/src/compiler/scala/tools/nsc/transform/Erasure.scala index fde27a650a..ce16facf77 100644 --- a/src/compiler/scala/tools/nsc/transform/Erasure.scala +++ b/src/compiler/scala/tools/nsc/transform/Erasure.scala @@ -638,7 +638,6 @@ abstract class Erasure extends AddInterfaces */ private def adaptMember(tree: Tree): Tree = { //Console.println("adaptMember: " + tree); - val x = 2 + 2 tree match { case Apply(TypeApply(sel @ Select(qual, name), List(targ)), List()) if tree.symbol == Any_asInstanceOf => diff --git a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala index d45db9ea5d..4504eaad38 100644 --- a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala +++ b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala @@ -9,6 +9,7 @@ package transform import scala.tools.nsc.symtab.Flags import scala.collection.{ mutable, immutable } import language.postfixOps +import language.existentials /** Specialize code on types. * diff --git a/src/compiler/scala/tools/nsc/typechecker/DestructureTypes.scala b/src/compiler/scala/tools/nsc/typechecker/DestructureTypes.scala index aebe3454b1..5802d36878 100644 --- a/src/compiler/scala/tools/nsc/typechecker/DestructureTypes.scala +++ b/src/compiler/scala/tools/nsc/typechecker/DestructureTypes.scala @@ -6,6 +6,8 @@ package scala.tools.nsc package typechecker +import language.implicitConversions + /** A generic means of breaking down types into their subcomponents. * Types are decomposed top down, and recognizable substructure is * dispatched via self-apparently named methods. Those methods can diff --git a/src/compiler/scala/tools/nsc/typechecker/Implicits.scala b/src/compiler/scala/tools/nsc/typechecker/Implicits.scala index 9855284348..1ec4a7dc44 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Implicits.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Implicits.scala @@ -17,6 +17,7 @@ import mutable.{ LinkedHashMap, ListBuffer } import scala.util.matching.Regex import symtab.Flags._ import util.Statistics._ +import language.implicitConversions /** This trait provides methods to find various kinds of implicits. * @@ -335,7 +336,7 @@ trait Implicits { * The _complexity_ of a stripped core type corresponds roughly to the number of * nodes in its ast, except that singleton types are widened before taking the complexity. * Two types overlap if they have the same type symbol, or - * if one or both are intersection types with a pair of overlapiing parent types. + * if one or both are intersection types with a pair of overlapping parent types. */ private def dominates(dtor: Type, dted: Type): Boolean = { def core(tp: Type): Type = tp.normalize match { diff --git a/src/compiler/scala/tools/nsc/typechecker/Macros.scala b/src/compiler/scala/tools/nsc/typechecker/Macros.scala index 93991fe7d5..7b55ea6c72 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Macros.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Macros.scala @@ -1103,34 +1103,36 @@ trait Macros extends scala.tools.reflect.FastTrack with Traces { else { macroLogLite("typechecking macro expansion %s at %s".format(expandee, expandee.pos)) macroArgs(typer, expandee).fold(failExpansion(): MacroExpansionResult) { - // [Eugene++] crashes virtpatmat: - // case args @ ((context: MacroContext) :: _) => - case args @ (context0 :: _) => - val context = context0.asInstanceOf[MacroContext] - if (nowDelayed) { - macroLogLite("macro expansion is delayed: %s".format(expandee)) - delayed += expandee -> undetparams - // need to save typer context for `macroExpandAll` - // need to save macro context to preserve enclosures - expandee addAttachment MacroRuntimeAttachment(delayed = true, typerContext = typer.context, macroContext = Some(context.asInstanceOf[MacroContext])) - Delay(expandee) - } - else { - // adding stuff to openMacros is easy, but removing it is a nightmare - // it needs to be sprinkled over several different code locations - // why? https://github.com/scala/scala/commit/bd3eacbae21f39b1ac7fe8ade4ed71fa98e1a28d#L2R1137 - // todo. will be improved - openMacros ::= context - var isSuccess = false - try performExpansion(args) match { - case x: Success => isSuccess = true ; x - case x => x + args => (args: @unchecked) match { + // [Eugene++] crashes virtpatmat: + // case args @ ((context: MacroContext) :: _) => + case args @ (context0 :: _) => + val context = context0.asInstanceOf[MacroContext] + if (nowDelayed) { + macroLogLite("macro expansion is delayed: %s".format(expandee)) + delayed += expandee -> undetparams + // need to save typer context for `macroExpandAll` + // need to save macro context to preserve enclosures + expandee addAttachment MacroRuntimeAttachment(delayed = true, typerContext = typer.context, macroContext = Some(context.asInstanceOf[MacroContext])) + Delay(expandee) } - finally { - expandee.removeAttachment[MacroRuntimeAttachment] - if (!isSuccess) openMacros = openMacros.tail + else { + // adding stuff to openMacros is easy, but removing it is a nightmare + // it needs to be sprinkled over several different code locations + // why? https://github.com/scala/scala/commit/bd3eacbae21f39b1ac7fe8ade4ed71fa98e1a28d#L2R1137 + // todo. will be improved + openMacros ::= context + var isSuccess = false + try performExpansion(args) match { + case x: Success => isSuccess = true ; x + case x => x + } + finally { + expandee.removeAttachment[MacroRuntimeAttachment] + if (!isSuccess) openMacros = openMacros.tail + } } - } + } } } } diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index 30202ed3b5..f46d161da5 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -3644,7 +3644,7 @@ trait Typers extends Modes with Adaptations with Tags { case t => (t, Nil) } - @inline def hasNamedArg(as: List[Tree]) = as collectFirst {case AssignOrNamedArg(lhs, rhs) =>} nonEmpty + @inline def hasNamedArg(as: List[Tree]) = as.collectFirst{case AssignOrNamedArg(lhs, rhs) =>}.nonEmpty // note: context.tree includes at most one Apply node // thus, we can't use it to detect we're going to receive named args in expressions such as: @@ -3664,7 +3664,7 @@ trait Typers extends Modes with Adaptations with Tags { } val dynSel = Select(qual, oper) - val tappSel = if (explicitTargs nonEmpty) TypeApply(dynSel, explicitTargs) else dynSel + val tappSel = if (explicitTargs.nonEmpty) TypeApply(dynSel, explicitTargs) else dynSel atPos(qual.pos)(Apply(tappSel, List(Literal(Constant(name.decode))))) } @@ -4874,6 +4874,7 @@ trait Typers extends Modes with Adaptations with Tags { } case ApplyDynamic(qual, args) => + assert(phase.erasedTypes) val reflectiveCalls = !(settings.refinementMethodDispatch.value == "invoke-dynamic") val qual1 = typed(qual, AnyRefClass.tpe) val args1 = args mapConserve (arg => if (reflectiveCalls) typed(arg, AnyRefClass.tpe) else typed(arg)) diff --git a/src/compiler/scala/tools/reflect/WrappedProperties.scala b/src/compiler/scala/tools/reflect/WrappedProperties.scala index 2ca374cf01..45c1b57d71 100644 --- a/src/compiler/scala/tools/reflect/WrappedProperties.scala +++ b/src/compiler/scala/tools/reflect/WrappedProperties.scala @@ -21,8 +21,8 @@ trait WrappedProperties extends PropertiesTrait { override def propIsSet(name: String) = wrap(super.propIsSet(name)) exists (x => x) override def propOrElse(name: String, alt: String) = wrap(super.propOrElse(name, alt)) getOrElse alt - override def setProp(name: String, value: String) = wrap(super.setProp(name, value)) orNull - override def clearProp(name: String) = wrap(super.clearProp(name)) orNull + override def setProp(name: String, value: String) = wrap(super.setProp(name, value)).orNull + override def clearProp(name: String) = wrap(super.clearProp(name)).orNull override def envOrElse(name: String, alt: String) = wrap(super.envOrElse(name, alt)) getOrElse alt override def envOrNone(name: String) = wrap(super.envOrNone(name)).flatten diff --git a/src/compiler/scala/tools/util/Javap.scala b/src/compiler/scala/tools/util/Javap.scala index 42d8a910f0..f4f218350a 100644 --- a/src/compiler/scala/tools/util/Javap.scala +++ b/src/compiler/scala/tools/util/Javap.scala @@ -12,6 +12,7 @@ import scala.tools.nsc.util.ScalaClassLoader import java.io.{ InputStream, PrintWriter, ByteArrayInputStream, FileNotFoundException } import scala.tools.nsc.io.File import Javap._ +import language.reflectiveCalls trait Javap { def loader: ScalaClassLoader diff --git a/src/compiler/scala/tools/util/PathResolver.scala b/src/compiler/scala/tools/util/PathResolver.scala index 788891a062..4c0e33e4fb 100644 --- a/src/compiler/scala/tools/util/PathResolver.scala +++ b/src/compiler/scala/tools/util/PathResolver.scala @@ -13,6 +13,7 @@ import nsc.util.{ ClassPath, JavaClassPath, ScalaClassLoader } import nsc.io.{ File, Directory, Path, AbstractFile } import ClassPath.{ JavaContext, DefaultJavaContext, join, split } import PartialFunction.condOpt +import language.postfixOps // Loosely based on the draft specification at: // https://wiki.scala-lang.org/display/SW/Classpath diff --git a/src/library/scala/collection/generic/package.scala b/src/library/scala/collection/generic/package.scala index e0351ebae6..2e58f313c9 100644 --- a/src/library/scala/collection/generic/package.scala +++ b/src/library/scala/collection/generic/package.scala @@ -1,6 +1,8 @@ package scala.collection import generic.CanBuildFrom +import language.higherKinds + package object generic { type CanBuild[-Elem, +To] = CanBuildFrom[Nothing, Elem, To] diff --git a/src/library/scala/languageFeature.scala b/src/library/scala/languageFeature.scala index c990f714c1..c32f1eb724 100644 --- a/src/library/scala/languageFeature.scala +++ b/src/library/scala/languageFeature.scala @@ -4,26 +4,26 @@ import annotation.meta object languageFeature { - @meta.languageFeature("extension of type scala.Dynamic", true) + @meta.languageFeature("extension of type scala.Dynamic", enableRequired = true) sealed trait dynamics - @meta.languageFeature("postfix operator #", false) + @meta.languageFeature("postfix operator #", enableRequired = false) sealed trait postfixOps - @meta.languageFeature("reflective access of structural type member #", false) + @meta.languageFeature("reflective access of structural type member #", enableRequired = false) sealed trait reflectiveCalls - @meta.languageFeature("implicit conversion #", false) + @meta.languageFeature("implicit conversion #", enableRequired = false) sealed trait implicitConversions - @meta.languageFeature("higher-kinded type", false) + @meta.languageFeature("higher-kinded type", enableRequired = false) sealed trait higherKinds - @meta.languageFeature("#, which cannot be expressed by wildcards, ", false) + @meta.languageFeature("#, which cannot be expressed by wildcards, ", enableRequired = false) sealed trait existentials object experimental { - @meta.languageFeature("macro definition", true) + @meta.languageFeature("macro definition", enableRequired = true) sealed trait macros } } diff --git a/src/library/scala/reflect/NameTransformer.scala b/src/library/scala/reflect/NameTransformer.scala index 38fbbc98f2..ff56e20d52 100755 --- a/src/library/scala/reflect/NameTransformer.scala +++ b/src/library/scala/reflect/NameTransformer.scala @@ -8,8 +8,8 @@ package scala.reflect -/** - * @author Martin Odersky +/** Provides functions to encode and decode Scala symbolic names. + * Also provides some constants. */ object NameTransformer { // XXX Short term: providing a way to alter these without having to recompile diff --git a/src/library/scala/reflect/ScalaLongSignature.java b/src/library/scala/reflect/ScalaLongSignature.java index 1ffd6d2520..fce58207f1 100644 --- a/src/library/scala/reflect/ScalaLongSignature.java +++ b/src/library/scala/reflect/ScalaLongSignature.java @@ -5,7 +5,9 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -/** */ +/** + * [Martin to Eugene++] Todo: Move to somewhere else? +*/ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface ScalaLongSignature { diff --git a/src/library/scala/reflect/ScalaSignature.java b/src/library/scala/reflect/ScalaSignature.java index d1cdbc0589..f0df99fe79 100644 --- a/src/library/scala/reflect/ScalaSignature.java +++ b/src/library/scala/reflect/ScalaSignature.java @@ -5,7 +5,8 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -/** */ +/** * [Martin to Eugene++] Todo: Move to somewhere else? + */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface ScalaSignature { diff --git a/src/library/scala/reflect/api/Exprs.scala b/src/library/scala/reflect/api/Exprs.scala index dd09d8e7c6..bda125a1a1 100644 --- a/src/library/scala/reflect/api/Exprs.scala +++ b/src/library/scala/reflect/api/Exprs.scala @@ -5,7 +5,7 @@ package scala.reflect package api -import language.implicitConversions + import scala.reflect.base.TreeCreator trait Exprs { self: Universe => diff --git a/src/library/scala/reflect/makro/Aliases.scala b/src/library/scala/reflect/makro/Aliases.scala index 5e9ebdb263..c78c9a6a04 100644 --- a/src/library/scala/reflect/makro/Aliases.scala +++ b/src/library/scala/reflect/makro/Aliases.scala @@ -1,4 +1,5 @@ -package scala.reflect.makro +package scala.reflect +package makro trait Aliases { self: Context => diff --git a/src/library/scala/reflect/makro/CapturedVariables.scala b/src/library/scala/reflect/makro/CapturedVariables.scala index 6ce832b2b3..592e28b3b2 100644 --- a/src/library/scala/reflect/makro/CapturedVariables.scala +++ b/src/library/scala/reflect/makro/CapturedVariables.scala @@ -1,4 +1,5 @@ -package scala.reflect.makro +package scala.reflect +package makro trait CapturedVariables { self: Context => diff --git a/src/library/scala/reflect/makro/Context.scala b/src/library/scala/reflect/makro/Context.scala index 09cd96664c..f9858a063c 100644 --- a/src/library/scala/reflect/makro/Context.scala +++ b/src/library/scala/reflect/makro/Context.scala @@ -1,4 +1,5 @@ -package scala.reflect.makro +package scala.reflect +package makro import language.experimental.macros @@ -19,7 +20,7 @@ trait Context extends Aliases with Exprs with TypeTags with Evals - with Util { + with ExprUtils { /** The compile-time universe */ val universe: Universe diff --git a/src/library/scala/reflect/makro/Enclosures.scala b/src/library/scala/reflect/makro/Enclosures.scala index 136d39498e..69bd8d09c7 100644 --- a/src/library/scala/reflect/makro/Enclosures.scala +++ b/src/library/scala/reflect/makro/Enclosures.scala @@ -1,4 +1,5 @@ -package scala.reflect.makro +package scala.reflect +package makro trait Enclosures { self: Context => diff --git a/src/library/scala/reflect/makro/Evals.scala b/src/library/scala/reflect/makro/Evals.scala index e34f74ca1b..4e5fc2f97f 100644 --- a/src/library/scala/reflect/makro/Evals.scala +++ b/src/library/scala/reflect/makro/Evals.scala @@ -1,4 +1,5 @@ -package scala.reflect.makro +package scala.reflect +package makro trait Evals { self: Context => diff --git a/src/library/scala/reflect/makro/ExprUtils.scala b/src/library/scala/reflect/makro/ExprUtils.scala new file mode 100644 index 0000000000..c3e5cc6bc1 --- /dev/null +++ b/src/library/scala/reflect/makro/ExprUtils.scala @@ -0,0 +1,32 @@ +package scala.reflect +package makro + +trait ExprUtils { + self: Context => + + def literalNull: Expr[Null] + + def literalUnit: Expr[Unit] + + def literalTrue: Expr[Boolean] + + def literalFalse: Expr[Boolean] + + def literal(x: Boolean): Expr[Boolean] + + def literal(x: Byte): Expr[Byte] + + def literal(x: Short): Expr[Short] + + def literal(x: Int): Expr[Int] + + def literal(x: Long): Expr[Long] + + def literal(x: Float): Expr[Float] + + def literal(x: Double): Expr[Double] + + def literal(x: String): Expr[String] + + def literal(x: Char): Expr[Char] +} diff --git a/src/library/scala/reflect/makro/Exprs.scala b/src/library/scala/reflect/makro/Exprs.scala index ab0ea83d73..b4f8e7ac4e 100644 --- a/src/library/scala/reflect/makro/Exprs.scala +++ b/src/library/scala/reflect/makro/Exprs.scala @@ -1,4 +1,5 @@ -package scala.reflect.makro +package scala.reflect +package makro trait Exprs { self: Context => diff --git a/src/library/scala/reflect/makro/FrontEnds.scala b/src/library/scala/reflect/makro/FrontEnds.scala index 7e47701ffa..5087f90174 100644 --- a/src/library/scala/reflect/makro/FrontEnds.scala +++ b/src/library/scala/reflect/makro/FrontEnds.scala @@ -1,4 +1,5 @@ -package scala.reflect.makro +package scala.reflect +package makro trait FrontEnds extends scala.reflect.api.FrontEnds { self: Context => diff --git a/src/library/scala/reflect/makro/Infrastructure.scala b/src/library/scala/reflect/makro/Infrastructure.scala index 69394a27ea..e6bfe33366 100644 --- a/src/library/scala/reflect/makro/Infrastructure.scala +++ b/src/library/scala/reflect/makro/Infrastructure.scala @@ -1,4 +1,5 @@ -package scala.reflect.makro +package scala.reflect +package makro trait Infrastructure { self: Context => diff --git a/src/library/scala/reflect/makro/Names.scala b/src/library/scala/reflect/makro/Names.scala index c842c48e52..909976d83c 100644 --- a/src/library/scala/reflect/makro/Names.scala +++ b/src/library/scala/reflect/makro/Names.scala @@ -1,4 +1,5 @@ -package scala.reflect.makro +package scala.reflect +package makro trait Names { self: Context => diff --git a/src/library/scala/reflect/makro/Parsers.scala b/src/library/scala/reflect/makro/Parsers.scala index 737d387434..9866b7e491 100644 --- a/src/library/scala/reflect/makro/Parsers.scala +++ b/src/library/scala/reflect/makro/Parsers.scala @@ -1,4 +1,5 @@ -package scala.reflect.makro +package scala.reflect +package makro trait Parsers { self: Context => diff --git a/src/library/scala/reflect/makro/Reifiers.scala b/src/library/scala/reflect/makro/Reifiers.scala index 535aaadc3d..f39f56f935 100644 --- a/src/library/scala/reflect/makro/Reifiers.scala +++ b/src/library/scala/reflect/makro/Reifiers.scala @@ -1,4 +1,5 @@ -package scala.reflect.makro +package scala.reflect +package makro trait Reifiers { self: Context => @@ -85,6 +86,6 @@ trait Reifiers { // made these guys non path-dependent, otherwise exception handling quickly becomes a mess -case class ReificationError(var pos: reflect.api.PositionApi, val msg: String) extends Throwable(msg) +case class ReificationError(val pos: reflect.api.PositionApi, val msg: String) extends Throwable(msg) case class UnexpectedReificationError(val pos: reflect.api.PositionApi, val msg: String, val cause: Throwable = null) extends Throwable(msg, cause) diff --git a/src/library/scala/reflect/makro/Settings.scala b/src/library/scala/reflect/makro/Settings.scala index c4a8ebd1b5..c6c7e5870b 100644 --- a/src/library/scala/reflect/makro/Settings.scala +++ b/src/library/scala/reflect/makro/Settings.scala @@ -1,4 +1,5 @@ -package scala.reflect.makro +package scala.reflect +package makro trait Settings { self: Context => @@ -18,6 +19,7 @@ trait Settings { /** Updates current compiler settings with an option string. * Use `scalac -help`, `scalac -X` and `scalac -Y` to learn about currently supported options. + * todo. http://groups.google.com/group/scala-internals/browse_thread/thread/07c18cff41f59203 */ def setCompilerSettings(options: String): this.type diff --git a/src/library/scala/reflect/makro/TreeBuilder.scala b/src/library/scala/reflect/makro/TreeBuilder.scala index 3510932c13..c4179b9c80 100644 --- a/src/library/scala/reflect/makro/TreeBuilder.scala +++ b/src/library/scala/reflect/makro/TreeBuilder.scala @@ -1,4 +1,5 @@ -package scala.reflect.makro +package scala.reflect +package makro // [Eugene] I added some stuff that was necessary for typetag materialization macros // but we should think it over and pick other generally useful stuff diff --git a/src/library/scala/reflect/makro/TypeTags.scala b/src/library/scala/reflect/makro/TypeTags.scala index 7b98f391a7..3251c27908 100644 --- a/src/library/scala/reflect/makro/TypeTags.scala +++ b/src/library/scala/reflect/makro/TypeTags.scala @@ -1,4 +1,5 @@ -package scala.reflect.makro +package scala.reflect +package makro trait TypeTags { self: Context => diff --git a/src/library/scala/reflect/makro/Typers.scala b/src/library/scala/reflect/makro/Typers.scala index 2087309520..2610d7dd50 100644 --- a/src/library/scala/reflect/makro/Typers.scala +++ b/src/library/scala/reflect/makro/Typers.scala @@ -1,4 +1,5 @@ -package scala.reflect.makro +package scala.reflect +package makro trait Typers { self: Context => diff --git a/src/library/scala/reflect/makro/Universe.scala b/src/library/scala/reflect/makro/Universe.scala index 45bce08718..ffc4042a0a 100644 --- a/src/library/scala/reflect/makro/Universe.scala +++ b/src/library/scala/reflect/makro/Universe.scala @@ -1,4 +1,5 @@ -package scala.reflect.makro +package scala.reflect +package makro abstract class Universe extends scala.reflect.api.Universe { @@ -82,13 +83,13 @@ abstract class Universe extends scala.reflect.api.Universe { def setSymbol(sym: Symbol): this.type /** ... */ - def attachments: scala.reflect.base.Attachments { type Pos = Position } + def attachments: base.Attachments { type Pos = Position } /** ... */ def addAttachment(attachment: Any): this.type /** ... */ - def removeAttachment[T: scala.reflect.ClassTag]: this.type + def removeAttachment[T: ClassTag]: this.type } override type SymTree >: Null <: Tree with SymTreeContextApi diff --git a/src/library/scala/reflect/makro/Util.scala b/src/library/scala/reflect/makro/Util.scala deleted file mode 100644 index 16eb2395a9..0000000000 --- a/src/library/scala/reflect/makro/Util.scala +++ /dev/null @@ -1,31 +0,0 @@ -package scala.reflect.makro - -trait Util { - self: Context => - - def literalNull: Expr[Null] - - def literalUnit: Expr[Unit] - - def literalTrue: Expr[Boolean] - - def literalFalse: Expr[Boolean] - - def literal(x: Boolean): Expr[Boolean] - - def literal(x: Byte): Expr[Byte] - - def literal(x: Short): Expr[Short] - - def literal(x: Int): Expr[Int] - - def literal(x: Long): Expr[Long] - - def literal(x: Float): Expr[Float] - - def literal(x: Double): Expr[Double] - - def literal(x: String): Expr[String] - - def literal(x: Char): Expr[Char] -} diff --git a/src/library/scala/reflect/makro/internal/package.scala b/src/library/scala/reflect/makro/internal/package.scala index 51425696f9..de7350bf48 100644 --- a/src/library/scala/reflect/makro/internal/package.scala +++ b/src/library/scala/reflect/makro/internal/package.scala @@ -1,8 +1,8 @@ -package scala.reflect.makro +package scala.reflect +package makro import language.experimental.macros import scala.reflect.base.{Universe => BaseUniverse} -import scala.reflect.{ClassTag, ArrayTag} // anchors for materialization macros emitted during tag materialization in Implicits.scala // implementation is magically hardwired into `scala.reflect.reify.Taggers` -- cgit v1.2.3