Skip to content

Dangling for causes NPE (parser stability) #7742

Closed
@sir-wabbit

Description

@sir-wabbit

minimized code

object A {
    for
}
Stack trace
exception occurred while parsing testing/Test.scala
exception occurred while compiling testing/Test.scala
java.lang.NullPointerException while compiling testing/Test.scala
Exception in thread "main" java.lang.NullPointerException
	at dotty.tools.dotc.parsing.Parsers$Parser.subPart(Parsers.scala:615)
	at dotty.tools.dotc.parsing.Parsers$Parser.subExpr(Parsers.scala:1761)
	at dotty.tools.dotc.parsing.Parsers$Parser.generatorRest(Parsers.scala:2318)
	at dotty.tools.dotc.parsing.Parsers$Parser.generator(Parsers.scala:2309)
	at dotty.tools.dotc.parsing.Parsers$Parser.enumerators(Parsers.scala:2280)
	at dotty.tools.dotc.parsing.Parsers$Parser.$anonfun$39(Parsers.scala:2374)
	at dotty.tools.dotc.parsing.Parsers$Parser.inSepRegion(Parsers.scala:603)
	at dotty.tools.dotc.parsing.Parsers$Parser.forExpr$$anonfun$1(Parsers.scala:2374)
	at dotty.tools.dotc.parsing.Scanners$Scanner.endMarkerScope(Scanners.scala:337)
	at dotty.tools.dotc.parsing.Parsers$Parser.forExpr(Parsers.scala:2402)
	at dotty.tools.dotc.parsing.Parsers$Parser.expr1(Parsers.scala:1873)
	at dotty.tools.dotc.parsing.Parsers$Parser.expr(Parsers.scala:1778)
	at dotty.tools.dotc.parsing.Parsers$Parser.blockStatSeq$$anonfun$1(Parsers.scala:3732)
	at dotty.tools.dotc.parsing.Parsers$Parser.checkNoEscapingPlaceholders(Parsers.scala:500)
	at dotty.tools.dotc.parsing.Parsers$Parser.blockStatSeq(Parsers.scala:3744)
	at dotty.tools.dotc.printing.SyntaxHighlighting$.highlight(SyntaxHighlighting.scala:125)
	at dotty.tools.dotc.reporting.MessageRendering.sourceLines(MessageRendering.scala:69)
	at dotty.tools.dotc.reporting.AbstractReporter.sourceLines(AbstractReporter.scala:8)
	at dotty.tools.dotc.reporting.MessageRendering.messageAndPos(MessageRendering.scala:153)
	at dotty.tools.dotc.reporting.AbstractReporter.messageAndPos(AbstractReporter.scala:8)
	at dotty.tools.dotc.reporting.ConsoleReporter.doReport(ConsoleReporter.scala:27)
	at dotty.tools.dotc.reporting.Reporter.report(Reporter.scala:271)
	at dotty.tools.dotc.reporting.Reporting.error(Reporter.scala:135)
	at dotty.tools.dotc.core.Contexts$Context.error(Contexts.scala:75)
	at dotty.tools.dotc.parsing.Parsers$ParserCommon.syntaxError(Parsers.scala:146)
	at dotty.tools.dotc.parsing.Parsers$ParserCommon.syntaxError(Parsers.scala:138)
	at dotty.tools.dotc.parsing.Parsers$Parser.syntaxErrorOrIncomplete(Parsers.scala:328)
	at dotty.tools.dotc.parsing.Parsers$Parser.$init$$$anonfun$13(Parsers.scala:2548)
	at dotty.tools.dotc.parsing.Parsers$Parser.infixPattern(Parsers.scala:2509)
	at dotty.tools.dotc.parsing.Parsers$Parser.$init$$$anonfun$12(Parsers.scala:2484)
	at dotty.tools.dotc.parsing.Parsers$Parser.pattern1(Parsers.scala:2474)
	at dotty.tools.dotc.parsing.Parsers$Parser.generator(Parsers.scala:2309)
	at dotty.tools.dotc.parsing.Parsers$Parser.enumerators(Parsers.scala:2280)
	at dotty.tools.dotc.parsing.Parsers$Parser.$anonfun$39(Parsers.scala:2374)
	at dotty.tools.dotc.parsing.Parsers$Parser.inSepRegion(Parsers.scala:603)
	at dotty.tools.dotc.parsing.Parsers$Parser.forExpr$$anonfun$1(Parsers.scala:2374)
	at dotty.tools.dotc.parsing.Scanners$Scanner.endMarkerScope(Scanners.scala:337)
	at dotty.tools.dotc.parsing.Parsers$Parser.forExpr(Parsers.scala:2402)
	at dotty.tools.dotc.parsing.Parsers$Parser.expr1(Parsers.scala:1873)
	at dotty.tools.dotc.parsing.Parsers$Parser.templateStatSeq$$anonfun$1(Parsers.scala:3635)
	at dotty.tools.dotc.parsing.Parsers$Parser.checkNoEscapingPlaceholders(Parsers.scala:500)
	at dotty.tools.dotc.parsing.Parsers$Parser.templateStatSeq(Parsers.scala:3671)
	at dotty.tools.dotc.parsing.Parsers$Parser.$anonfun$29(Parsers.scala:3560)
	at dotty.tools.dotc.parsing.Parsers$Parser.enclosed(Parsers.scala:559)
	at dotty.tools.dotc.parsing.Parsers$Parser.inBraces(Parsers.scala:567)
	at dotty.tools.dotc.parsing.Parsers$Parser.inBracesOrIndented(Parsers.scala:580)
	at dotty.tools.dotc.parsing.Parsers$Parser.inDefScopeBraces(Parsers.scala:584)
	at dotty.tools.dotc.parsing.Parsers$Parser.templateBody(Parsers.scala:3560)
	at dotty.tools.dotc.parsing.Parsers$Parser.templateBodyOpt(Parsers.scala:3553)
	at dotty.tools.dotc.parsing.Parsers$Parser.template(Parsers.scala:3530)
	at dotty.tools.dotc.parsing.Parsers$Parser.templateOpt(Parsers.scala:3542)
	at dotty.tools.dotc.parsing.Parsers$Parser.objectDef$$anonfun$1(Parsers.scala:3321)
	at dotty.tools.dotc.parsing.Scanners$Scanner.endMarkerScope(Scanners.scala:337)
	at dotty.tools.dotc.parsing.Parsers$Parser.objectDef(Parsers.scala:3323)
	at dotty.tools.dotc.parsing.Parsers$Parser.tmplDef(Parsers.scala:3277)
	at dotty.tools.dotc.parsing.Parsers$Parser.defOrDcl(Parsers.scala:3041)
	at dotty.tools.dotc.parsing.Parsers$Parser.topStatSeq(Parsers.scala:3610)
	at dotty.tools.dotc.parsing.Parsers$Parser.topstats$3(Parsers.scala:3782)
	at dotty.tools.dotc.parsing.Parsers$Parser.compilationUnit$$anonfun$1(Parsers.scala:3787)
	at dotty.tools.dotc.parsing.Parsers$Parser.checkNoEscapingPlaceholders(Parsers.scala:500)
	at dotty.tools.dotc.parsing.Parsers$Parser.compilationUnit(Parsers.scala:3792)
	at dotty.tools.dotc.parsing.Parsers$Parser.parse(Parsers.scala:183)
	at dotty.tools.dotc.typer.FrontEnd.parse$$anonfun$1(FrontEnd.scala:56)
	at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
	at dotty.tools.dotc.typer.FrontEnd.monitor(FrontEnd.scala:42)
	at dotty.tools.dotc.typer.FrontEnd.parse(FrontEnd.scala:66)
	at dotty.tools.dotc.typer.FrontEnd.runOn$$anonfun$1(FrontEnd.scala:101)
	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.immutable.List.foreach(List.scala:305)
	at dotty.tools.dotc.typer.FrontEnd.runOn(FrontEnd.scala:101)
	at dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:161)
	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323)
	at dotty.tools.dotc.Run.runPhases$5(Run.scala:171)
	at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:179)
	at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
	at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:65)
	at dotty.tools.dotc.Run.compileUnits(Run.scala:186)
	at dotty.tools.dotc.Run.compileSources(Run.scala:123)
	at dotty.tools.dotc.Run.compile(Run.scala:106)
	at dotty.tools.dotc.Driver.doCompile(Driver.scala:36)
	at dotty.tools.dotc.Driver.process(Driver.scala:189)
	at dotty.tools.dotc.Driver.process(Driver.scala:158)
	at dotty.tools.dotc.Driver.process(Driver.scala:170)
	at dotty.tools.dotc.Driver.main(Driver.scala:197)
	at dotty.tools.dotc.Main.main(Main.scala)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions