aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorOwen Avery <powerboat9.gamer@gmail.com>2024-10-04 12:56:16 -0400
committerP-E-P <32375388+P-E-P@users.noreply.github.com>2024-10-29 10:20:27 +0000
commitd800490dd996bdcb50bc9159801c2bb72c1c116b (patch)
treebe55a72ec67febf85740d9e712d97108eee52cc3 /gcc
parent5ad1d886a97c271aa7e069ac9c699c0797079de0 (diff)
downloadgcc-d800490dd996bdcb50bc9159801c2bb72c1c116b.zip
gcc-d800490dd996bdcb50bc9159801c2bb72c1c116b.tar.gz
gcc-d800490dd996bdcb50bc9159801c2bb72c1c116b.tar.bz2
Resolve SelfParam in name resolution 2.0
gcc/rust/ChangeLog: * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Handle SelfParam. * resolve/rust-late-name-resolver-2.0.h (Late::visit): Likewise. gcc/testsuite/ChangeLog: * rust/compile/nr2/exclude: Remove entries. Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/resolve/rust-late-name-resolver-2.0.cc12
-rw-r--r--gcc/rust/resolve/rust-late-name-resolver-2.0.h1
-rw-r--r--gcc/testsuite/rust/compile/nr2/exclude4
3 files changed, 13 insertions, 4 deletions
diff --git a/gcc/rust/resolve/rust-late-name-resolver-2.0.cc b/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
index b85b6bc..8319a9f 100644
--- a/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
+++ b/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
@@ -165,6 +165,18 @@ Late::visit (AST::IdentifierPattern &identifier)
}
void
+Late::visit (AST::SelfParam &param)
+{
+ // handle similar to AST::IdentifierPattern
+
+ DefaultResolver::visit (param);
+ // FIXME: this location should be a bit off
+ // ex: would point to the begining of "mut self" instead of the "self"
+ std::ignore = ctx.values.insert (Identifier ("self", param.get_locus ()),
+ param.get_node_id ());
+}
+
+void
Late::visit (AST::IdentifierExpr &expr)
{
// TODO: same thing as visit(PathInExpression) here?
diff --git a/gcc/rust/resolve/rust-late-name-resolver-2.0.h b/gcc/rust/resolve/rust-late-name-resolver-2.0.h
index 1cdf2ec..81c3a04 100644
--- a/gcc/rust/resolve/rust-late-name-resolver-2.0.h
+++ b/gcc/rust/resolve/rust-late-name-resolver-2.0.h
@@ -41,6 +41,7 @@ public:
// TODO: Do we need this?
// void visit (AST::Method &) override;
void visit (AST::IdentifierPattern &) override;
+ void visit (AST::SelfParam &) override;
// resolutions
void visit (AST::IdentifierExpr &) override;
diff --git a/gcc/testsuite/rust/compile/nr2/exclude b/gcc/testsuite/rust/compile/nr2/exclude
index f4304da..b4799ed 100644
--- a/gcc/testsuite/rust/compile/nr2/exclude
+++ b/gcc/testsuite/rust/compile/nr2/exclude
@@ -34,7 +34,6 @@ derive_macro6.rs
expected_type_args2.rs
expected_type_args3.rs
feature_rust_attri0.rs
-feature_rust_attri1.rs
for_lifetimes.rs
format_args_basic_expansion.rs
generic-default1.rs
@@ -54,13 +53,11 @@ infer-crate-name.rs
issue-1019.rs
issue-1031.rs
issue-1034.rs
-issue-1128.rs
issue-1129-2.rs
issue-1130.rs
issue-1165.rs
issue-1173.rs
issue-1235.rs
-issue-1237.rs
issue-1272.rs
issue-1289.rs
issue-1447.rs
@@ -167,7 +164,6 @@ redef_error2.rs
redef_error4.rs
redef_error5.rs
redef_error6.rs
-rustc_attr1.rs
self-path1.rs
self-path2.rs
sizeof-stray-infer-var-bug.rs