From e063b0de8c7643676b97b8b3ae66bd314cc10e55 Mon Sep 17 00:00:00 2001 From: Ary Borenszweig Date: Tue, 1 Jul 2025 16:43:22 -0300 Subject: [PATCH 1/3] fix(expand): show struct member visibilityy --- tooling/nargo_expand/src/printer.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/tooling/nargo_expand/src/printer.rs b/tooling/nargo_expand/src/printer.rs index 33d3db47a1a..cd5491029b3 100644 --- a/tooling/nargo_expand/src/printer.rs +++ b/tooling/nargo_expand/src/printer.rs @@ -232,6 +232,7 @@ impl<'context, 'string> ItemPrinter<'context, 'string> { for (index, field) in data_type.get_fields_as_written().unwrap().into_iter().enumerate() { self.write_indent(); self.show_doc_comments(ReferenceId::StructMember(data_type.id, index)); + self.show_item_visibility(field.visibility); self.push_str(&field.name.to_string()); self.push_str(": "); self.show_type(&field.typ); From 0e94750271bd99f9ffa54975e5f0a39e1cf099bb Mon Sep 17 00:00:00 2001 From: Ary Borenszweig Date: Tue, 1 Jul 2025 16:43:36 -0300 Subject: [PATCH 2/3] fix(expand): use "crate" instead of "super" when possible --- tooling/nargo_expand/src/printer.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tooling/nargo_expand/src/printer.rs b/tooling/nargo_expand/src/printer.rs index cd5491029b3..beded31928c 100644 --- a/tooling/nargo_expand/src/printer.rs +++ b/tooling/nargo_expand/src/printer.rs @@ -1045,6 +1045,12 @@ impl<'context, 'string> ItemPrinter<'context, 'string> { // Check if module_def_id is the current module's parent if let ModuleDefId::ModuleId(module_id) = module_def_id { if current_module_parent_id == Some(module_id) { + // If the parent is actually the crate's root, use "crate" + if current_module_parent_id.unwrap().parent(self.def_maps).is_none() { + self.push_str("crate"); + return "crate".to_string(); + } + self.push_str("super"); return "super".to_string(); } From 057cf8d506e7344f95de697f3faf3e05f78ca96e Mon Sep 17 00:00:00 2001 From: Ary Borenszweig Date: Tue, 1 Jul 2025 16:47:59 -0300 Subject: [PATCH 3/3] Update snapshots --- .../execute__tests__expanded.snap | 2 +- .../execute__tests__expanded.snap | 6 ++--- .../execute__tests__expanded.snap | 4 ++-- .../execute__tests__expanded.snap | 6 ++--- .../execute__tests__expanded.snap | 2 +- .../execute__tests__expanded.snap | 2 +- .../execute__tests__expanded.snap | 2 +- .../execute__tests__expanded.snap | 2 +- .../execute__tests__expanded.snap | 2 +- .../execute__tests__expanded.snap | 2 +- .../execute__tests__expanded.snap | 2 +- .../execute__tests__expanded.snap | 4 ++-- .../execute__tests__expanded.snap | 20 ++++++++-------- .../execute__tests__expanded.snap | 8 +++---- .../execute__tests__expanded.snap | 12 +++++----- .../execute__tests__expanded.snap | 12 +++++----- .../execute__tests__expanded.snap | 24 +++++++++---------- .../execute__tests__expanded.snap | 10 ++++---- 18 files changed, 61 insertions(+), 61 deletions(-) diff --git a/tooling/nargo_cli/tests/snapshots/compile_success_contract/fold_non_contract_method/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/compile_success_contract/fold_non_contract_method/execute__tests__expanded.snap index fecc6e988ee..e89604421f9 100644 --- a/tooling/nargo_cli/tests/snapshots/compile_success_contract/fold_non_contract_method/execute__tests__expanded.snap +++ b/tooling/nargo_cli/tests/snapshots/compile_success_contract/fold_non_contract_method/execute__tests__expanded.snap @@ -3,7 +3,7 @@ source: tooling/nargo_cli/tests/execute.rs expression: expanded_code --- contract Foo { - use super::times_10; + use crate::times_10; fn double(x: Field) -> pub Field { x * 2_Field diff --git a/tooling/nargo_cli/tests/snapshots/compile_success_empty/comptime_module/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/compile_success_empty/comptime_module/execute__tests__expanded.snap index 349b75c3206..6987aeaac82 100644 --- a/tooling/nargo_cli/tests/snapshots/compile_success_empty/comptime_module/execute__tests__expanded.snap +++ b/tooling/nargo_cli/tests/snapshots/compile_success_empty/comptime_module/execute__tests__expanded.snap @@ -64,9 +64,9 @@ pub struct Foo {} mod add_to_me { fn add_to_me_function() {} - pub fn added_function() -> super::Foo { + pub fn added_function() -> crate::Foo { add_to_me_function(); - super::Foo {} + crate::Foo {} } } @@ -104,6 +104,6 @@ fn as_module_test() { mod separate_module { comptime fn inner_attribute_separate_module(m: Module) { assert(m.name() == quote { separate_module }); - super::increment_counter(); + crate::increment_counter(); } } diff --git a/tooling/nargo_cli/tests/snapshots/compile_success_empty/comptime_struct_definition/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/compile_success_empty/comptime_struct_definition/execute__tests__expanded.snap index 21acc0897d7..2d172f20f12 100644 --- a/tooling/nargo_cli/tests/snapshots/compile_success_empty/comptime_struct_definition/execute__tests__expanded.snap +++ b/tooling/nargo_cli/tests/snapshots/compile_success_empty/comptime_struct_definition/execute__tests__expanded.snap @@ -8,8 +8,8 @@ pub struct MyType { } pub struct I32AndField { - x: i32, - y: Field, + pub x: i32, + pub(crate) y: Field, } comptime fn my_comptime_fn(typ: TypeDefinition) { diff --git a/tooling/nargo_cli/tests/snapshots/compile_success_empty/trait_multi_module_test/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/compile_success_empty/trait_multi_module_test/execute__tests__expanded.snap index 376b21ce6d4..6a5eb320e08 100644 --- a/tooling/nargo_cli/tests/snapshots/compile_success_empty/trait_multi_module_test/execute__tests__expanded.snap +++ b/tooling/nargo_cli/tests/snapshots/compile_success_empty/trait_multi_module_test/execute__tests__expanded.snap @@ -11,11 +11,11 @@ mod module1 { mod module2 { pub struct MyStruct {} - impl super::module1::MyTrait for MyStruct {} + impl crate::module1::MyTrait for MyStruct {} } mod module3 { - use super::{module1::MyTrait, module2::MyStruct}; + use crate::{module1::MyTrait, module2::MyStruct}; } @@ -26,7 +26,7 @@ mod module4 { mod module5 { pub struct MyStruct5 {} - impl super::module4::MyTrait4 for MyStruct5 {} + impl crate::module4::MyTrait4 for MyStruct5 {} } mod module6 {} diff --git a/tooling/nargo_cli/tests/snapshots/compile_success_empty/type_trait_method_call_multiple_candidates_with_turbofish/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/compile_success_empty/type_trait_method_call_multiple_candidates_with_turbofish/execute__tests__expanded.snap index e7c4042800d..5aadc86f1b5 100644 --- a/tooling/nargo_cli/tests/snapshots/compile_success_empty/type_trait_method_call_multiple_candidates_with_turbofish/execute__tests__expanded.snap +++ b/tooling/nargo_cli/tests/snapshots/compile_success_empty/type_trait_method_call_multiple_candidates_with_turbofish/execute__tests__expanded.snap @@ -3,7 +3,7 @@ source: tooling/nargo_cli/tests/execute.rs expression: expanded_code --- pub struct Struct { - x: T, + pub x: T, } impl From2 for Struct { diff --git a/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_checks_visibility_of_trait_related_to_trait_impl_on_method_call/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_checks_visibility_of_trait_related_to_trait_impl_on_method_call/execute__tests__expanded.snap index b1faa007a77..92bd3567676 100644 --- a/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_checks_visibility_of_trait_related_to_trait_impl_on_method_call/execute__tests__expanded.snap +++ b/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_checks_visibility_of_trait_related_to_trait_impl_on_method_call/execute__tests__expanded.snap @@ -5,7 +5,7 @@ expression: expanded_code mod moo { pub struct Bar {} - impl super::Foo for Bar { + impl crate::Foo for Bar { fn foo(self) {} } } diff --git a/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_imports_use_super/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_imports_use_super/execute__tests__expanded.snap index da99411ea06..49e8a91cfb4 100644 --- a/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_imports_use_super/execute__tests__expanded.snap +++ b/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_imports_use_super/execute__tests__expanded.snap @@ -5,7 +5,7 @@ expression: expanded_code fn some_func() {} mod foo { - use super::some_func; + use crate::some_func; pub fn bar() { some_func(); diff --git a/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_imports_use_super_in_path/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_imports_use_super_in_path/execute__tests__expanded.snap index c90e030b9d4..616d975edf9 100644 --- a/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_imports_use_super_in_path/execute__tests__expanded.snap +++ b/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_imports_use_super_in_path/execute__tests__expanded.snap @@ -6,7 +6,7 @@ fn some_func() {} mod foo { pub fn func() { - super::some_func(); + crate::some_func(); } } diff --git a/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_visibility_does_not_error_when_accessing_private_struct_field_from_nested_module/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_visibility_does_not_error_when_accessing_private_struct_field_from_nested_module/execute__tests__expanded.snap index b5c1c6d5aae..3f07b90369d 100644 --- a/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_visibility_does_not_error_when_accessing_private_struct_field_from_nested_module/execute__tests__expanded.snap +++ b/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_visibility_does_not_error_when_accessing_private_struct_field_from_nested_module/execute__tests__expanded.snap @@ -7,7 +7,7 @@ struct Foo { } mod nested { - fn foo(foo: super::Foo) -> Field { + fn foo(foo: crate::Foo) -> Field { foo.x } } diff --git a/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_visibility_does_not_error_when_accessing_pub_crate_struct_field_from_nested_module/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_visibility_does_not_error_when_accessing_pub_crate_struct_field_from_nested_module/execute__tests__expanded.snap index d2368bb6260..a3c158ee7a7 100644 --- a/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_visibility_does_not_error_when_accessing_pub_crate_struct_field_from_nested_module/execute__tests__expanded.snap +++ b/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/noirc_frontend_tests_visibility_does_not_error_when_accessing_pub_crate_struct_field_from_nested_module/execute__tests__expanded.snap @@ -4,7 +4,7 @@ expression: expanded_code --- mod moo { pub(crate) struct Foo { - x: Field, + pub(crate) x: Field, } } diff --git a/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/regression_8665/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/regression_8665/execute__tests__expanded.snap index b271ba83a08..75823148881 100644 --- a/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/regression_8665/execute__tests__expanded.snap +++ b/tooling/nargo_cli/tests/snapshots/compile_success_no_bug/regression_8665/execute__tests__expanded.snap @@ -3,7 +3,7 @@ source: tooling/nargo_cli/tests/execute.rs expression: expanded_code --- pub struct Context { - get_field: fn() -> Field, + pub get_field: fn() -> Field, } pub struct ContextWrapper { diff --git a/tooling/nargo_cli/tests/snapshots/execution_success/global_consts/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/execution_success/global_consts/execute__tests__expanded.snap index af632d6b38f..09baa13907a 100644 --- a/tooling/nargo_cli/tests/snapshots/execution_success/global_consts/execute__tests__expanded.snap +++ b/tooling/nargo_cli/tests/snapshots/execution_success/global_consts/execute__tests__expanded.snap @@ -4,8 +4,8 @@ expression: expanded_code --- mod baz { pub fn from_baz(x: [Field; 3]) { - for i in 0_u32..super::foo::MAGIC_NUMBER { - assert(x[i] == (super::foo::MAGIC_NUMBER as Field)); + for i in 0_u32..crate::foo::MAGIC_NUMBER { + assert(x[i] == (crate::foo::MAGIC_NUMBER as Field)); } } } diff --git a/tooling/nargo_cli/tests/snapshots/execution_success/regression_11294/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/execution_success/regression_11294/execute__tests__expanded.snap index 60b343bdec8..5d2c870552b 100644 --- a/tooling/nargo_cli/tests/snapshots/execution_success/regression_11294/execute__tests__expanded.snap +++ b/tooling/nargo_cli/tests/snapshots/execution_success/regression_11294/execute__tests__expanded.snap @@ -13,22 +13,22 @@ unconstrained fn main( } pub struct PrivateKernelCircuitPublicInputs { - end: PrivateAccumulatedData, + pub end: PrivateAccumulatedData, } pub struct PrivateKernelData { - public_inputs: PrivateKernelCircuitPublicInputs, + pub public_inputs: PrivateKernelCircuitPublicInputs, } pub struct PrivateAccumulatedData { - private_call_stack: [PrivateCallRequest; 8], + pub private_call_stack: [PrivateCallRequest; 8], } pub struct PrivateCallRequest { - args_hash: Field, - returns_hash: Field, - start_side_effect_counter: u32, - end_side_effect_counter: u32, + pub args_hash: Field, + pub returns_hash: Field, + pub start_side_effect_counter: u32, + pub end_side_effect_counter: u32, } impl Eq for PrivateCallRequest { @@ -53,7 +53,7 @@ impl Empty for PrivateCallRequest { } pub struct PrivateKernelCircuitPublicInputsComposer { - public_inputs: PrivateKernelCircuitPublicInputsBuilder, + pub public_inputs: PrivateKernelCircuitPublicInputsBuilder, } impl PrivateKernelCircuitPublicInputsComposer { @@ -81,7 +81,7 @@ impl PrivateKernelCircuitPublicInputsComposer { } pub struct PrivateKernelCircuitPublicInputsBuilder { - end: PrivateAccumulatedDataBuilder, + pub end: PrivateAccumulatedDataBuilder, } impl PrivateKernelCircuitPublicInputsBuilder { @@ -91,7 +91,7 @@ impl PrivateKernelCircuitPublicInputsBuilder { } pub struct PrivateAccumulatedDataBuilder { - private_call_stack: BoundedVec, + pub private_call_stack: BoundedVec, } impl PrivateAccumulatedDataBuilder { diff --git a/tooling/nargo_cli/tests/snapshots/execution_success/regression_3889/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/execution_success/regression_3889/execute__tests__expanded.snap index 87cab5cbb78..ed6aabd2795 100644 --- a/tooling/nargo_cli/tests/snapshots/execution_success/regression_3889/execute__tests__expanded.snap +++ b/tooling/nargo_cli/tests/snapshots/execution_success/regression_3889/execute__tests__expanded.snap @@ -4,20 +4,20 @@ expression: expanded_code --- mod Foo { pub(crate) struct NewType { - a: Field, + pub(crate) a: Field, } } mod Bar { - pub(crate) use super::Foo::{NewType, NewType as BarStruct}; + pub(crate) use crate::Foo::{NewType, NewType as BarStruct}; } mod Baz { - pub(crate) use super::Foo::{NewType, NewType as BarStruct}; + pub(crate) use crate::Foo::{NewType, NewType as BarStruct}; pub(crate) struct Works { - a: Field, + pub(crate) a: Field, } } diff --git a/tooling/nargo_cli/tests/snapshots/execution_success/regression_6674_1/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/execution_success/regression_6674_1/execute__tests__expanded.snap index a74ff236010..461f1906327 100644 --- a/tooling/nargo_cli/tests/snapshots/execution_success/regression_6674_1/execute__tests__expanded.snap +++ b/tooling/nargo_cli/tests/snapshots/execution_success/regression_6674_1/execute__tests__expanded.snap @@ -24,13 +24,13 @@ impl BoundedVec4 { } pub struct PrivateKernelCircuitPublicInputs { - l2_to_l1_msgs: [Field; 4], - public_call_requests: [Field; 4], + pub l2_to_l1_msgs: [Field; 4], + pub public_call_requests: [Field; 4], } pub struct FixtureBuilder { - public_call_requests: BoundedVec4, - counter: Field, + pub public_call_requests: BoundedVec4, + pub counter: Field, } impl FixtureBuilder { @@ -56,8 +56,8 @@ impl FixtureBuilder { } pub struct PrivateKernelCircuitPublicInputsComposer { - l2_to_l1_msgs: [Field; 4], - public_call_requests: [Field; 4], + pub l2_to_l1_msgs: [Field; 4], + pub public_call_requests: [Field; 4], } pub unconstrained fn sort_by(array: [Field; 4]) -> [Field; 4] { diff --git a/tooling/nargo_cli/tests/snapshots/execution_success/regression_6674_2/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/execution_success/regression_6674_2/execute__tests__expanded.snap index 6b4accb166f..44843924fb8 100644 --- a/tooling/nargo_cli/tests/snapshots/execution_success/regression_6674_2/execute__tests__expanded.snap +++ b/tooling/nargo_cli/tests/snapshots/execution_success/regression_6674_2/execute__tests__expanded.snap @@ -24,13 +24,13 @@ impl BoundedVec4 { } pub struct PrivateKernelCircuitPublicInputs { - l2_to_l1_msgs: [Field; 4], - public_call_requests: [Field; 4], + pub l2_to_l1_msgs: [Field; 4], + pub public_call_requests: [Field; 4], } pub struct FixtureBuilder { - public_call_requests: BoundedVec4, - counter: Field, + pub public_call_requests: BoundedVec4, + pub counter: Field, } impl FixtureBuilder { @@ -52,8 +52,8 @@ impl FixtureBuilder { } pub struct PrivateKernelCircuitPublicInputsComposer { - l2_to_l1_msgs: [Field; 4], - public_call_requests: [Field; 4], + pub l2_to_l1_msgs: [Field; 4], + pub public_call_requests: [Field; 4], } impl PrivateKernelCircuitPublicInputsComposer { diff --git a/tooling/nargo_cli/tests/snapshots/execution_success/regression_6674_3/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/execution_success/regression_6674_3/execute__tests__expanded.snap index ab5d3b4f63f..f2a8ab184b6 100644 --- a/tooling/nargo_cli/tests/snapshots/execution_success/regression_6674_3/execute__tests__expanded.snap +++ b/tooling/nargo_cli/tests/snapshots/execution_success/regression_6674_3/execute__tests__expanded.snap @@ -5,13 +5,13 @@ expression: expanded_code use std::mem::zeroed; pub struct PrivateAccumulatedData { - public_call_requests: [Counted; 4], + pub public_call_requests: [Counted; 4], } pub struct PrivateAccumulatedDataBuilder { - l2_to_l1_msgs: BoundedVec, - public_call_requests: BoundedVec, 4>, - private_call_stack: BoundedVec, + pub l2_to_l1_msgs: BoundedVec, + pub public_call_requests: BoundedVec, 4>, + pub private_call_stack: BoundedVec, } impl PrivateAccumulatedDataBuilder { @@ -21,8 +21,8 @@ impl PrivateAccumulatedDataBuilder { } pub struct Counted { - inner: T, - counter: u32, + pub inner: T, + pub counter: u32, } impl Counted { @@ -32,18 +32,18 @@ impl Counted { } pub struct PrivateKernelCircuitPublicInputs { - end: PrivateAccumulatedData, + pub end: PrivateAccumulatedData, } pub struct PrivateKernelData { - public_inputs: PrivateKernelCircuitPublicInputs, + pub public_inputs: PrivateKernelCircuitPublicInputs, } pub struct FixtureBuilder2 { - public_teardown_call_request: Field, - private_call_requests: BoundedVec, - public_call_requests: BoundedVec, 4>, - counter: u32, + pub public_teardown_call_request: Field, + pub private_call_requests: BoundedVec, + pub public_call_requests: BoundedVec, 4>, + pub counter: u32, } impl FixtureBuilder2 { diff --git a/tooling/nargo_cli/tests/snapshots/execution_success/struct_inputs/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/execution_success/struct_inputs/execute__tests__expanded.snap index 4624a911493..14e3852fb26 100644 --- a/tooling/nargo_cli/tests/snapshots/execution_success/struct_inputs/execute__tests__expanded.snap +++ b/tooling/nargo_cli/tests/snapshots/execution_success/struct_inputs/execute__tests__expanded.snap @@ -7,15 +7,15 @@ mod foo { global N: Field = 2; pub(crate) struct barStruct { - val: Field, - array: [Field; 2], - message: str<5>, + pub(crate) val: Field, + pub(crate) array: [Field; 2], + pub(crate) message: str<5>, } } pub(crate) struct fooStruct { - bar_struct: bar::barStruct, - baz: Field, + pub(crate) bar_struct: bar::barStruct, + pub(crate) baz: Field, } }