Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

parse error since 4.8.0 #3210

Closed
xuwei-k opened this issue Jun 29, 2023 · 0 comments · Fixed by #3217
Closed

parse error since 4.8.0 #3210

xuwei-k opened this issue Jun 29, 2023 · 0 comments · Fixed by #3217

Comments

@xuwei-k
Copy link
Contributor

xuwei-k commented Jun 29, 2023

build.sbt

libraryDependencies += "org.scalameta" %% "scalameta" % "4.8.0"

scalaVersion := "2.13.11"

Main.scala

import scala.meta._

object Main {
  def main(args: Array[String]): Unit = {
    val src = Input.String(
"""
class A1 {
  def a2(a3: A4): A5 = {
    a3 match {
      case Some(_) =>
        case class A6(a7: A8)

        object A9
    }
  }
}
"""
)

    val p = implicitly[parsers.Parse[Source]]

    println(p.apply(src, dialects.Scala213).get.structure)
  }
}

result sbt run

[info] running Main 
[error] <input>:8: error: ; expected but object found
[error]         object A9
[error]         ^
[error] 	at scala.meta.internal.parsers.Reporter.syntaxError(Reporter.scala:16)
[error] 	at scala.meta.internal.parsers.Reporter.syntaxError$(Reporter.scala:16)
[error] 	at scala.meta.internal.parsers.Reporter$$anon$1.syntaxError(Reporter.scala:22)
[error] 	at scala.meta.internal.parsers.Reporter.syntaxError(Reporter.scala:17)
[error] 	at scala.meta.internal.parsers.Reporter.syntaxError$(Reporter.scala:17)
[error] 	at scala.meta.internal.parsers.Reporter$$anon$1.syntaxError(Reporter.scala:22)
[error] 	at scala.meta.internal.parsers.ScalametaParser.syntaxErrorExpected(ScalametaParser.scala:367)
[error] 	at scala.meta.internal.parsers.ScalametaParser.expect(ScalametaParser.scala:369)
[error] 	at scala.meta.internal.parsers.ScalametaParser.accept(ScalametaParser.scala:373)
[error] 	at scala.meta.internal.parsers.ScalametaParser.acceptStatSep(ScalametaParser.scala:389)
[error] 	at scala.meta.internal.parsers.ScalametaParser.acceptStatSepOpt(ScalametaParser.scala:393)
[error] 	at scala.meta.internal.parsers.ScalametaParser.iter$6(ScalametaParser.scala:4491)
[error] 	at scala.meta.internal.parsers.ScalametaParser.$anonfun$blockStatSeq$1(ScalametaParser.scala:4512)
[error] 	at scala.meta.internal.parsers.ScalametaParser.$anonfun$blockStatSeq$1$adapted(ScalametaParser.scala:4462)
[error] 	at scala.meta.internal.parsers.ScalametaParser.scala$meta$internal$parsers$ScalametaParser$$listBy(ScalametaParser.scala:505)
[error] 	at scala.meta.internal.parsers.ScalametaParser.blockStatSeq(ScalametaParser.scala:4462)
[error] 	at scala.meta.internal.parsers.ScalametaParser.parseStatSeq$1(ScalametaParser.scala:2446)
[error] 	at scala.meta.internal.parsers.ScalametaParser.caseBody$1(ScalametaParser.scala:2453)
[error] 	at scala.meta.internal.parsers.ScalametaParser.caseClause(ScalametaParser.scala:2456)
[error] 	at scala.meta.internal.parsers.ScalametaParser.iter$4(ScalametaParser.scala:2487)
[error] 	at scala.meta.internal.parsers.ScalametaParser.caseClausesIfAny(ScalametaParser.scala:2494)
[error] 	at scala.meta.internal.parsers.ScalametaParser.caseClauses(ScalametaParser.scala:2470)
[error] 	at scala.meta.internal.parsers.ScalametaParser.matchClause(ScalametaParser.scala:1456)
[error] 	at scala.meta.internal.parsers.ScalametaParser.iter$2(ScalametaParser.scala:1657)
[error] 	at scala.meta.internal.parsers.ScalametaParser.exprOtherRest(ScalametaParser.scala:1662)
[error] 	at scala.meta.internal.parsers.ScalametaParser.$anonfun$expr$2(ScalametaParser.scala:1608)
[error] 	at scala.meta.internal.parsers.ScalametaParser.atPosOpt(ScalametaParser.scala:303)
[error] 	at scala.meta.internal.parsers.ScalametaParser.autoPosOpt(ScalametaParser.scala:347)
[error] 	at scala.meta.internal.parsers.ScalametaParser.expr(ScalametaParser.scala:1512)
[error] 	at scala.meta.internal.parsers.ScalametaParser.$anonfun$blockStatSeq$4(ScalametaParser.scala:4495)
[error] 	at scala.meta.internal.parsers.ScalametaParser.stat(ScalametaParser.scala:4332)
[error] 	at scala.meta.internal.parsers.ScalametaParser.iter$6(ScalametaParser.scala:4495)
[error] 	at scala.meta.internal.parsers.ScalametaParser.$anonfun$blockStatSeq$1(ScalametaParser.scala:4512)
[error] 	at scala.meta.internal.parsers.ScalametaParser.$anonfun$blockStatSeq$1$adapted(ScalametaParser.scala:4462)
[error] 	at scala.meta.internal.parsers.ScalametaParser.scala$meta$internal$parsers$ScalametaParser$$listBy(ScalametaParser.scala:505)
[error] 	at scala.meta.internal.parsers.ScalametaParser.blockStatSeq(ScalametaParser.scala:4462)
[error] 	at scala.meta.internal.parsers.ScalametaParser.blockWithinDelims(ScalametaParser.scala:2428)
[error] 	at scala.meta.internal.parsers.ScalametaParser.blockWithStats$1(ScalametaParser.scala:2431)
[error] 	at scala.meta.internal.parsers.ScalametaParser.$anonfun$block$1(ScalametaParser.scala:2433)
[error] 	at scala.meta.internal.parsers.ScalametaParser.atPos(ScalametaParser.scala:300)
[error] 	at scala.meta.internal.parsers.ScalametaParser.autoPos(ScalametaParser.scala:346)
[error] 	at scala.meta.internal.parsers.ScalametaParser.block(ScalametaParser.scala:2430)
[error] 	at scala.meta.internal.parsers.ScalametaParser.blockExpr(ScalametaParser.scala:2424)
[error] 	at scala.meta.internal.parsers.ScalametaParser.simpleExpr0(ScalametaParser.scala:2181)
[error] 	at scala.meta.internal.parsers.ScalametaParser.simpleExpr(ScalametaParser.scala:2152)
[error] 	at scala.meta.internal.parsers.ScalametaParser.prefixExpr(ScalametaParser.scala:2135)
[error] 	at scala.meta.internal.parsers.ScalametaParser.postfixExpr(ScalametaParser.scala:2026)
[error] 	at scala.meta.internal.parsers.ScalametaParser.$anonfun$expr$2(ScalametaParser.scala:1607)
[error] 	at scala.meta.internal.parsers.ScalametaParser.atPosOpt(ScalametaParser.scala:303)
[error] 	at scala.meta.internal.parsers.ScalametaParser.autoPosOpt(ScalametaParser.scala:347)
[error] 	at scala.meta.internal.parsers.ScalametaParser.expr(ScalametaParser.scala:1512)
[error] 	at scala.meta.internal.parsers.ScalametaParser.expr(ScalametaParser.scala:1403)
[error] 	at scala.meta.internal.parsers.ScalametaParser.exprMaybeIndented(ScalametaParser.scala:1425)
[error] 	at scala.meta.internal.parsers.ScalametaParser.$anonfun$funDefRest$1(ScalametaParser.scala:3730)
[error] 	at scala.meta.internal.parsers.ScalametaParser.autoEndPos(ScalametaParser.scala:349)
[error] 	at scala.meta.internal.parsers.ScalametaParser.autoEndPos(ScalametaParser.scala:354)
[error] 	at scala.meta.internal.parsers.ScalametaParser.funDefRest(ScalametaParser.scala:3692)
[error] 	at scala.meta.internal.parsers.ScalametaParser.funDefOrDclOrExtensionOrSecondaryCtor(ScalametaParser.scala:3638)
[error] 	at scala.meta.internal.parsers.ScalametaParser.defOrDclOrSecondaryCtor(ScalametaParser.scala:3470)
[error] 	at scala.meta.internal.parsers.ScalametaParser.nonLocalDefOrDcl(ScalametaParser.scala:3449)
[error] 	at scala.meta.internal.parsers.ScalametaParser$$anonfun$templateStat$1.applyOrElse(ScalametaParser.scala:4409)
[error] 	at scala.meta.internal.parsers.ScalametaParser$$anonfun$templateStat$1.applyOrElse(ScalametaParser.scala:4403)
[error] 	at scala.PartialFunction.$anonfun$runWith$1(PartialFunction.scala:231)
[error] 	at scala.PartialFunction.$anonfun$runWith$1$adapted(PartialFunction.scala:230)
[error] 	at scala.meta.internal.parsers.ScalametaParser.statSeqBuf(ScalametaParser.scala:4351)
[error] 	at scala.meta.internal.parsers.ScalametaParser.getStats$2(ScalametaParser.scala:4393)
[error] 	at scala.meta.internal.parsers.ScalametaParser.$anonfun$scala$meta$internal$parsers$ScalametaParser$$templateStatSeq$3(ScalametaParser.scala:4394)
[error] 	at scala.meta.internal.parsers.ScalametaParser.$anonfun$scala$meta$internal$parsers$ScalametaParser$$templateStatSeq$3$adapted(ScalametaParser.scala:4391)
[error] 	at scala.meta.internal.parsers.ScalametaParser.scala$meta$internal$parsers$ScalametaParser$$listBy(ScalametaParser.scala:505)
[error] 	at scala.meta.internal.parsers.ScalametaParser.scala$meta$internal$parsers$ScalametaParser$$templateStatSeq(ScalametaParser.scala:4391)
[error] 	at scala.meta.internal.parsers.ScalametaParser.scala$meta$internal$parsers$ScalametaParser$$templateStatSeq(ScalametaParser.scala:4380)
[error] 	at scala.meta.internal.parsers.ScalametaParser.$anonfun$templateBody$1(ScalametaParser.scala:4231)
[error] 	at scala.meta.internal.parsers.ScalametaParser.inBracesOr(ScalametaParser.scala:245)
[error] 	at scala.meta.internal.parsers.ScalametaParser.inBraces(ScalametaParser.scala:241)
[error] 	at scala.meta.internal.parsers.ScalametaParser.templateBody(ScalametaParser.scala:4231)
[error] 	at scala.meta.internal.parsers.ScalametaParser.templateBodyOpt(ScalametaParser.scala:4235)
[error] 	at scala.meta.internal.parsers.ScalametaParser.templateAfterExtends(ScalametaParser.scala:4178)
[error] 	at scala.meta.internal.parsers.ScalametaParser.$anonfun$templateOpt$1(ScalametaParser.scala:4226)
[error] 	at scala.meta.internal.parsers.ScalametaParser.atPos(ScalametaParser.scala:300)
[error] 	at scala.meta.internal.parsers.ScalametaParser.autoPos(ScalametaParser.scala:346)
[error] 	at scala.meta.internal.parsers.ScalametaParser.templateOpt(ScalametaParser.scala:4216)
[error] 	at scala.meta.internal.parsers.ScalametaParser.$anonfun$classDef$1(ScalametaParser.scala:3860)
[error] 	at scala.meta.internal.parsers.ScalametaParser.autoEndPos(ScalametaParser.scala:349)
[error] 	at scala.meta.internal.parsers.ScalametaParser.autoEndPos(ScalametaParser.scala:354)
[error] 	at scala.meta.internal.parsers.ScalametaParser.classDef(ScalametaParser.scala:3836)
[error] 	at scala.meta.internal.parsers.ScalametaParser.tmplDef(ScalametaParser.scala:3795)
[error] 	at scala.meta.internal.parsers.ScalametaParser.topLevelTmplDef(ScalametaParser.scala:3780)
[error] 	at scala.meta.internal.parsers.ScalametaParser$$anonfun$2.applyOrElse(ScalametaParser.scala:4372)
[error] 	at scala.meta.internal.parsers.ScalametaParser$$anonfun$2.applyOrElse(ScalametaParser.scala:4360)
[error] 	at scala.PartialFunction.$anonfun$runWith$1(PartialFunction.scala:231)
[error] 	at scala.PartialFunction.$anonfun$runWith$1$adapted(PartialFunction.scala:230)
[error] 	at scala.meta.internal.parsers.ScalametaParser.statSeqBuf(ScalametaParser.scala:4351)
[error] 	at scala.meta.internal.parsers.ScalametaParser.$anonfun$batchSource$13(ScalametaParser.scala:4588)
[error] 	at scala.Option.getOrElse(Option.scala:201)
[error] 	at scala.meta.internal.parsers.ScalametaParser.$anonfun$batchSource$1(ScalametaParser.scala:4588)
[error] 	at scala.meta.internal.parsers.ScalametaParser.atPos(ScalametaParser.scala:300)
[error] 	at scala.meta.internal.parsers.ScalametaParser.autoPos(ScalametaParser.scala:346)
[error] 	at scala.meta.internal.parsers.ScalametaParser.batchSource(ScalametaParser.scala:4544)
[error] 	at scala.meta.internal.parsers.ScalametaParser.$anonfun$source$1(ScalametaParser.scala:4537)
[error] 	at scala.meta.internal.parsers.ScalametaParser.atPos(ScalametaParser.scala:300)
[error] 	at scala.meta.internal.parsers.ScalametaParser.autoPos(ScalametaParser.scala:346)
[error] 	at scala.meta.internal.parsers.ScalametaParser.source(ScalametaParser.scala:4537)
[error] 	at scala.meta.internal.parsers.ScalametaParser.entrypointSource(ScalametaParser.scala:4542)
[error] 	at scala.meta.internal.parsers.ScalametaParser.parseSourceImpl(ScalametaParser.scala:127)
[error] 	at scala.meta.internal.parsers.ScalametaParser.$anonfun$parseSource$1(ScalametaParser.scala:124)
[error] 	at scala.meta.internal.parsers.ScalametaParser.parseRuleAfterBOF(ScalametaParser.scala:51)
[error] 	at scala.meta.internal.parsers.ScalametaParser.parseRule(ScalametaParser.scala:46)
[error] 	at scala.meta.internal.parsers.ScalametaParser.parseSource(ScalametaParser.scala:124)
[error] 	at scala.meta.parsers.Parse$.$anonfun$parseSource$1(Parse.scala:29)
[error] 	at scala.meta.parsers.Parse$$anon$1.apply(Parse.scala:36)
[error] 	at Main$.main(Main.scala:22)
[error] 	at Main.main(Main.scala)
[error] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error] 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[error] stack trace is suppressed; run last Compile / run for the full output
[error] (Compile / run) <input>:8: error: ; expected but object found
[error]         object A9
[error]         ^

run with scalameta 4.7.8

Source(List(Defn.Class(Nil, Type.Name("A1"), Type.ParamClause(Nil), Ctor.Primary(Nil, Name(""), Nil), Template(Nil, Nil, Self(Name(""), None), List(Defn.Def(Nil, Term.Name("a2"), List(Member.ParamClauseGroup(Type.ParamClause(Nil), List(Term.ParamClause(List(Term.Param(Nil, Term.Name("a3"), Some(Type.Name("A4")), None)), None)))), Some(Type.Name("A5")), Term.Block(List(Term.Match(Term.Name("a3"), List(Case(Pat.Extract(Term.Name("Some"), Pat.ArgClause(List(Pat.Wildcard()))), None, Term.Block(List(Defn.Class(List(Mod.Case()), Type.Name("A6"), Type.ParamClause(Nil), Ctor.Primary(Nil, Name(""), List(Term.ParamClause(List(Term.Param(Nil, Term.Name("a7"), Some(Type.Name("A8")), None)), None))), Template(Nil, Nil, Self(Name(""), None), Nil, Nil)), Defn.Object(Nil, Term.Name("A9"), Template(Nil, Nil, Self(Name(""), None), Nil, Nil)))))), Nil))))), Nil))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant