effekt-lang / effekt-lang/effekt

Compiler panic "?C should be a concrete capture set in this phase."

Open
#1,289 3 comments 1 reaction 1 assignee Claimed by @b-studios View on GitHub
bug
Dominant language
Scala
Stars
469
Forks
41
Avg merge
1d 16h
Merged PRs (30d)
23

Description

In some larger code base I got the following panic:

```
[error] ?C should be a concrete capture set in this phase.
[info] at effekt.util.messages$CompilerPanic$.apply(Messages.scala:37)
[info] at effekt.util.messages$ErrorReporter.panic(Messages.scala:118)
[info] at effekt.util.messages$ErrorReporter.panic$(Messages.scala:99)
[info] at effekt.context.Context.panic(Context.scala:41)
[info] at effekt.util.messages$ErrorReporter.panic(Messages.scala:119)
[info] at effekt.core.Transformer$.transform(Transformer.scala:861)
[info] at effekt.core.Transformer$.transform(Transformer.scala:835)
[info] at effekt.core.Transformer$.coercing$$anonfun$2(Transformer.scala:911)
[info] at effekt.core.Transformer$.$anonfun$65(Transformer.scala:828)
[info] at effekt.core.TransformerOps.withBindings$$anonfun$1(Transformer.scala:986)
[info] at effekt.context.ContextOps.in(Context.scala:31)
[info] at effekt.context.ContextOps.in$(Context.scala:17)
[info] at effekt.context.Context.effekt$namer$NamerOps$$super$in(Context.scala:41)
[info] at effekt.namer.NamerOps.in(Namer.scala:979)
[info] at effekt.namer.NamerOps.in$(Namer.scala:961)
...
```

I minimized the responsible code to the following:

```scala
effect break(): => Int at {}

def main() = {
try do break()
with break { resume(42 match {
case 42 => box { 42 }
case _ => panic("whaa")
}) }
()
}
```

Not sure if this is even supposed to work, but we should catch this in earlier phases either way.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.