diff options
author | Owen Avery <powerboat9.gamer@gmail.com> | 2024-10-04 12:56:16 -0400 |
---|---|---|
committer | P-E-P <32375388+P-E-P@users.noreply.github.com> | 2024-10-29 10:20:27 +0000 |
commit | d800490dd996bdcb50bc9159801c2bb72c1c116b (patch) | |
tree | be55a72ec67febf85740d9e712d97108eee52cc3 /gcc | |
parent | 5ad1d886a97c271aa7e069ac9c699c0797079de0 (diff) | |
download | gcc-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.cc | 12 | ||||
-rw-r--r-- | gcc/rust/resolve/rust-late-name-resolver-2.0.h | 1 | ||||
-rw-r--r-- | gcc/testsuite/rust/compile/nr2/exclude | 4 |
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 ¶m) +{ + // 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 |