Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Referring to trait methods from the trait's namespace crashes the compiler #3052

Closed
jfecher opened this issue Oct 9, 2023 · 2 comments
Closed
Labels
bug Something isn't working

Comments

@jfecher
Copy link
Contributor

jfecher commented Oct 9, 2023

Aim

trait Foo {
    fn foo(self) -> Field;
}

impl Foo for Field {
    fn foo(self) -> Field {
        self + 1
    }
}

fn main() {
    dep::std::println(Foo::foo(1));
}

Expected Behavior

The code to compile and print 2

Bug

The application panicked (crashed).
Message:  no entry found for key
Location: compiler/noirc_frontend/src/node_interner.rs:856

This is a bug. We may have already fixed this in newer versions of Nargo so try searching for similar issues at https://github.com/noir-lang/noir/issues/.
If there isn't an open issue for this bug, consider opening one at https://github.com/noir-lang/noir/issues/new?labels=bug&template=bug_report.yml

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                                ⋮ 13 frames hidden ⋮                              
  14: core::panicking::panic_display::he47d87c8a8198687
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/panicking.rs:139
  15: core::panicking::panic_str::he49aa521a2ce89e6
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/panicking.rs:123
  16: core::option::expect_failed::hd9e8c2d25b4fea19
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/option.rs:1879
  17: core::option::Option<T>::expect::h45a918452a080464
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/option.rs:741
  18: <std::collections::hash::map::HashMap<K,V,S> as core::ops::index::Index<&Q>>::index::h89c99bfd567937b0
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/std/src/collections/hash/map.rs:1340
  19: noirc_frontend::node_interner::NodeInterner::function_definition_id::h0a7a6e34c18f1849
      at /.../noir/compiler/noirc_frontend/src/node_interner.rs:856
  20: noirc_frontend::hir::resolution::resolver::Resolver::lookup_global::h0457eea4bfa2dd04
      at /.../noir/compiler/noirc_frontend/src/hir/resolution/resolver.rs:1408
  21: noirc_frontend::hir::resolution::resolver::Resolver::get_ident_from_path::he4c3cc601c29e74e
      at /.../noir/compiler/noirc_frontend/src/hir/resolution/resolver.rs:578
  22: noirc_frontend::hir::resolution::resolver::Resolver::resolve_expression::h0bb02a1fb3c4daaa
      at /.../noir/compiler/noirc_frontend/src/hir/resolution/resolver.rs:1116
  23: noirc_frontend::hir::resolution::resolver::Resolver::resolve_expression::h0bb02a1fb3c4daaa
      at /.../noir/compiler/noirc_frontend/src/hir/resolution/resolver.rs:1171
  24: noirc_frontend::hir::resolution::resolver::Resolver::resolve_expression::{{closure}}::h23188b828b82284f
      at /.../noir/compiler/noirc_frontend/src/hir/resolution/resolver.rs:1173
  25: core::iter::adapters::map::map_fold::{{closure}}::hb793eba9fbfd8a2c
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/adapters/map.rs:84
  26: core::iter::traits::iterator::Iterator::fold::h27c6564a3cf8766a
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/traits/iterator.rs:2414
  27: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold::h10f30d99a245e2b5
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/adapters/map.rs:124
  28: core::iter::traits::iterator::Iterator::for_each::h637228205b5e66ff
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/traits/iterator.rs:831
  29: <alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend::hd69d003bfd2642fc
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/alloc/src/vec/spec_extend.rs:40
  30: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter::hb2ca7ea61cd39da3
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/alloc/src/vec/spec_from_iter_nested.rs:62
  31: alloc::vec::in_place_collect::<impl alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter::h6dbc0cbd883de94e
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/alloc/src/vec/in_place_collect.rs:167
  32: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter::h4803ee08e4d827b4
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/alloc/src/vec/mod.rs:2757
  33: core::iter::traits::iterator::Iterator::collect::h94b89175e5d194ca
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/traits/iterator.rs:1836
  34: iter_extended::vecmap::h2a4cad987ff97eae
      at /.../noir/compiler/utils/iter-extended/src/lib.rs:14
  35: noirc_frontend::hir::resolution::resolver::Resolver::resolve_expression::h0bb02a1fb3c4daaa
      at /.../noir/compiler/noirc_frontend/src/hir/resolution/resolver.rs:1173
  36: noirc_frontend::hir::resolution::resolver::Resolver::resolve_stmt::h2033ca03e565c33f
      at /.../noir/compiler/noirc_frontend/src/hir/resolution/resolver.rs:955
  37: noirc_frontend::hir::resolution::resolver::Resolver::intern_stmt::h73b4e56891ab01ad
      at /.../noir/compiler/noirc_frontend/src/hir/resolution/resolver.rs:986
  38: noirc_frontend::hir::resolution::resolver::Resolver::resolve_block::{{closure}}::{{closure}}::hfe62df7730afcabb
      at /.../noir/compiler/noirc_frontend/src/hir/resolution/resolver.rs:1524
  39: core::iter::adapters::map::map_fold::{{closure}}::hc3bb7b89189628b7
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/adapters/map.rs:84
  40: core::iter::traits::iterator::Iterator::fold::h0cb92e47fda5de3d
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/traits/iterator.rs:2414
  41: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold::h0c2733f5a5bfe507
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/adapters/map.rs:124
  42: core::iter::traits::iterator::Iterator::for_each::hce381fd85908fdb6
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/traits/iterator.rs:831
  43: <alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend::h6997984fa891d37f
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/alloc/src/vec/spec_extend.rs:40
  44: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter::h0d84f410fbe3beea
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/alloc/src/vec/spec_from_iter_nested.rs:62
  45: alloc::vec::in_place_collect::<impl alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter::h400cdc2948221df4
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/alloc/src/vec/in_place_collect.rs:167
  46: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter::h8a8cae4f05dc6661
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/alloc/src/vec/mod.rs:2757
  47: core::iter::traits::iterator::Iterator::collect::hb65f9d18e757d756
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/traits/iterator.rs:1836
  48: iter_extended::vecmap::ha77381d930f9c723
      at /.../noir/compiler/utils/iter-extended/src/lib.rs:14
  49: noirc_frontend::hir::resolution::resolver::Resolver::resolve_block::{{closure}}::h41ca881f5cd85620
      at /.../noir/compiler/noirc_frontend/src/hir/resolution/resolver.rs:1524
  50: noirc_frontend::hir::resolution::resolver::Resolver::in_new_scope::hdabc62c5ad36a818
      at /.../noir/compiler/noirc_frontend/src/hir/resolution/resolver.rs:208
  51: noirc_frontend::hir::resolution::resolver::Resolver::resolve_block::h76333de0c79ee6b1
      at /.../noir/compiler/noirc_frontend/src/hir/resolution/resolver.rs:1524
  52: noirc_frontend::hir::resolution::resolver::Resolver::intern_block::hc918163774cf1b0b
      at /.../noir/compiler/noirc_frontend/src/hir/resolution/resolver.rs:1529
  53: noirc_frontend::hir::resolution::resolver::Resolver::intern_function::he28336a8f65ea5ce
      at /.../noir/compiler/noirc_frontend/src/hir/resolution/resolver.rs:338
  54: noirc_frontend::hir::resolution::resolver::Resolver::resolve_function::h5d2b2849860fc2e7
      at /.../noir/compiler/noirc_frontend/src/hir/resolution/resolver.rs:171
  55: noirc_frontend::hir::def_collector::dc_crate::resolve_function_set::{{closure}}::h537e5aaaba479b30
      at /.../noir/compiler/noirc_frontend/src/hir/def_collector/dc_crate.rs:1172
  56: core::iter::adapters::map::map_fold::{{closure}}::h22f65fd9f549196c
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/adapters/map.rs:84
  57: core::iter::traits::iterator::Iterator::fold::h68ccc886810d6226
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/traits/iterator.rs:2414
  58: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold::h9869f8482eb2c348
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/adapters/map.rs:124
  59: core::iter::traits::iterator::Iterator::for_each::hf50f2eb1f365713d
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/traits/iterator.rs:831
  60: <alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend::h57846dc06dd7c487
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/alloc/src/vec/spec_extend.rs:40
  61: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter::hfb9a9620965f5c30
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/alloc/src/vec/spec_from_iter_nested.rs:62
  62: alloc::vec::in_place_collect::<impl alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter::h54f6d92b474d3fcb
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/alloc/src/vec/in_place_collect.rs:167
  63: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter::hbd541be0337b65ec
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/alloc/src/vec/mod.rs:2757
  64: core::iter::traits::iterator::Iterator::collect::hf58b237bec43ed72
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/traits/iterator.rs:1836
  65: iter_extended::vecmap::h36c790f765b077c5
      at /.../noir/compiler/utils/iter-extended/src/lib.rs:14
  66: noirc_frontend::hir::def_collector::dc_crate::resolve_function_set::h63146df206bddd0d
      at /.../noir/compiler/noirc_frontend/src/hir/def_collector/dc_crate.rs:1160
  67: noirc_frontend::hir::def_collector::dc_crate::resolve_free_functions::{{closure}}::hbbb934fb8696d30f
      at /.../noir/compiler/noirc_frontend/src/hir/def_collector/dc_crate.rs:1132
  68: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &mut F>::call_once::h5b3d1ad1f8019735
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/ops/function.rs:309
  69: core::option::Option<T>::map::he72294d54c9798c9
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/option.rs:925
  70: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::next::h87202e43c9d1de56
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/adapters/map.rs:103
  71: <core::iter::adapters::fuse::Fuse<I> as core::iter::adapters::fuse::FuseImpl<I>>::next::h8023ffd13d65af32
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/adapters/fuse.rs:337
  72: <core::iter::adapters::fuse::Fuse<I> as core::iter::traits::iterator::Iterator>::next::h9b14d13a70060f55
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/adapters/fuse.rs:43
  73: <core::iter::adapters::flatten::FlattenCompat<I,U> as core::iter::traits::iterator::Iterator>::next::h1aaf7081280e0001
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/adapters/flatten.rs:474
  74: <core::iter::adapters::flatten::FlatMap<I,U,F> as core::iter::traits::iterator::Iterator>::next::h79e4e1b41ae38e7b
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/adapters/flatten.rs:51
  75: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter::h496bf76e482cc554
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/alloc/src/vec/spec_from_iter_nested.rs:26
  76: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter::he4e11441d7cd52eb
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/alloc/src/vec/spec_from_iter.rs:33
  77: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter::h0cb982af14b735e7
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/alloc/src/vec/mod.rs:2757
  78: core::iter::traits::iterator::Iterator::collect::hc75581f7f53f575c
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/iter/traits/iterator.rs:1836
  79: noirc_frontend::hir::def_collector::dc_crate::resolve_free_functions::h18d4aa5c29c3be64
      at /.../noir/compiler/noirc_frontend/src/hir/def_collector/dc_crate.rs:1129
  80: noirc_frontend::hir::def_collector::dc_crate::DefCollector::collect::h945188780df94d63
      at /.../noir/compiler/noirc_frontend/src/hir/def_collector/dc_crate.rs:313
  81: noirc_frontend::hir::def_map::CrateDefMap::collect_defs::h4728a47aaf988dd7
      at /.../noir/compiler/noirc_frontend/src/hir/def_map/mod.rs:110
  82: noirc_driver::check_crate::haa09da827f867bd6
      at /.../noir/compiler/noirc_driver/src/lib.rs:120
  83: noirc_driver::compile_main::hcf5d4df32d0ea401
      at /.../noir/compiler/noirc_driver/src/lib.rs:158
  84: nargo::cli::compile_cmd::compile_program::h4d89ac76f07fd2fc
      at /.../noir/tooling/nargo_cli/src/cli/compile_cmd.rs:216
  85: nargo::cli::compile_cmd::compile_bin_package::h1d7f4b8032133b42
      at /.../noir/tooling/nargo_cli/src/cli/compile_cmd.rs:168
  86: nargo::cli::execute_cmd::run::h6310e1081bf44f13
      at /.../noir/tooling/nargo_cli/src/cli/execute_cmd.rs:56
  87: nargo::cli::start_cli::h30324e9fad386375
      at /.../noir/tooling/nargo_cli/src/cli/mod.rs:98
  88: nargo::main::hdaa55bfe2ef33d64
      at /.../noir/tooling/nargo_cli/src/main.rs:24
  89: core::ops::function::FnOnce::call_once::h969231bc9bedf0d0
      at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/ops/function.rs:251
                                ⋮ 12 frames hidden ⋮                              
exit 101

To Reproduce

Installation Method

None

Nargo Version

No response

Additional Context

No response

Would you like to submit a PR for this Issue?

No

Support Needs

No response

@jfecher jfecher added the bug Something isn't working label Oct 9, 2023
@github-project-automation github-project-automation bot moved this to 📋 Backlog in Noir Oct 9, 2023
@TomAFrench
Copy link
Member

Closing this as the example program compiles correctly on master.

@github-project-automation github-project-automation bot moved this from 📋 Backlog to ✅ Done in Noir Jan 2, 2024
@jfecher
Copy link
Contributor Author

jfecher commented Jan 2, 2024

Fixed in #3774

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Archived in project
Development

No branches or pull requests

2 participants