Aladdin - Scala Bugtracking
[#1061] project: compiler priority: low category: bug
submitter assigned to status date submitted
Martin Burak fixed 2007-04-20 16:28:47.0
subject Pattern matcher throws many Errors
code
// ParallelMatching lines 79ff 
       case _ if (pat.symbol ne null) && /*
          Martin: the following causes a lot of Error's in rebind/singletonType
          these errors are masked by including the two tests below.
          However, if you uncomment them you will get a bug in genLoad:
                                       ^
   [locker] java.lang.AssertionError: assertion failed: Trying to access the this of another class: tree.symbol = class TreeBrowsers, ctx.clazz.symbol = object TreeBrowsers$TreeInfo compilation unit:TreeBrowsers.scala
   [locker] 	at scala.Predef$.assert(Predef.scala:90)
   [locker] 	at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genLoad(GenICode.scala:809)
   [locker] 	at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genLoadQualifier(GenICode.scala:996)
   [locker] 	at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genLoad(GenICode.scala:785)

          (pat.symbol != NoSymbol) && pat.symbol.tpe.prefix.isStable &&
          */ 
          (patternType =:= singleType(pat.symbol.tpe.prefix, pat.symbol)) =>
          (EmptyTree::ms, (j,dummies)::ss, rs);                      
what happened
The test
(patternType =:= singleType(pat.symbol.tpe.prefix, pat.symbol)
following causes a lot of Error's in rebind/singletonType these errors are masked by including the two tests in the comment above, but then you will get the indicated bu\ g in genLoad:
what expected Fewer exceptions to be thrown.
[back to overview]
Changes of this bug report
Burak  edited on  2007-07-06 15:40:20.0
partially fixed -- a problem with the representation of patterns that match case object Foo vs object Foo