diff options
author | Paul Phillips <paulp@improving.org> | 2012-04-14 06:16:32 +0100 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-04-16 04:14:54 +0100 |
commit | 4a6f54b5f16b3179b23a44f2f1d83f080e218f72 (patch) | |
tree | 9d68580b78f9da34f4b90a90f1eb10182c4cd6c7 /src/compiler/scala/reflect/internal/Symbols.scala | |
parent | 364dd41c3e0e33afe6c3ec6e0c04f1d345c4b6ca (diff) | |
download | scala-4a6f54b5f16b3179b23a44f2f1d83f080e218f72.tar.gz scala-4a6f54b5f16b3179b23a44f2f1d83f080e218f72.tar.bz2 scala-4a6f54b5f16b3179b23a44f2f1d83f080e218f72.zip |
New facility: TypeDestructurers.
Would prefer to bake a little longer, but, scala days.
More elaboration to come.
Diffstat (limited to 'src/compiler/scala/reflect/internal/Symbols.scala')
-rw-r--r-- | src/compiler/scala/reflect/internal/Symbols.scala | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/compiler/scala/reflect/internal/Symbols.scala b/src/compiler/scala/reflect/internal/Symbols.scala index c9947c3c09..6eaae7f1ee 100644 --- a/src/compiler/scala/reflect/internal/Symbols.scala +++ b/src/compiler/scala/reflect/internal/Symbols.scala @@ -707,7 +707,10 @@ trait Symbols extends api.Symbols { self: SymbolTable => || isAnonOrRefinementClass // has uninteresting <anon> or <refinement> prefix || nme.isReplWrapperName(name) // has ugly $iw. prefix (doesn't call isInterpreterWrapper due to nesting) ) - def isFBounded = info.baseTypeSeq exists (_ contains this) + def isFBounded = info match { + case TypeBounds(_, _) => info.baseTypeSeq exists (_ contains this) + case _ => false + } /** Is symbol a monomorphic type? * assumption: if a type starts out as monomorphic, it will not acquire @@ -1205,8 +1208,9 @@ trait Symbols extends api.Symbols { self: SymbolTable => /** Set new info valid from start of this phase. */ def updateInfo(info: Type): Symbol = { - assert(phaseId(infos.validFrom) <= phase.id) - if (phaseId(infos.validFrom) == phase.id) infos = infos.prev + val pid = phaseId(infos.validFrom) + assert(pid <= phase.id, (pid, phase.id)) + if (pid == phase.id) infos = infos.prev infos = TypeHistory(currentPeriod, info, infos) _validTo = if (info.isComplete) currentPeriod else NoPeriod this |