summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-05-03 11:30:33 -0700
committerPaul Phillips <paulp@improving.org>2012-05-03 11:45:21 -0700
commit453d615fb3c6d0db3a0a43c9232bc12584e39107 (patch)
tree2698a7a2c09c47b3a0f25722fa47f90ef49641bc /src/compiler
parent03e3a40951ec7d1612cb668973f4d2e5e01872e9 (diff)
downloadscala-453d615fb3c6d0db3a0a43c9232bc12584e39107.tar.gz
scala-453d615fb3c6d0db3a0a43c9232bc12584e39107.tar.bz2
scala-453d615fb3c6d0db3a0a43c9232bc12584e39107.zip
Fix for SI-5608, crasher with value classes.
Anyone who doubts the importance of avoiding duplication is invited to look closely at the cause of this bug as revealed in this one line patch.
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/scala/reflect/internal/Types.scala4
-rw-r--r--src/compiler/scala/tools/nsc/ast/Trees.scala2
2 files changed, 4 insertions, 2 deletions
diff --git a/src/compiler/scala/reflect/internal/Types.scala b/src/compiler/scala/reflect/internal/Types.scala
index 799671f9e3..9867c23c70 100644
--- a/src/compiler/scala/reflect/internal/Types.scala
+++ b/src/compiler/scala/reflect/internal/Types.scala
@@ -3276,8 +3276,10 @@ trait Types extends api.Types { self: SymbolTable =>
final class UniqueErasedValueType(sym: Symbol) extends ErasedValueType(sym) with UniqueType
object ErasedValueType {
- def apply(sym: Symbol): Type =
+ def apply(sym: Symbol): Type = {
+ assert(sym ne NoSymbol, "ErasedValueType cannot be NoSymbol")
unique(new UniqueErasedValueType(sym))
+ }
}
/** A class representing an as-yet unevaluated type.
diff --git a/src/compiler/scala/tools/nsc/ast/Trees.scala b/src/compiler/scala/tools/nsc/ast/Trees.scala
index a355db4d9a..4c509778e9 100644
--- a/src/compiler/scala/tools/nsc/ast/Trees.scala
+++ b/src/compiler/scala/tools/nsc/ast/Trees.scala
@@ -195,7 +195,7 @@ trait Trees extends reflect.internal.Trees { self: Global =>
def SelectFromArray(tree: Tree, qualifier: Tree, selector: Name, erasure: Type) =
new SelectFromArray(qualifier, selector, erasure).copyAttrs(tree)
def InjectDerivedValue(tree: Tree, arg: Tree) =
- new InjectDerivedValue(arg)
+ new InjectDerivedValue(arg).copyAttrs(tree)
def TypeTreeWithDeferredRefCheck(tree: Tree) = tree match {
case dc@TypeTreeWithDeferredRefCheck() => new TypeTreeWithDeferredRefCheck()(dc.check).copyAttrs(tree)
}