Skip to content

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

Open
@meithecatte

Description

@meithecatte

Consider the following code:

(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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    isleRelated to the ISLE domain-specific language

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions