- About Scala
- Documentation
- Code Examples
- Software
- Scala Developers
no-symbol does not have owner
Mon, 2011-06-06, 12:02
If I compile the following program in either 2.8.1 or 2.9.0-1, I
get (2.8.1):
java.lang.Error: no-symbol does not have owner
at scala.tools.nsc.symtab.SymbolTable.abort(SymbolTable.scala:33)
at scala.tools.nsc.symtab.Symbols$NoSymbol$.owner(Symbols.scala:2054)
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.outer(LambdaLift.scala:73)
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.scala$tools$nsc$transform$LambdaLift$LambdaLifter$$enclMethOrClass(LambdaLift.scala:104)
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.searchIn$1(LambdaLift.scala:288)
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.proxy(LambdaLift.scala:301)
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.proxyRef(LambdaLift.scala:317)
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.postTransform(LambdaLift.scala:438)
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:454)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:851)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:851)
at scala.collection.immutable.List.loop$1(List.scala:115)
...
or (2.9.0-1):
java.lang.Error: no-symbol does not have owner
at scala.tools.nsc.symtab.SymbolTable.abort(SymbolTable.scala:35)
at scala.tools.nsc.symtab.Symbols$NoSymbol$.owner(Symbols.scala:2146)
at scala.tools.nsc.symtab.Symbols$Symbol.logicallyEnclosingMember(Symbols.scala:1262)
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.searchIn$1(LambdaLift.scala:234)
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.proxy(LambdaLift.scala:243)
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.scala$tools$nsc$transform$LambdaLift$LambdaLifter$$proxyRef(LambdaLift.scala:259)
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.postTransform(LambdaLift.scala:389)
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:412)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:873)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:873)
at scala.collection.immutable.List.loop$1(List.scala:117)
...
Should I open a bug?
- Florian
---------------- cutting here may damage your screen ---------------
import scala.util.parsing.combinator.syntactical._
import org.specs.Specification
class Language extends StandardTokenParsers {
lazy val foo = ident
}
class LanguageSpec extends Specification("Foo") {
val src = "foo"
"tests" should {
"compile" in {
val parser = new Language
val scanner = new parser.lexical.Scanner(src)
parser.foo(scanner) must notBeNull
}
}
}
---------------- cutting here may damage your screen ---------------
Fri, 2011-06-10, 18:27
#2
Bug in LambdaLift? (Was: no-symbol does not have owner)
Nobody seems to have noticed this, but I still think that it is
undesired behavior of the compiler. A workaround for the
problem is to put the content of the test in a separate def
and call that in the test.
- Florian.
On Mon, Jun 06, 2011 at 01:02:26PM +0200, Florian Hars wrote:
> If I compile the following program in either 2.8.1 or 2.9.0-1, I
> get (2.8.1):
>
> java.lang.Error: no-symbol does not have owner
> at scala.tools.nsc.symtab.SymbolTable.abort(SymbolTable.scala:33)
> at scala.tools.nsc.symtab.Symbols$NoSymbol$.owner(Symbols.scala:2054)
> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.outer(LambdaLift.scala:73)
> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.scala$tools$nsc$transform$LambdaLift$LambdaLifter$$enclMethOrClass(LambdaLift.scala:104)
> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.searchIn$1(LambdaLift.scala:288)
> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.proxy(LambdaLift.scala:301)
> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.proxyRef(LambdaLift.scala:317)
> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.postTransform(LambdaLift.scala:438)
> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:454)
> at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:851)
> at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:851)
> at scala.collection.immutable.List.loop$1(List.scala:115)
> ...
>
> or (2.9.0-1):
> java.lang.Error: no-symbol does not have owner
> at scala.tools.nsc.symtab.SymbolTable.abort(SymbolTable.scala:35)
> at scala.tools.nsc.symtab.Symbols$NoSymbol$.owner(Symbols.scala:2146)
> at scala.tools.nsc.symtab.Symbols$Symbol.logicallyEnclosingMember(Symbols.scala:1262)
> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.searchIn$1(LambdaLift.scala:234)
> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.proxy(LambdaLift.scala:243)
> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.scala$tools$nsc$transform$LambdaLift$LambdaLifter$$proxyRef(LambdaLift.scala:259)
> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.postTransform(LambdaLift.scala:389)
> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:412)
> at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:873)
> at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:873)
> at scala.collection.immutable.List.loop$1(List.scala:117)
> ...
>
> Should I open a bug?
>
> - Florian
> ---------------- cutting here may damage your screen ---------------
> import scala.util.parsing.combinator.syntactical._
> import org.specs.Specification
>
> class Language extends StandardTokenParsers {
> lazy val foo = ident
> }
>
> class LanguageSpec extends Specification("Foo") {
>
> val src = "foo"
>
> "tests" should {
> "compile" in {
> val parser = new Language
> val scanner = new parser.lexical.Scanner(src)
> parser.foo(scanner) must notBeNull
> }
> }
> }
> ---------------- cutting here may damage your screen ---------------
>
Sat, 2011-06-11, 19:47
#3
Re: Bug in LambdaLift? (Was: no-symbol does not have owner)
Any compiler crash is a bug. Please have a look at the bug list too see
if something similar wasn't reported already.
Also submitting code without external dependencies would improve the
chances of it being fixed soon.
hubert
On 06/10/2011 07:24 PM, Florian Hars wrote:
> Nobody seems to have noticed this, but I still think that it is
> undesired behavior of the compiler. A workaround for the
> problem is to put the content of the test in a separate def
> and call that in the test.
>
> - Florian.
>
> On Mon, Jun 06, 2011 at 01:02:26PM +0200, Florian Hars wrote:
>> If I compile the following program in either 2.8.1 or 2.9.0-1, I
>> get (2.8.1):
>>
>> java.lang.Error: no-symbol does not have owner
>> at scala.tools.nsc.symtab.SymbolTable.abort(SymbolTable.scala:33)
>> at scala.tools.nsc.symtab.Symbols$NoSymbol$.owner(Symbols.scala:2054)
>> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.outer(LambdaLift.scala:73)
>> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.scala$tools$nsc$transform$LambdaLift$LambdaLifter$$enclMethOrClass(LambdaLift.scala:104)
>> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.searchIn$1(LambdaLift.scala:288)
>> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.proxy(LambdaLift.scala:301)
>> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.proxyRef(LambdaLift.scala:317)
>> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.postTransform(LambdaLift.scala:438)
>> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:454)
>> at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:851)
>> at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:851)
>> at scala.collection.immutable.List.loop$1(List.scala:115)
>> ...
>>
>> or (2.9.0-1):
>> java.lang.Error: no-symbol does not have owner
>> at scala.tools.nsc.symtab.SymbolTable.abort(SymbolTable.scala:35)
>> at scala.tools.nsc.symtab.Symbols$NoSymbol$.owner(Symbols.scala:2146)
>> at scala.tools.nsc.symtab.Symbols$Symbol.logicallyEnclosingMember(Symbols.scala:1262)
>> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.searchIn$1(LambdaLift.scala:234)
>> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.proxy(LambdaLift.scala:243)
>> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.scala$tools$nsc$transform$LambdaLift$LambdaLifter$$proxyRef(LambdaLift.scala:259)
>> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.postTransform(LambdaLift.scala:389)
>> at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:412)
>> at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:873)
>> at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:873)
>> at scala.collection.immutable.List.loop$1(List.scala:117)
>> ...
>>
>> Should I open a bug?
>>
>> - Florian
>> ---------------- cutting here may damage your screen ---------------
>> import scala.util.parsing.combinator.syntactical._
>> import org.specs.Specification
>>
>> class Language extends StandardTokenParsers {
>> lazy val foo = ident
>> }
>>
>> class LanguageSpec extends Specification("Foo") {
>>
>> val src = "foo"
>>
>> "tests" should {
>> "compile" in {
>> val parser = new Language
>> val scanner = new parser.lexical.Scanner(src)
>> parser.foo(scanner) must notBeNull
>> }
>> }
>> }
>> ---------------- cutting here may damage your screen ---------------
>>
On Mon, Jun 06, 2011 at 01:02:26PM +0200, Florian Hars wrote:
> If I compile the following program in either 2.8.1 or 2.9.0-1, I
> get (2.8.1):
> java.lang.Error: no-symbol does not have owner
For what it is worth, if I change the last line in the test to
val res = parser.foo(scanner)
res must notBeNull
scalac still throws the error, but the presentation compiler used by ensime infers res to
have type
scala.util.parsing.combinator.Parsers$ParseResult[String]
- Florian.