summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2008-12-11 14:34:37 +0000
committerMartin Odersky <odersky@gmail.com>2008-12-11 14:34:37 +0000
commit61b353255e80babd2b00d5299cb6c5c5cade109f (patch)
tree938a5dbd1a83fb577e1f93241634a2464c4eb11f /src
parent1566ee0c368dadec297858d6ff3c849f70b5f137 (diff)
downloadscala-61b353255e80babd2b00d5299cb6c5c5cade109f.tar.gz
scala-61b353255e80babd2b00d5299cb6c5c5cade109f.tar.bz2
scala-61b353255e80babd2b00d5299cb6c5c5cade109f.zip
switch to new initialization semantics.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/Settings.scala1
-rw-r--r--src/compiler/scala/tools/nsc/transform/Constructors.scala4
2 files changed, 3 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/Settings.scala b/src/compiler/scala/tools/nsc/Settings.scala
index 7a6452709e..911dbba8c4 100644
--- a/src/compiler/scala/tools/nsc/Settings.scala
+++ b/src/compiler/scala/tools/nsc/Settings.scala
@@ -102,6 +102,7 @@ class Settings(error: String => Unit) {
val assemname = StringSetting ("-Xassem", "file", "Name of the output assembly (only relevant with -target:msil)", "").dependsOn(target, "msil").hideToIDE
val assemrefs = StringSetting ("-Xassem-path", "path", "List of assemblies referenced by the program (only relevant with -target:msil)", ".").dependsOn(target, "msil").hideToIDE
val Xchecknull = BooleanSetting ("-Xcheck-null", "Emit warning on selection of nullable reference")
+ val Xwarninit = BooleanSetting ("-Xwarninit", "Warn about possible changes in initialization semantics")
val checkInit = BooleanSetting ("-Xcheckinit", "Add runtime checks on field accessors. Uninitialized accesses result in an exception being thrown.")
val noassertions = BooleanSetting ("-Xdisable-assertions", "Generate no assertions and assumptions")
val Xexperimental = BooleanSetting ("-Xexperimental", "Enable experimental extensions")
diff --git a/src/compiler/scala/tools/nsc/transform/Constructors.scala b/src/compiler/scala/tools/nsc/transform/Constructors.scala
index 9bccf5c95f..c69a288a8c 100644
--- a/src/compiler/scala/tools/nsc/transform/Constructors.scala
+++ b/src/compiler/scala/tools/nsc/transform/Constructors.scala
@@ -108,13 +108,13 @@ abstract class Constructors extends Transform {
def canBeMoved(tree: Tree) = tree match {
//todo: eliminate thisRefSeen
case ValDef(mods, _, _, _) =>
- if (settings.Xexperimental.value)
+ if (settings.Xwarninit.value)
if (!(mods hasFlag PRESUPER | PARAMACCESSOR) && !thisRefSeen &&
{ val g = tree.symbol.getter(tree.symbol.owner);
g != NoSymbol && !g.allOverriddenSymbols.isEmpty
})
unit.warning(tree.pos, "the semantics of this definition has changed;\nthe initialization is no longer be executed before the superclass is called")
- (mods hasFlag PRESUPER | PARAMACCESSOR) || !thisRefSeen && (!settings.future.value && !settings.checkInit.value)
+ (mods hasFlag PRESUPER | PARAMACCESSOR)// || !thisRefSeen && (!settings.future.value && !settings.checkInit.value)
case _ => false
}