diff options
author | Philip Herron <philip.herron@embecosm.com> | 2021-08-08 20:00:43 +0100 |
---|---|---|
committer | Philip Herron <philip.herron@embecosm.com> | 2021-08-08 20:00:43 +0100 |
commit | 49a498f28be6cf5ced4a2a88aef86a5a75092334 (patch) | |
tree | ae7be1e0aea20079769b89f0a7c3f40e69f983af /gcc | |
parent | 43c1ab08f070994a934d90ff4e6457eaee12c493 (diff) | |
download | gcc-49a498f28be6cf5ced4a2a88aef86a5a75092334.zip gcc-49a498f28be6cf5ced4a2a88aef86a5a75092334.tar.gz gcc-49a498f28be6cf5ced4a2a88aef86a5a75092334.tar.bz2 |
refactor error_node to be part of the type not the resolver
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/backend/rust-compile-resolve-path.cc | 2 | ||||
-rw-r--r-- | gcc/rust/backend/rust-compile.cc | 2 | ||||
-rw-r--r-- | gcc/rust/typecheck/rust-hir-trait-ref.h | 6 | ||||
-rw-r--r-- | gcc/rust/typecheck/rust-hir-trait-resolve.h | 14 | ||||
-rw-r--r-- | gcc/rust/typecheck/rust-hir-type-check-item.h | 2 |
5 files changed, 13 insertions, 13 deletions
diff --git a/gcc/rust/backend/rust-compile-resolve-path.cc b/gcc/rust/backend/rust-compile-resolve-path.cc index c87b477..52bdbb0 100644 --- a/gcc/rust/backend/rust-compile-resolve-path.cc +++ b/gcc/rust/backend/rust-compile-resolve-path.cc @@ -108,7 +108,7 @@ ResolvePathRef::visit (HIR::PathInExpression &expr) trait_item->get_mappings ().get_hirid ()); Resolver::TraitReference &trait_ref - = Resolver::TraitResolver::error_node (); + = Resolver::TraitReference::error_node (); bool ok = ctx->get_tyctx ()->lookup_trait_reference ( trait->get_mappings ().get_defid (), trait_ref); rust_assert (ok); diff --git a/gcc/rust/backend/rust-compile.cc b/gcc/rust/backend/rust-compile.cc index f422572..c93f08c 100644 --- a/gcc/rust/backend/rust-compile.cc +++ b/gcc/rust/backend/rust-compile.cc @@ -151,7 +151,7 @@ CompileExpr::visit (HIR::MethodCallExpr &expr) trait_item->get_mappings ().get_hirid ()); Resolver::TraitReference &trait_ref - = Resolver::TraitResolver::error_node (); + = Resolver::TraitReference::error_node (); bool ok = ctx->get_tyctx ()->lookup_trait_reference ( trait->get_mappings ().get_defid (), trait_ref); rust_assert (ok); diff --git a/gcc/rust/typecheck/rust-hir-trait-ref.h b/gcc/rust/typecheck/rust-hir-trait-ref.h index b19c38a..dd77dfd 100644 --- a/gcc/rust/typecheck/rust-hir-trait-ref.h +++ b/gcc/rust/typecheck/rust-hir-trait-ref.h @@ -199,6 +199,12 @@ public: bool is_error () const { return hir_trait_ref == nullptr; } + static TraitReference &error_node () + { + static TraitReference trait_error_node = TraitReference::error (); + return trait_error_node; + } + Location get_locus () const { return hir_trait_ref->get_locus (); } std::string get_name () const diff --git a/gcc/rust/typecheck/rust-hir-trait-resolve.h b/gcc/rust/typecheck/rust-hir-trait-resolve.h index 6d7c864..1e69caa 100644 --- a/gcc/rust/typecheck/rust-hir-trait-resolve.h +++ b/gcc/rust/typecheck/rust-hir-trait-resolve.h @@ -106,12 +106,6 @@ public: return resolver.go (path); } - static TraitReference &error_node () - { - static TraitReference trait_error_node = TraitReference::error (); - return trait_error_node; - } - private: TraitResolver () : TypeCheckBase () {} @@ -122,7 +116,7 @@ private: &ref)) { rust_error_at (path.get_locus (), "Failed to resolve path to node-id"); - return error_node (); + return TraitReference::error_node (); } HirId hir_node = UNKNOWN_HIRID; @@ -130,7 +124,7 @@ private: &hir_node)) { rust_error_at (path.get_locus (), "Failed to resolve path to hir-id"); - return error_node (); + return TraitReference::error_node (); } HIR::Item *resolved_item @@ -140,7 +134,7 @@ private: resolved_item->accept_vis (*this); rust_assert (trait_reference != nullptr); - TraitReference &tref = error_node (); + TraitReference &tref = TraitReference::error_node (); if (context->lookup_trait_reference ( trait_reference->get_mappings ().get_defid (), tref)) { @@ -189,7 +183,7 @@ private: context->insert_trait_reference ( trait_reference->get_mappings ().get_defid (), std::move (tref)); - tref = error_node (); + tref = TraitReference::error_node (); bool ok = context->lookup_trait_reference ( trait_reference->get_mappings ().get_defid (), tref); rust_assert (ok); diff --git a/gcc/rust/typecheck/rust-hir-type-check-item.h b/gcc/rust/typecheck/rust-hir-type-check-item.h index 8d770f0..493e91a 100644 --- a/gcc/rust/typecheck/rust-hir-type-check-item.h +++ b/gcc/rust/typecheck/rust-hir-type-check-item.h @@ -43,7 +43,7 @@ public: void visit (HIR::ImplBlock &impl_block) override { - TraitReference &trait_reference = TraitResolver::error_node (); + TraitReference &trait_reference = TraitReference::error_node (); if (impl_block.has_trait_ref ()) { std::unique_ptr<HIR::TypePath> &ref = impl_block.get_trait_ref (); |