aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Herron <philip.herron@embecosm.com>2022-06-28 13:54:41 +0100
committerPhilip Herron <philip.herron@embecosm.com>2022-06-28 14:05:34 +0100
commit7f8479378a99d17de6847d4482f23e11944d35c5 (patch)
treea0a5c3ec7cd50b2c1d63d804ab25aa02cf5d11c7
parent700849ffd066855f9d831a6bb34d4fc3de30ed50 (diff)
downloadgcc-7f8479378a99d17de6847d4482f23e11944d35c5.zip
gcc-7f8479378a99d17de6847d4482f23e11944d35c5.tar.gz
gcc-7f8479378a99d17de6847d4482f23e11944d35c5.tar.bz2
remove unnessecary useage of ResolveTypeToCanonicalPath when we dont need it here
-rw-r--r--gcc/rust/resolve/rust-ast-resolve-item.cc25
-rw-r--r--gcc/rust/resolve/rust-ast-resolve-toplevel.h29
2 files changed, 20 insertions, 34 deletions
diff --git a/gcc/rust/resolve/rust-ast-resolve-item.cc b/gcc/rust/resolve/rust-ast-resolve-item.cc
index 222da03..5b30cdb 100644
--- a/gcc/rust/resolve/rust-ast-resolve-item.cc
+++ b/gcc/rust/resolve/rust-ast-resolve-item.cc
@@ -598,13 +598,10 @@ ResolveItem::visit (AST::InherentImpl &impl_block)
rust_assert (!self_cpath.is_empty ());
// Setup paths
- bool canonicalize_type_args = !impl_block.has_generics ();
- bool type_resolve_generic_args = false;
-
+ std::string raw_impl_type_path = impl_block.get_type ()->as_string ();
CanonicalPath impl_type
- = ResolveTypeToCanonicalPath::resolve (*impl_block.get_type ().get (),
- canonicalize_type_args,
- type_resolve_generic_args);
+ = CanonicalPath::new_seg (impl_block.get_type ()->get_node_id (),
+ raw_impl_type_path);
CanonicalPath impl_prefix = prefix.append (impl_type);
// see https://godbolt.org/z/a3vMbsT6W
@@ -762,17 +759,15 @@ ResolveItem::visit (AST::TraitImpl &impl_block)
rust_assert (!canonical_impl_type.is_empty ());
// setup paths
- bool canonicalize_type_args = !impl_block.has_generics ();
- bool type_resolve_generic_args = false;
-
+ std::string raw_impl_type_path = impl_block.get_type ()->as_string ();
CanonicalPath impl_type_seg
- = ResolveTypeToCanonicalPath::resolve (*impl_block.get_type ().get (),
- canonicalize_type_args,
- type_resolve_generic_args);
+ = CanonicalPath::new_seg (impl_block.get_type ()->get_node_id (),
+ raw_impl_type_path);
+
+ std::string raw_trait_type_path = impl_block.get_trait_path ().as_string ();
CanonicalPath trait_type_seg
- = ResolveTypeToCanonicalPath::resolve (impl_block.get_trait_path (),
- canonicalize_type_args,
- type_resolve_generic_args);
+ = CanonicalPath::new_seg (impl_block.get_trait_path ().get_node_id (),
+ raw_trait_type_path);
CanonicalPath projection
= CanonicalPath::trait_impl_projection_seg (impl_block.get_node_id (),
diff --git a/gcc/rust/resolve/rust-ast-resolve-toplevel.h b/gcc/rust/resolve/rust-ast-resolve-toplevel.h
index 15f5af7..7aacc0a 100644
--- a/gcc/rust/resolve/rust-ast-resolve-toplevel.h
+++ b/gcc/rust/resolve/rust-ast-resolve-toplevel.h
@@ -325,34 +325,27 @@ public:
void visit (AST::InherentImpl &impl_block) override
{
- bool canonicalize_type_args = !impl_block.has_generics ();
- bool type_resolve_generic_args = false;
-
+ std::string raw_impl_type_path = impl_block.get_type ()->as_string ();
CanonicalPath impl_type
- = ResolveTypeToCanonicalPath::resolve (*impl_block.get_type ().get (),
- canonicalize_type_args,
- type_resolve_generic_args);
+ = CanonicalPath::new_seg (impl_block.get_type ()->get_node_id (),
+ raw_impl_type_path);
CanonicalPath impl_prefix = prefix.append (impl_type);
for (auto &impl_item : impl_block.get_impl_items ())
ResolveToplevelImplItem::go (impl_item.get (), impl_prefix);
-
- // we cannot resolve canonical paths here until later on
}
void visit (AST::TraitImpl &impl_block) override
{
- bool canonicalize_type_args = !impl_block.has_generics ();
- bool type_resolve_generic_args = false;
-
+ std::string raw_impl_type_path = impl_block.get_type ()->as_string ();
CanonicalPath impl_type_seg
- = ResolveTypeToCanonicalPath::resolve (*impl_block.get_type ().get (),
- canonicalize_type_args,
- type_resolve_generic_args);
+ = CanonicalPath::new_seg (impl_block.get_type ()->get_node_id (),
+ raw_impl_type_path);
+
+ std::string raw_trait_type_path = impl_block.get_trait_path ().as_string ();
CanonicalPath trait_type_seg
- = ResolveTypeToCanonicalPath::resolve (impl_block.get_trait_path (),
- canonicalize_type_args,
- type_resolve_generic_args);
+ = CanonicalPath::new_seg (impl_block.get_trait_path ().get_node_id (),
+ raw_trait_type_path);
CanonicalPath projection
= CanonicalPath::trait_impl_projection_seg (impl_block.get_node_id (),
@@ -370,8 +363,6 @@ public:
for (auto &impl_item : impl_block.get_impl_items ())
ResolveToplevelImplItem::go (impl_item.get (), impl_prefix);
-
- // we cannot resolve canonical paths here until later on
}
void visit (AST::Trait &trait) override