Skip to content

REPL fresh name crash on first line of session #7934

Closed
@som-snytt

Description

@som-snytt

minimized code

  ~ dotr
Starting dotty REPL...
scala> List(1) map (_ + 2) size 
Stack trace
Exception in thread "main" java.lang.NullPointerException
	at dotty.tools.dotc.core.NameKinds$UniqueNameKind.fresh(NameKinds.scala:218)
	at dotty.tools.dotc.parsing.Parsers$Parser.simpleExpr(Parsers.scala:2106)
	at dotty.tools.dotc.parsing.Parsers$Parser.$init$$$anonfun$7(Parsers.scala:2075)
	at dotty.tools.dotc.parsing.Parsers$Parser.postfixExpr(Parsers.scala:2059)
	at dotty.tools.dotc.parsing.Parsers$Parser.expr1(Parsers.scala:1920)
	at dotty.tools.dotc.parsing.Parsers$Parser.expr(Parsers.scala:1795)
	at dotty.tools.dotc.parsing.Parsers$Parser.$init$$$anonfun$5(Parsers.scala:1774)
	at dotty.tools.dotc.parsing.Parsers$Parser.tokenSeparated(Parsers.scala:591)
	at dotty.tools.dotc.parsing.Parsers$Parser.commaSeparated(Parsers.scala:599)
	at dotty.tools.dotc.parsing.Parsers$Parser.exprsInParensOpt(Parsers.scala:2196)
	at dotty.tools.dotc.parsing.Parsers$Parser.$anonfun$8(Parsers.scala:2112)
	at dotty.tools.dotc.parsing.Parsers$Parser.enclosed(Parsers.scala:559)
	at dotty.tools.dotc.parsing.Parsers$Parser.inParens(Parsers.scala:566)
	at dotty.tools.dotc.parsing.Parsers$Parser.simpleExpr(Parsers.scala:2112)
	at dotty.tools.dotc.parsing.Parsers$Parser.$init$$$anonfun$7(Parsers.scala:2075)
	at dotty.tools.dotc.parsing.Parsers$Parser.recur$3(Parsers.scala:1004)
	at dotty.tools.dotc.parsing.Parsers$Parser.infixOps(Parsers.scala:1017)
	at dotty.tools.dotc.parsing.Parsers$Parser.postfixExprRest(Parsers.scala:2062)
	at dotty.tools.dotc.parsing.Parsers$Parser.postfixExpr(Parsers.scala:2059)
	at dotty.tools.dotc.parsing.Parsers$Parser.expr1(Parsers.scala:1920)
	at dotty.tools.dotc.parsing.Parsers$Parser.expr(Parsers.scala:1795)
	at dotty.tools.dotc.parsing.Parsers$Parser.blockStatSeq$$anonfun$1(Parsers.scala:3786)
	at dotty.tools.dotc.parsing.Parsers$Parser.checkNoEscapingPlaceholders(Parsers.scala:500)
	at dotty.tools.dotc.parsing.Parsers$Parser.blockStatSeq(Parsers.scala:3798)
	at dotty.tools.repl.ParseResult$.parseStats(ParseResult.scala:113)
	at dotty.tools.repl.ParseResult$.isIncomplete$$anonfun$2(ParseResult.scala:165)
	at dotty.tools.dotc.reporting.Reporter.withIncompleteHandler(Reporter.scala:220)
	at dotty.tools.repl.ParseResult$.isIncomplete(ParseResult.scala:166)
	at dotty.tools.repl.JLineTerminal$Parser.acceptLine$1(JLineTerminal.scala:130)
	at dotty.tools.repl.JLineTerminal$Parser.parse(JLineTerminal.scala:134)
	at org.jline.reader.impl.LineReaderImpl.acceptLine(LineReaderImpl.java:2731)
	at org.jline.reader.impl.LineReaderImpl.readLine(LineReaderImpl.java:585)
	at org.jline.reader.impl.LineReaderImpl.readLine(LineReaderImpl.java:404)
	at dotty.tools.repl.JLineTerminal.readLine(JLineTerminal.scala:68)
	at dotty.tools.repl.ReplDriver.readLine$1(ReplDriver.scala:115)
	at dotty.tools.repl.ReplDriver.loop$1(ReplDriver.scala:125)
	at dotty.tools.repl.ReplDriver.runUntilQuit$$anonfun$1(ReplDriver.scala:130)
	at dotty.tools.repl.ReplDriver.withRedirectedOutput(ReplDriver.scala:148)
	at dotty.tools.repl.ReplDriver.runUntilQuit(ReplDriver.scala:130)
	at dotty.tools.repl.Main$.main(Main.scala:6)
	at dotty.tools.repl.Main.main(Main.scala)

It works on the second line:

  ~ dotr -version
Starting dotty REPL...
Dotty compiler version 0.21.0-RC1 -- Copyright 2002-2019, LAMP/EPFL
scala> 42                                                                             
val res0: Int = 42

scala> List(42)
val res1: List[Int] = List(42)

scala> List(42) map (_ + 1) size                                                      
val res2: Int = 1

I contrived a fairly trivial example to illustrate my point as follows:

  ~ dotr
Starting dotty REPL...
scala> _ + 1
Exception in thread "main" java.lang.NullPointerException
	at dotty.tools.dotc.core.NameKinds$UniqueNameKind.fresh(NameKinds.scala:218)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions