bytecodealliance / bytecodealliance/wasmtime

isle: panic when rule for non-multi internal constructor calls a multi extern

Open
#6,756 2 comments 0 reactions 0 assignees View on GitHub
isle
Dominant language
Rust
Stars
18.6k
Forks
1.8k
Avg merge
1d 18h
Merged PRs (30d)
126

Description

Consider the following code:

```isle
(type u64 (primitive u64))
(decl multi meow (u64) u64)
(extern extractor meow meow)
;; Note: not `multi nyaa`
(decl nyaa (u64) u64)
(rule (nyaa (meow x)) x)
```

This makes islec panic with the following message:

```
thread 'main' panicked at 'assertion failed: !block.steps.iter().any(|c| matches!(c.check, ControlFlow :: Loop { .. }))', cranelift/isle/isle/src/codegen.rs:421:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
```

Not sure if that's the standard of error messages we hold `islec` to.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.