Skip to content

Commit 8b5005c

Browse files
authored
Add missing parser for extern types (#1300)
1 parent 32abb70 commit 8b5005c

2 files changed

Lines changed: 6 additions & 3 deletions

File tree

effekt/jvm/src/test/scala/effekt/core/ReparseTests.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,11 @@ class ReparseTests extends CoreTests {
8484
val printed = core.ReparsablePrettyPrinter.format(expectedRenamed).layout
8585
val reparsed: ModuleDecl = try { parse(printed)(using Location.empty) } catch {
8686
case e @ TypeError(msg, context) =>
87-
println(e.toString)
88-
throw e
87+
println(e.toString)
88+
throw e
8989
case e =>
9090
println("Error while re-parsing:")
91-
println(printed)
91+
println(e)
9292
throw e
9393
}
9494
val reparsedRenamed = renamer(reparsed)

effekt/shared/src/main/scala/effekt/core/Parser.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,9 @@ class CoreParsers(names: Names) extends EffektLexers {
309309
id, tparams, cparams, vparams, bparams, result, captures,
310310
ExternBody.StringExternBody(ff, templ)
311311
)
312+
}
313+
| `extern` ~> `type` ~> id ~ typeParams.? ^^ {
314+
case id ~ tparams => Extern.Data(id, tparams.getOrElse(Nil))
312315
})
313316

314317
lazy val externBodyTemplate: P[Template[Expr]] =

0 commit comments

Comments
 (0)