summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2014-01-18 00:15:21 -0800
committerEugene Burmako <xeno.by@gmail.com>2014-01-18 00:15:21 -0800
commit9bc68766aa17b3509de1bac0e330ea80b6955cdf (patch)
tree4a81122b7ad08a433a1e2e7dd44e15fd653e2998
parent7c0fd124a636bb0dcca236d5aaf7e799c40d6104 (diff)
parentc258ccc9b52c9bfcd47342d3dcf6b58faac8535b (diff)
downloadscala-9bc68766aa17b3509de1bac0e330ea80b6955cdf.tar.gz
scala-9bc68766aa17b3509de1bac0e330ea80b6955cdf.tar.bz2
scala-9bc68766aa17b3509de1bac0e330ea80b6955cdf.zip
Merge pull request #3381 from retronym/topic/debug-friendliness
Fix compilation under -Ydebug
-rw-r--r--src/compiler/scala/tools/nsc/ast/Trees.scala4
-rw-r--r--src/reflect/scala/reflect/internal/Symbols.scala2
-rw-r--r--test/files/pos/debug-reset-local-attrs.flags1
-rw-r--r--test/files/pos/debug-reset-local-attrs.scala1
4 files changed, 6 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/Trees.scala b/src/compiler/scala/tools/nsc/ast/Trees.scala
index cccae0c3a0..24bce0636d 100644
--- a/src/compiler/scala/tools/nsc/ast/Trees.scala
+++ b/src/compiler/scala/tools/nsc/ast/Trees.scala
@@ -194,7 +194,9 @@ trait Trees extends scala.reflect.internal.Trees { self: Global =>
* (bq:) This transformer has mutable state and should be discarded after use
*/
private class ResetAttrs(localOnly: Boolean, leaveAlone: Tree => Boolean = null, keepLabels: Boolean = false) {
- val debug = settings.debug.value
+ // this used to be based on -Ydebug, but the need for logging in this code is so situational
+ // that I've reverted to a hard-coded constant here.
+ val debug = false
val trace = scala.tools.nsc.util.trace when debug
val locals = util.HashSet[Symbol](8)
diff --git a/src/reflect/scala/reflect/internal/Symbols.scala b/src/reflect/scala/reflect/internal/Symbols.scala
index e15b33e5d7..c2689fe7e9 100644
--- a/src/reflect/scala/reflect/internal/Symbols.scala
+++ b/src/reflect/scala/reflect/internal/Symbols.scala
@@ -2419,7 +2419,7 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
else if (isTrait) ("trait", "trait", "TRT")
else if (isClass) ("class", "class", "CLS")
else if (isType) ("type", "type", "TPE")
- else if (isClassConstructor && isPrimaryConstructor) ("primary constructor", "constructor", "PCTOR")
+ else if (isClassConstructor && (owner.hasCompleteInfo && isPrimaryConstructor)) ("primary constructor", "constructor", "PCTOR")
else if (isClassConstructor) ("constructor", "constructor", "CTOR")
else if (isSourceMethod) ("method", "method", "METH")
else if (isTerm) ("value", "value", "VAL")
diff --git a/test/files/pos/debug-reset-local-attrs.flags b/test/files/pos/debug-reset-local-attrs.flags
new file mode 100644
index 0000000000..9c7d6400fc
--- /dev/null
+++ b/test/files/pos/debug-reset-local-attrs.flags
@@ -0,0 +1 @@
+-Ydebug
diff --git a/test/files/pos/debug-reset-local-attrs.scala b/test/files/pos/debug-reset-local-attrs.scala
new file mode 100644
index 0000000000..8348657965
--- /dev/null
+++ b/test/files/pos/debug-reset-local-attrs.scala
@@ -0,0 +1 @@
+case class FT(f : Float)