Skip to content

[Bug] panic after type checking error #29302

@mohammadfawaz

Description

@mohammadfawaz

🐛 Bug Report

The following:

struct S::[N: u32] {
    x: u32,
}

interface Foo {
    fn main(x: S::[2u32.exp(2u32)]);
}

program bad_op.aleo {
    fn main() {}
}

fails with

Error [EPAR0370021]: The type of `2u32` has no associated function `exp` that takes 1 argument(s).
    --> /Users/mohammadfawaz/Desktop/bugs/bad_op/src/main.leo:7:20
     |
   7 |     fn main(x: S::[2u32.exp(2u32)]);
     |                    ^^^^^^^^^^^^^^

thread `main` panicked at crates/ast/src/passes/visitor.rs:226:9:
`ErrExpression`s should not be in the AST at this phase of compilation.
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /Users/mohammadfawaz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.76/src/backtrace/libunwind.rs:117:9
      backtrace::backtrace::trace_unsynchronized
             at /Users/mohammadfawaz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.76/src/backtrace/mod.rs:66:14
      backtrace::backtrace::trace
             at /Users/mohammadfawaz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.76/src/backtrace/mod.rs:53:14
   1: backtrace::capture::Backtrace::create
             at /Users/mohammadfawaz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.76/src/capture.rs:294:9
   2: backtrace::capture::Backtrace::new
             at /Users/mohammadfawaz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.76/src/capture.rs:259:22
   3: leo::set_panic_hook::{{closure}}
             at /Users/mohammadfawaz/Desktop/leo/crates/leo/src/cli/main.rs:26:50
   4: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
             at /rustc/e408947bfd200af42db322daf0fadfe7e26d3bd1/library/alloc/src/boxed.rs:2220:9
      std::panicking::panic_with_hook
             at /rustc/e408947bfd200af42db322daf0fadfe7e26d3bd1/library/std/src/panicking.rs:833:13
   5: std::panicking::panic_handler::{{closure}}
             at /rustc/e408947bfd200af42db322daf0fadfe7e26d3bd1/library/std/src/panicking.rs:691:13
   6: std::sys::backtrace::__rust_end_short_backtrace
             at /rustc/e408947bfd200af42db322daf0fadfe7e26d3bd1/library/std/src/sys/backtrace.rs:182:18
   7: __rustc::rust_begin_unwind
             at /rustc/e408947bfd200af42db322daf0fadfe7e26d3bd1/library/std/src/panicking.rs:689:5
   8: core::panicking::panic_fmt
             at /rustc/e408947bfd200af42db322daf0fadfe7e26d3bd1/library/core/src/panicking.rs:80:14
   9: leo_ast::passes::visitor::AstVisitor::visit_err
             at /Users/mohammadfawaz/Desktop/leo/crates/ast/src/passes/visitor.rs:226:9
      leo_ast::passes::visitor::AstVisitor::visit_expression
             at /Users/mohammadfawaz/Desktop/leo/crates/ast/src/passes/visitor.rs:120:42
  10: leo_ast::passes::visitor::AstVisitor::visit_composite_type::{{closure}}
             at /Users/mohammadfawaz/Desktop/leo/crates/ast/src/passes/visitor.rs:81:18
      <core::slice::iter::Iter<T> as core::iter::traits::iterator::Iterator>::for_each
             at /Users/mohammadfawaz/.rustup/toolchains/1.94.1-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:301:21
      leo_ast::passes::visitor::AstVisitor::visit_composite_type
             at /Users/mohammadfawaz/Desktop/leo/crates/ast/src/passes/visitor.rs:80:38
      leo_ast::passes::visitor::AstVisitor::visit_type
             at /Users/mohammadfawaz/Desktop/leo/crates/ast/src/passes/visitor.rs:51:53
  11: leo_ast::passes::visitor::ProgramVisitor::visit_function_prototype::{{closure}}
             at /Users/mohammadfawaz/Desktop/leo/crates/ast/src/passes/visitor.rs:413:50
      <core::slice::iter::Iter<T> as core::iter::traits::iterator::Iterator>::for_each
             at /Users/mohammadfawaz/.rustup/toolchains/1.94.1-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:301:21
      leo_ast::passes::visitor::ProgramVisitor::visit_function_prototype
             at /Users/mohammadfawaz/Desktop/leo/crates/ast/src/passes/visitor.rs:413:28
      leo_ast::passes::visitor::ProgramVisitor::visit_interface::{{closure}}
...

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions