This page is no longer maintained — Please continue to the home page at www.scala-lang.org

no-symbol does not have owner

3 replies
Florian Hars 3
Joined: 2011-05-08,
User offline. Last seen 42 years 45 weeks ago.

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 ---------------

Florian Hars 3
Joined: 2011-05-08,
User offline. Last seen 42 years 45 weeks ago.
Re: no-symbol does not have owner

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.

Florian Hars 3
Joined: 2011-05-08,
User offline. Last seen 42 years 45 weeks ago.
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 ---------------
>

Hubert Plociniczak
Joined: 2009-09-12,
User offline. Last seen 42 years 45 weeks ago.
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 ---------------
>>

Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland