Scala Programming Language
  1. Scala Programming Language
  2. SI-4593

typechecker throws NoSuchElementException: key not found: trait Nothing

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Misc Compiler
    • Labels:
      None
    • Environment:

      typechecker, NoSuchElementException

      Description

      === What steps will reproduce the problem (please be specific and use wikiformatting)? ===
      Compile the following code:

      trait A {
      
        class B
        case object D extends B
      
        class C {
      
          var x: B = D
      
          def y = synchronized {
            x match {
              case D => {}
            }
          }
      
        }
      
      }
      

      === What is the expected behavior? ===
      Successful compilation.
      (Succeeds under 2.8.)

      === What do you see instead? ===

      exception when typing if (C.this.A$$C$$$$$$outer().D().==(temp2))
        {
          ()
        }
      else
        fail%1(){
          throw new MatchError(temp2)
        }
      exception when typing {
        <synthetic> val temp2: A#B = C.this.x();
        if (C.this.A$$C$$$$$$outer().D().==(temp2))
          {
            ()
          }
        else
          fail%1(){
            throw new MatchError(temp2)
          }
      }
      exception when typing C.this.synchronized({
        <synthetic> val temp2: A#B = C.this.x();
        if (C.this.A$$C$$$$$$outer().D().==(temp2))
          {
            ()
          }
        else
          fail%1(){
            throw new MatchError(temp2)
          }
      })
      exception when typing def y(): Unit = C.this.synchronized({
        <synthetic> val temp2: A#B = C.this.x();
        if (C.this.A$$C$$$$$$outer().D().==(temp2))
          {
            ()
          }
        else
          fail%1(){
            throw new MatchError(temp2)
          }
      })
      exception when typing class C extends java.lang.Object with ScalaObject {
        def this($$outer: A): A#C = {
          C.super.this();
          ()
        };
        private[this] var x: A#B = C.this.A$$C$$$$$$outer().D();
        <accessor> def x(): A#B = C.this.x;
        <accessor> def x_=(x$$1: A#B): Unit = C.this.x = x$$1;
        def y(): Unit = C.this.synchronized({
          <synthetic> val temp2: A#B = C.this.x();
          if (C.this.A$$C$$$$$$outer().D().==(temp2))
            {
              ()
            }
          else
            fail%1(){
              throw new MatchError(temp2)
            }
        });
        protected <synthetic> <paramaccessor> val $$outer: A = _;
        <synthetic> <stable> def A$$C$$$$$$outer(): A = C.this.$$outer
      }
      exception when typing abstract trait A extends java.lang.Object with ScalaObject {
        class B extends java.lang.Object with ScalaObject {
          def this($$outer: A): A#B = {
            B.super.this();
            ()
          };
          protected <synthetic> <paramaccessor> val $$outer: A = _;
          <synthetic> <stable> def A$$B$$$$$$outer(): A = B.this.$$outer
        };
        final case object D extends A#B with ScalaObject with Product with Serializable {
          def this($$outer: A): object A#D = {
            D.super.this($$outer);
            D.this./*Product$$class*/$$init$$();
            ()
          };
          final override def toString(): java.lang.String = "D";
          override def productPrefix(): java.lang.String = "D";
          override def productArity(): Int = 0;
          override def productElement(x$$1: Int): java.lang.Object = {
            <synthetic> val temp1: Int = x$$1;
            {
              throw new java.lang.IndexOutOfBoundsException(x$$1.toString())
            }
          };
          override def canEqual(x$$1: java.lang.Object): Boolean = x$$1.$$isInstanceOf[object A#D]();
          <synthetic> <stable> def A$$D$$$$$$outer(): A = D.this.$$outer
        };
        final case <stable> def D(): object A#D;
        class C extends java.lang.Object with ScalaObject {
          def this($$outer: A): A#C = {
            C.super.this();
            ()
          };
          private[this] var x: A#B = C.this.A$$C$$$$$$outer().D();
          <accessor> def x(): A#B = C.this.x;
          <accessor> def x_=(x$$1: A#B): Unit = C.this.x = x$$1;
          def y(): Unit = C.this.synchronized({
            <synthetic> val temp2: A#B = C.this.x();
            if (C.this.A$$C$$$$$$outer().D().==(temp2))
              {
                ()
              }
            else
              fail%1(){
                throw new MatchError(temp2)
              }
          });
          protected <synthetic> <paramaccessor> val $$outer: A = _;
          <synthetic> <stable> def A$$C$$$$$$outer(): A = C.this.$$outer
        }
      }
      exception when typing package <empty> {
        abstract trait A extends java.lang.Object with ScalaObject {
          class B extends java.lang.Object with ScalaObject {
            def this($$outer: A): A#B = {
              B.super.this();
              ()
            };
            protected <synthetic> <paramaccessor> val $$outer: A = _;
            <synthetic> <stable> def A$$B$$$$$$outer(): A = B.this.$$outer
          };
          final case object D extends A#B with ScalaObject with Product with Serializable {
            def this($$outer: A): object A#D = {
              D.super.this($$outer);
              D.this./*Product$$class*/$$init$$();
              ()
            };
            final override def toString(): java.lang.String = "D";
            override def productPrefix(): java.lang.String = "D";
            override def productArity(): Int = 0;
            override def productElement(x$$1: Int): java.lang.Object = {
              <synthetic> val temp1: Int = x$$1;
              {
                throw new java.lang.IndexOutOfBoundsException(x$$1.toString())
              }
            };
            override def canEqual(x$$1: java.lang.Object): Boolean = x$$1.$$isInstanceOf[object A#D]();
            <synthetic> <stable> def A$$D$$$$$$outer(): A = D.this.$$outer
          };
          final case <stable> def D(): object A#D;
          class C extends java.lang.Object with ScalaObject {
            def this($$outer: A): A#C = {
              C.super.this();
              ()
            };
            private[this] var x: A#B = C.this.A$$C$$$$$$outer().D();
            <accessor> def x(): A#B = C.this.x;
            <accessor> def x_=(x$$1: A#B): Unit = C.this.x = x$$1;
            def y(): Unit = C.this.synchronized({
              <synthetic> val temp2: A#B = C.this.x();
              if (C.this.A$$C$$$$$$outer().D().==(temp2))
                {
                  ()
                }
              else
                fail%1(){
                  throw new MatchError(temp2)
                }
            });
            protected <synthetic> <paramaccessor> val $$outer: A = _;
            <synthetic> <stable> def A$$C$$$$$$outer(): A = C.this.$$outer
          }
        };
        abstract trait A$$class extends java.lang.Object with ScalaObject with A {
          def /*A$$class*/$$init$$(): Unit = {
            ()
          };
          @volatile <local> <synthetic> var A$$$$D$$module: object A#D = _;
          final case <stable> def D(): object A#D = new object A#D(A$$class.this)
        }
      }
      error: java.util.NoSuchElementException: key not found: trait Nothing
      	at scala.collection.MapLike$$class.default(MapLike.scala:224)
      	at scala.collection.immutable.HashMap.default(HashMap.scala:36)
      	at scala.collection.MapLike$$class.apply(MapLike.scala:135)
      	at scala.collection.immutable.HashMap.apply(HashMap.scala:36)
      	at scala.tools.nsc.transform.Erasure$$Eraser.box(Erasure.scala:545)
      	at scala.tools.nsc.transform.Erasure$$Eraser.box(Erasure.scala:525)
      	at scala.tools.nsc.transform.Erasure$$Eraser.adaptToType(Erasure.scala:597)
      	at scala.tools.nsc.transform.Erasure$$Eraser.adapt(Erasure.scala:679)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4219)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4276)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedIf$$1(Typers.scala:3146)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed1(Typers.scala:3942)
      	at scala.tools.nsc.transform.Erasure$$Eraser.typed1(Erasure.scala:685)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4214)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedBlock(Typers.scala:1914)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed1(Typers.scala:3906)
      	at scala.tools.nsc.transform.Erasure$$Eraser.typed1(Erasure.scala:685)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4214)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedArg(Typers.scala:2185)
      	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$typedArgs$$3.apply(Typers.scala:2198)
      	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$typedArgs$$3.apply(Typers.scala:2197)
      	at scala.Tuple3$$Zipped$$$$anonfun$$map$$1.apply(Tuple3.scala:66)
      	at scala.Tuple3$$Zipped$$$$anonfun$$map$$1.apply(Tuple3.scala:64)
      	at scala.collection.LinearSeqOptimized$$class.foreach(LinearSeqOptimized.scala:59)
      	at scala.collection.immutable.List.foreach(List.scala:45)
      	at scala.Tuple3$$Zipped.map(Tuple3.scala:64)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedArgs(Typers.scala:2197)
      	at scala.tools.nsc.typechecker.Typers$$Typer.doTypedApply(Typers.scala:2415)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedApply$$1(Typers.scala:3344)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed1(Typers.scala:4059)
      	at scala.tools.nsc.transform.Erasure$$Eraser.typed1(Erasure.scala:685)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4214)
      	at scala.tools.nsc.typechecker.Typers$$Typer.transformedOrTyped(Typers.scala:4360)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedDefDef(Typers.scala:1754)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed1(Typers.scala:3874)
      	at scala.tools.nsc.transform.Erasure$$Eraser.typed1(Erasure.scala:685)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4214)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedStat$$1(Typers.scala:2094)
      	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$24.apply(Typers.scala:2178)
      	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$24.apply(Typers.scala:2178)
      	at scala.collection.immutable.List.loop$$1(List.scala:117)
      	at scala.collection.immutable.List.mapConserve(List.scala:133)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedStats(Typers.scala:2178)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedTemplate(Typers.scala:1506)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedClassDef(Typers.scala:1271)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed1(Typers.scala:3865)
      	at scala.tools.nsc.transform.Erasure$$Eraser.typed1(Erasure.scala:685)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4214)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedStat$$1(Typers.scala:2094)
      	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$24.apply(Typers.scala:2178)
      	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$24.apply(Typers.scala:2178)
      	at scala.collection.immutable.List.loop$$1(List.scala:117)
      	at scala.collection.immutable.List.mapConserve(List.scala:133)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedStats(Typers.scala:2178)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedTemplate(Typers.scala:1506)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedClassDef(Typers.scala:1271)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed1(Typers.scala:3865)
      	at scala.tools.nsc.transform.Erasure$$Eraser.typed1(Erasure.scala:685)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4214)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedStat$$1(Typers.scala:2094)
      	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$24.apply(Typers.scala:2178)
      	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$24.apply(Typers.scala:2178)
      	at scala.collection.immutable.List.loop$$1(List.scala:117)
      	at scala.collection.immutable.List.mapConserve(List.scala:133)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedStats(Typers.scala:2178)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed1(Typers.scala:3861)
      	at scala.tools.nsc.transform.Erasure$$Eraser.typed1(Erasure.scala:685)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4214)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4263)
      	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anonfun$$transform$$1.apply(Erasure.scala:1120)
      	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anonfun$$transform$$1.apply(Erasure.scala:1115)
      	at scala.tools.nsc.symtab.SymbolTable.atPhase(SymbolTable.scala:96)
      	at scala.tools.nsc.transform.Erasure$$ErasureTransformer.transform(Erasure.scala:1115)
      	at scala.tools.nsc.ast.Trees$$Transformer.transformUnit(Trees.scala:892)
      	at scala.tools.nsc.transform.Transform$$Phase.apply(Transform.scala:30)
      	at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$applyPhase$$1.apply(Global.scala:326)
      	at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$applyPhase$$1.apply(Global.scala:326)
      	at scala.tools.nsc.reporters.Reporter.withSource(Reporter.scala:47)
      	at scala.tools.nsc.Global$$GlobalPhase.applyPhase(Global.scala:326)
      	at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$run$$1.apply(Global.scala:294)
      	at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$run$$1.apply(Global.scala:294)
      	at scala.collection.Iterator$$class.foreach(Iterator.scala:652)
      	at scala.collection.mutable.ListBuffer$$$$anon$$1.foreach(ListBuffer.scala:311)
      	at scala.tools.nsc.Global$$GlobalPhase.run(Global.scala:294)
      	at scala.tools.nsc.Global$$Run.compileSources(Global.scala:949)
      	at scala.tools.nsc.Global$$Run.compile(Global.scala:1034)
      	at scala.tools.nsc.Main$$.process(Main.scala:106)
      	at scala.tools.nsc.Main$$.main(Main.scala:123)
      	at scala.tools.nsc.Main.main(Main.scala)
      
      Exception in thread "main" java.util.NoSuchElementException: key not found: trait Nothing
      	at scala.collection.MapLike$$class.default(MapLike.scala:224)
      	at scala.collection.immutable.HashMap.default(HashMap.scala:36)
      	at scala.collection.MapLike$$class.apply(MapLike.scala:135)
      	at scala.collection.immutable.HashMap.apply(HashMap.scala:36)
      	at scala.tools.nsc.transform.Erasure$$Eraser.box(Erasure.scala:545)
      	at scala.tools.nsc.transform.Erasure$$Eraser.box(Erasure.scala:525)
      	at scala.tools.nsc.transform.Erasure$$Eraser.adaptToType(Erasure.scala:597)
      	at scala.tools.nsc.transform.Erasure$$Eraser.adapt(Erasure.scala:679)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4219)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4276)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedIf$$1(Typers.scala:3146)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed1(Typers.scala:3942)
      	at scala.tools.nsc.transform.Erasure$$Eraser.typed1(Erasure.scala:685)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4214)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedBlock(Typers.scala:1914)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed1(Typers.scala:3906)
      	at scala.tools.nsc.transform.Erasure$$Eraser.typed1(Erasure.scala:685)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4214)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedArg(Typers.scala:2185)
      	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$typedArgs$$3.apply(Typers.scala:2198)
      	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$typedArgs$$3.apply(Typers.scala:2197)
      	at scala.Tuple3$$Zipped$$$$anonfun$$map$$1.apply(Tuple3.scala:66)
      	at scala.Tuple3$$Zipped$$$$anonfun$$map$$1.apply(Tuple3.scala:64)
      	at scala.collection.LinearSeqOptimized$$class.foreach(LinearSeqOptimized.scala:59)
      	at scala.collection.immutable.List.foreach(List.scala:45)
      	at scala.Tuple3$$Zipped.map(Tuple3.scala:64)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedArgs(Typers.scala:2197)
      	at scala.tools.nsc.typechecker.Typers$$Typer.doTypedApply(Typers.scala:2415)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedApply$$1(Typers.scala:3344)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed1(Typers.scala:4059)
      	at scala.tools.nsc.transform.Erasure$$Eraser.typed1(Erasure.scala:685)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4214)
      	at scala.tools.nsc.typechecker.Typers$$Typer.transformedOrTyped(Typers.scala:4360)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedDefDef(Typers.scala:1754)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed1(Typers.scala:3874)
      	at scala.tools.nsc.transform.Erasure$$Eraser.typed1(Erasure.scala:685)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4214)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedStat$$1(Typers.scala:2094)
      	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$24.apply(Typers.scala:2178)
      	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$24.apply(Typers.scala:2178)
      	at scala.collection.immutable.List.loop$$1(List.scala:117)
      	at scala.collection.immutable.List.mapConserve(List.scala:133)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedStats(Typers.scala:2178)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedTemplate(Typers.scala:1506)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedClassDef(Typers.scala:1271)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed1(Typers.scala:3865)
      	at scala.tools.nsc.transform.Erasure$$Eraser.typed1(Erasure.scala:685)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4214)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedStat$$1(Typers.scala:2094)
      	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$24.apply(Typers.scala:2178)
      	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$24.apply(Typers.scala:2178)
      	at scala.collection.immutable.List.loop$$1(List.scala:117)
      	at scala.collection.immutable.List.mapConserve(List.scala:133)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedStats(Typers.scala:2178)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedTemplate(Typers.scala:1506)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedClassDef(Typers.scala:1271)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed1(Typers.scala:3865)
      	at scala.tools.nsc.transform.Erasure$$Eraser.typed1(Erasure.scala:685)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4214)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedStat$$1(Typers.scala:2094)
      	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$24.apply(Typers.scala:2178)
      	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$24.apply(Typers.scala:2178)
      	at scala.collection.immutable.List.loop$$1(List.scala:117)
      	at scala.collection.immutable.List.mapConserve(List.scala:133)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typedStats(Typers.scala:2178)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed1(Typers.scala:3861)
      	at scala.tools.nsc.transform.Erasure$$Eraser.typed1(Erasure.scala:685)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4214)
      	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4263)
      	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anonfun$$transform$$1.apply(Erasure.scala:1120)
      	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anonfun$$transform$$1.apply(Erasure.scala:1115)
      	at scala.tools.nsc.symtab.SymbolTable.atPhase(SymbolTable.scala:96)
      	at scala.tools.nsc.transform.Erasure$$ErasureTransformer.transform(Erasure.scala:1115)
      	at scala.tools.nsc.ast.Trees$$Transformer.transformUnit(Trees.scala:892)
      	at scala.tools.nsc.transform.Transform$$Phase.apply(Transform.scala:30)
      	at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$applyPhase$$1.apply(Global.scala:326)
      	at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$applyPhase$$1.apply(Global.scala:326)
      	at scala.tools.nsc.reporters.Reporter.withSource(Reporter.scala:47)
      	at scala.tools.nsc.Global$$GlobalPhase.applyPhase(Global.scala:326)
      	at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$run$$1.apply(Global.scala:294)
      	at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$run$$1.apply(Global.scala:294)
      	at scala.collection.Iterator$$class.foreach(Iterator.scala:652)
      	at scala.collection.mutable.ListBuffer$$$$anon$$1.foreach(ListBuffer.scala:311)
      	at scala.tools.nsc.Global$$GlobalPhase.run(Global.scala:294)
      	at scala.tools.nsc.Global$$Run.compileSources(Global.scala:949)
      	at scala.tools.nsc.Global$$Run.compile(Global.scala:1034)
      	at scala.tools.nsc.Main$$.process(Main.scala:106)
      	at scala.tools.nsc.Main$$.main(Main.scala:123)
      	at scala.tools.nsc.Main.main(Main.scala)
      

      === What versions of the following are you using? ===

      • Scala: 2.9.0.final
      • Java: 1.6.0_24
      • Operating system: Mac OS X 10.6.7 (10J869)

        Activity

        Hide
        John Thywissen added a comment -

        Work around (in the few cases we've hit this bug) is as simple as re-arranging the cases in the match.

        Show
        John Thywissen added a comment - Work around (in the few cases we've hit this bug) is as simple as re-arranging the cases in the match.
        Hide
        Iulian Dragos added a comment -

        (In r24986) Fixed SI-4593. Don't box Nothing types. review by extempore, odersky.

        Show
        Iulian Dragos added a comment - (In r24986) Fixed SI-4593 . Don't box Nothing types. review by extempore, odersky.
        Hide
        Mark Harrah added a comment -

        I assume this was intended to be closed.

        Show
        Mark Harrah added a comment - I assume this was intended to be closed.

          People

          • Assignee:
            Iulian Dragos
            Reporter:
            John Thywissen
            TracCC:
            Ismael Juma, John Thywissen, Mark Harrah
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development