Skip to content

Commit 303d69f

Browse files
committed
accessing settings
1 parent 0cdfa13 commit 303d69f

File tree

6 files changed

+22
-21
lines changed

6 files changed

+22
-21
lines changed

src/dotty/tools/dotc/backend/jvm/BCodeHelpers.scala

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -209,22 +209,26 @@ abstract class BCodeHelpers extends BCodeTypes with BytecodeWriters {
209209
* must-single-thread
210210
*/
211211
def initBytecodeWriter(entryPoints: List[Symbol])(implicit ctx: Context): BytecodeWriter = {
212+
213+
import ctx.base.settings
214+
import ctx.log
215+
212216
settings.outputDirs.getSingleOutput match {
213217
case Some(f) if f hasExtension "jar" =>
214218
// If no main class was specified, see if there's only one
215219
// entry point among the classes going into the jar.
216220
if (settings.mainClass.isDefault) {
217221
entryPoints map (_.fullName('.')) match {
218222
case Nil =>
219-
ctx.log("No Main-Class designated or discovered.")
223+
log("No Main-Class designated or discovered.")
220224
case name :: Nil =>
221-
ctx.log(s"Unique entry point: setting Main-Class to $name")
225+
log(s"Unique entry point: setting Main-Class to $name")
222226
settings.mainClass.value = name
223227
case names =>
224-
ctx.log(s"No Main-Class due to multiple entry points:\n ${names.mkString("\n ")}")
228+
log(s"No Main-Class due to multiple entry points:\n ${names.mkString("\n ")}")
225229
}
226230
}
227-
else ctx.log(s"Main-Class was specified: ${settings.mainClass.value}")
231+
else log(s"Main-Class was specified: ${settings.mainClass.value}")
228232

229233
new DirectToJarfileWriter(f.file)
230234

@@ -395,7 +399,7 @@ abstract class BCodeHelpers extends BCodeTypes with BytecodeWriters {
395399

396400
trait BCInnerClassGen extends HasContext {
397401

398-
def debugLevel = settings.debuginfo.indexOfChoice
402+
def debugLevel = ctx.base.settings.g.indexOfChoice
399403

400404
val emitSource = debugLevel >= 1
401405
val emitLines = debugLevel >= 2
@@ -797,7 +801,7 @@ abstract class BCodeHelpers extends BCodeTypes with BytecodeWriters {
797801
// without it. This is particularly bad because the availability of
798802
// generic information could disappear as a consequence of a seemingly
799803
// unrelated change.
800-
settings.Ynogenericsig
804+
ctx.base.settings.Ynogenericsig
801805
|| sym.isArtifact
802806
|| sym.isLiftedMethod
803807
|| sym.isBridge
@@ -829,7 +833,7 @@ abstract class BCodeHelpers extends BCodeTypes with BytecodeWriters {
829833
catch { case _: Throwable => false }
830834
}
831835

832-
if (settings.Xverify) {
836+
if (ctx.base.settings.Xverify) {
833837
// Run the signature parser to catch bogus signatures.
834838
val isValidSignature = wrap {
835839
// Alternative: scala.tools.reflect.SigParser (frontend to sun.reflect.generics.parser.SignatureParser)
@@ -849,7 +853,7 @@ abstract class BCodeHelpers extends BCodeTypes with BytecodeWriters {
849853
}
850854
}
851855

852-
if ((settings.check containsName phaseName)) {
856+
if ((ctx.base.settings.check containsName phaseName)) {
853857
val normalizedTpe = enteringErasure(erasure.prepareSigMap(memberTpe))
854858
val bytecodeTpe = owner.thisType.memberInfo(sym)
855859
if (!sym.isType && !sym.isConstructor && !(erasure.erasure(sym)(normalizedTpe) =:= bytecodeTpe)) {

src/dotty/tools/dotc/backend/jvm/BCodeIdiomatic.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import core.Symbols.{Symbol, NoSymbol}
2525
*/
2626
abstract class BCodeIdiomatic extends BCodeGlue {
2727

28-
val classfileVersion: Int = settings.target.value match {
28+
def classfileVersion(implicit ctx: Context): Int = ctx.base.settings.target.value match {
2929
case "jvm-1.5" => asm.Opcodes.V1_5
3030
case "jvm-1.6" => asm.Opcodes.V1_6
3131
case "jvm-1.7" => asm.Opcodes.V1_7

src/dotty/tools/dotc/backend/jvm/BCodeSkelBuilder.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ abstract class BCodeSkelBuilder extends BCodeHelpers {
171171

172172
} else {
173173

174-
val skipStaticForwarders = (claszSymbol.isInterface || settings.noForwarders)
174+
val skipStaticForwarders = (claszSymbol.isInterface || ctx.base.settings.noForwarders)
175175
if (!skipStaticForwarders) {
176176
val lmoc = claszSymbol.companionModule
177177
// add static forwarders if there are no name conflicts; see bugs #363 and #1735
@@ -605,7 +605,7 @@ abstract class BCodeSkelBuilder extends BCodeHelpers {
605605
case Return(_) => ()
606606
case EmptyTree =>
607607
globalError("Concrete method has no definition: " + dd + (
608-
if (settings.debug) "(found: " + methSymbol.owner.info.decls.toList.mkString(", ") + ")"
608+
if (ctx.base.settings.debug) "(found: " + methSymbol.owner.info.decls.toList.mkString(", ") + ")"
609609
else "")
610610
)
611611
case _ =>

src/dotty/tools/dotc/backend/jvm/BCodeTypes.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import StdNames.{nme, tpnme}
2929
abstract class BCodeTypes extends BCodeIdiomatic {
3030

3131
// when compiling the Scala library, some assertions don't hold (e.g., scala.Boolean has null superClass although it's not an interface)
32-
val isCompilingStdLib = !(settings.sourcepath.isDefault)
32+
def isCompilingStdLib(implicit ctx: Context) = !(ctx.base.settings.sourcepath.isDefault)
3333

3434
val srBoxedUnit = brefType("scala/runtime/BoxedUnit")
3535

src/dotty/tools/dotc/backend/jvm/BytecodeWriters.scala

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import java.io.{ DataOutputStream, FileOutputStream, IOException, OutputStream,
1212
import java.util.jar.Attributes.Name
1313

1414
import dotty.tools.io._
15+
import core.Contexts.Context
1516

1617
/** Can't output a file due to the state of the file system. */
1718
class FileConflictException(msg: String, val file: AbstractFile) extends IOException(msg)
@@ -22,8 +23,8 @@ class FileConflictException(msg: String, val file: AbstractFile) extends IOExcep
2223
*/
2324
trait BytecodeWriters {
2425

25-
def outputDirectory(sym: Symbol): AbstractFile =
26-
settings.outputDirs outputDirFor enteringFlatten(sym.sourceFile)
26+
def outputDirectory(sym: Symbol)(implicit ctx: Context): AbstractFile =
27+
ctx.base.settings.outputDirs outputDirFor enteringFlatten(sym.sourceFile)
2728

2829
/**
2930
* @param clsName cls.getName
@@ -40,9 +41,9 @@ trait BytecodeWriters {
4041
def getFile(sym: Symbol, clsName: String, suffix: String): AbstractFile =
4142
getFile(outputDirectory(sym), clsName, suffix)
4243

43-
def factoryNonJarBytecodeWriter(): BytecodeWriter = {
44-
val emitAsmp = settings.Ygenasmp.isSetByUser
45-
val doDump = settings.Ydumpclasses.isSetByUser
44+
def factoryNonJarBytecodeWriter(implicit ctx: Context): BytecodeWriter = {
45+
val emitAsmp = ctx.base.settings.Ygenasmp.isSetByUser
46+
val doDump = ctx.base.settings.Ydumpclasses.isSetByUser
4647
(emitAsmp, doDump) match {
4748
case (false, false) => new ClassBytecodeWriter { }
4849
case (false, true ) => new ClassBytecodeWriter with DumpBytecodeWriter { }

src/dotty/tools/dotc/config/ScalaSettings.scala

100644100755
Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,6 @@ class ScalaSettings extends Settings.SettingGroup {
4949
/** -X "Advanced" settings
5050
*/
5151
val Xhelp = BooleanSetting("-X", "Print a synopsis of advanced options.")
52-
val assemname = StringSetting("-Xassem-name", "file", "(Requires -target:msil) Name of the output assembly.", "").dependsOn(target, "msil")
53-
val assemrefs = StringSetting("-Xassem-path", "path", "(Requires -target:msil) List of assemblies referenced by the program.", ".").dependsOn(target, "msil")
54-
val assemextdirs = StringSetting("-Xassem-extdirs", "dirs", "(Requires -target:msil) List of directories containing assemblies. default:lib", Defaults.scalaLibDir.path).dependsOn(target, "msil")
55-
val sourcedir = StringSetting("-Xsourcedir", "directory", "(Requires -target:msil) Mirror source folder structure in output directory.", ".").dependsOn(target, "msil")
5652
val checkInit = BooleanSetting("-Xcheckinit", "Wrap field accessors to throw an exception on uninitialized access.")
5753
val noassertions = BooleanSetting("-Xdisable-assertions", "Generate no assertions or assumptions.")
5854
// val elidebelow = IntSetting("-Xelide-below", "Calls to @elidable methods are omitted if method priority is lower than argument",

0 commit comments

Comments
 (0)