https://gcc.gnu.org/g:c27eac3b5778d65ab14ac2db723763d26859f91a
commit c27eac3b5778d65ab14ac2db723763d26859f91a Author: Owen Avery <powerboat9.ga...@gmail.com> Date: Sun Feb 9 15:16:59 2025 -0500 nr2.0: Fix test self-path2.rs gcc/rust/ChangeLog: * resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Adjust the error message for a lower self segment in the middle of a path. * resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): Likewise. gcc/testsuite/ChangeLog: * rust/compile/nr2/exclude: Remove self-path2.rs * rust/compile/self-path2.rs: Adjust expected errors. Signed-off-by: Owen Avery <powerboat9.ga...@gmail.com> Diff: --- gcc/rust/resolve/rust-ast-resolve-path.cc | 4 ++-- gcc/rust/resolve/rust-ast-resolve-type.cc | 4 ++-- gcc/testsuite/rust/compile/nr2/exclude | 1 - gcc/testsuite/rust/compile/self-path2.rs | 4 ++-- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/gcc/rust/resolve/rust-ast-resolve-path.cc b/gcc/rust/resolve/rust-ast-resolve-path.cc index 9fefc0f6a421..656b7e64bb73 100644 --- a/gcc/rust/resolve/rust-ast-resolve-path.cc +++ b/gcc/rust/resolve/rust-ast-resolve-path.cc @@ -68,8 +68,8 @@ ResolvePath::resolve_path (AST::PathInExpression &expr) if (in_middle_of_path && segment.is_lower_self_seg ()) { rust_error_at (segment.get_locus (), ErrorCode::E0433, - "failed to resolve: %<%s%> in paths can only be used " - "in start position", + "leading path segment %qs can only be used at the " + "beginning of a path", segment.as_string ().c_str ()); return UNKNOWN_NODEID; } diff --git a/gcc/rust/resolve/rust-ast-resolve-type.cc b/gcc/rust/resolve/rust-ast-resolve-type.cc index 22af563f0a73..243291751290 100644 --- a/gcc/rust/resolve/rust-ast-resolve-type.cc +++ b/gcc/rust/resolve/rust-ast-resolve-type.cc @@ -176,8 +176,8 @@ ResolveRelativeTypePath::go (AST::TypePath &path, NodeId &resolved_node_id) if (in_middle_of_path && segment->is_lower_self_seg ()) { rust_error_at (segment->get_locus (), ErrorCode::E0433, - "failed to resolve: %qs in paths can only be used " - "in start position", + "leading path segment %qs can only be used at the " + "beginning of a path", segment->as_string ().c_str ()); return false; } diff --git a/gcc/testsuite/rust/compile/nr2/exclude b/gcc/testsuite/rust/compile/nr2/exclude index a4bac9ac8365..a2a833f90738 100644 --- a/gcc/testsuite/rust/compile/nr2/exclude +++ b/gcc/testsuite/rust/compile/nr2/exclude @@ -28,7 +28,6 @@ pub_restricted_2.rs pub_restricted_3.rs redef_error2.rs redef_error5.rs -self-path2.rs sizeof-stray-infer-var-bug.rs struct-expr-parse.rs undeclared_label.rs diff --git a/gcc/testsuite/rust/compile/self-path2.rs b/gcc/testsuite/rust/compile/self-path2.rs index b9b82cae5a6a..6441c3328f91 100644 --- a/gcc/testsuite/rust/compile/self-path2.rs +++ b/gcc/testsuite/rust/compile/self-path2.rs @@ -11,11 +11,11 @@ fn baz() { crate::bar(); crate::self::foo(); - // { dg-error "failed to resolve: .self. in paths can only be used in start position" "" { target *-*-* } .-1 } + // { dg-error "leading path segment .self. can only be used at the beginning of a path" "" { target *-*-* } .-1 } } type a = foo; type b = crate::foo; type c = self::foo; type d = crate::self::foo; -// { dg-error "failed to resolve: .self. in paths can only be used in start position" "" { target *-*-* } .-1 } +// { dg-error "leading path segment .self. can only be used at the beginning of a path" "" { target *-*-* } .-1 }