]> gcc.gnu.org Git - gcc.git/commitdiff
gccrs: Refactor PathProbeType code into CC file
authorPhilip Herron <herron.philip@googlemail.com>
Mon, 16 Jan 2023 17:54:41 +0000 (17:54 +0000)
committerArthur Cohen <arthur.cohen@embecosm.com>
Thu, 6 Apr 2023 08:47:20 +0000 (10:47 +0200)
Signed-off-by: Philip Herron <herron.philip@googlemail.com>
gcc/rust/ChangeLog:

* typecheck/rust-hir-path-probe.cc (PathProbeCandidate::Candidate::Candidate): refactor
(PathProbeCandidate::PathProbeCandidate): likewise
(PathProbeCandidate::as_string): likewise
(PathProbeCandidate::is_enum_candidate): likewise
(PathProbeCandidate::is_impl_candidate): likewise
(PathProbeCandidate::is_trait_candidate): likewise
(PathProbeCandidate::is_full_trait_item_candidate): likewise
(PathProbeCandidate::get_error): likewise
(PathProbeCandidate::is_error): likewise
(PathProbeCandidate::get_defid): likewise
(PathProbeCandidate::operator<): likewise
* typecheck/rust-hir-path-probe.h (struct PathProbeCandidate): likewise

gcc/rust/typecheck/rust-hir-path-probe.cc
gcc/rust/typecheck/rust-hir-path-probe.h

index 06d8920d2eb199e7dc061b35f985d593591e38e0..be89ceb864574e24f3fc4ef1aa3082e90a4e7c0a 100644 (file)
 namespace Rust {
 namespace Resolver {
 
+// PathProbeCandidate
+
+PathProbeCandidate::Candidate::Candidate (EnumItemCandidate enum_field)
+  : enum_field (enum_field)
+{}
+
+PathProbeCandidate::Candidate::Candidate (ImplItemCandidate impl) : impl (impl)
+{}
+
+PathProbeCandidate::Candidate::Candidate (TraitItemCandidate trait)
+  : trait (trait)
+{}
+
+PathProbeCandidate::PathProbeCandidate (CandidateType type, TyTy::BaseType *ty,
+                                       Location locus,
+                                       EnumItemCandidate enum_field)
+  : type (type), ty (ty), locus (locus), item (enum_field)
+{}
+
+PathProbeCandidate::PathProbeCandidate (CandidateType type, TyTy::BaseType *ty,
+                                       Location locus, ImplItemCandidate impl)
+  : type (type), ty (ty), locus (locus), item (impl)
+{}
+
+PathProbeCandidate::PathProbeCandidate (CandidateType type, TyTy::BaseType *ty,
+                                       Location locus,
+                                       TraitItemCandidate trait)
+  : type (type), ty (ty), locus (locus), item (trait)
+{}
+
+std::string
+PathProbeCandidate::as_string () const
+{
+  return "PathProbe candidate TODO - as_string";
+}
+
+bool
+PathProbeCandidate::is_enum_candidate () const
+{
+  return type == ENUM_VARIANT;
+}
+
+bool
+PathProbeCandidate::is_impl_candidate () const
+{
+  return type == IMPL_CONST || type == IMPL_TYPE_ALIAS || type == IMPL_FUNC;
+}
+
+bool
+PathProbeCandidate::is_trait_candidate () const
+{
+  return type == TRAIT_ITEM_CONST || type == TRAIT_TYPE_ALIAS
+        || type == TRAIT_FUNC;
+}
+
+bool
+PathProbeCandidate::is_full_trait_item_candidate () const
+{
+  return is_trait_candidate () && item.trait.impl == nullptr;
+}
+
+PathProbeCandidate
+PathProbeCandidate::get_error ()
+{
+  return PathProbeCandidate (ERROR, nullptr, Location (),
+                            ImplItemCandidate{nullptr, nullptr});
+}
+
+bool
+PathProbeCandidate::is_error () const
+{
+  return type == ERROR;
+}
+
+DefId
+PathProbeCandidate::get_defid () const
+{
+  switch (type)
+    {
+    case ENUM_VARIANT:
+      return item.enum_field.variant->get_defid ();
+      break;
+
+    case IMPL_CONST:
+    case IMPL_TYPE_ALIAS:
+    case IMPL_FUNC:
+      return item.impl.impl_item->get_impl_mappings ().get_defid ();
+      break;
+
+    case TRAIT_ITEM_CONST:
+    case TRAIT_TYPE_ALIAS:
+    case TRAIT_FUNC:
+      return item.trait.item_ref->get_mappings ().get_defid ();
+      break;
+
+    case ERROR:
+    default:
+      return UNKNOWN_DEFID;
+    }
+
+  return UNKNOWN_DEFID;
+}
+
+bool
+PathProbeCandidate::operator< (const PathProbeCandidate &c) const
+{
+  return get_defid () < c.get_defid ();
+}
+
 // PathProbeType
 
 PathProbeType::PathProbeType (const TyTy::BaseType *receiver,
index 783282a0dc9fd870bc889b9e43c77e00d515b6e8..dd511ac41849450ac80189de08c2dfcfff4e93c9 100644 (file)
@@ -73,89 +73,37 @@ struct PathProbeCandidate
     ImplItemCandidate impl;
     TraitItemCandidate trait;
 
-    Candidate (EnumItemCandidate enum_field) : enum_field (enum_field) {}
-    Candidate (ImplItemCandidate impl) : impl (impl) {}
-    Candidate (TraitItemCandidate trait) : trait (trait) {}
+    Candidate (EnumItemCandidate enum_field);
+    Candidate (ImplItemCandidate impl);
+    Candidate (TraitItemCandidate trait);
   } item;
 
   PathProbeCandidate (CandidateType type, TyTy::BaseType *ty, Location locus,
-                     EnumItemCandidate enum_field)
-    : type (type), ty (ty), locus (locus), item (enum_field)
-  {}
+                     EnumItemCandidate enum_field);
 
   PathProbeCandidate (CandidateType type, TyTy::BaseType *ty, Location locus,
-                     ImplItemCandidate impl)
-    : type (type), ty (ty), locus (locus), item (impl)
-  {}
+                     ImplItemCandidate impl);
 
   PathProbeCandidate (CandidateType type, TyTy::BaseType *ty, Location locus,
-                     TraitItemCandidate trait)
-    : type (type), ty (ty), locus (locus), item (trait)
-  {}
+                     TraitItemCandidate trait);
 
-  std::string as_string () const
-  {
-    return "PathProbe candidate TODO - as_string";
-  }
+  std::string as_string () const;
 
-  bool is_enum_candidate () const { return type == ENUM_VARIANT; }
+  bool is_enum_candidate () const;
 
-  bool is_impl_candidate () const
-  {
-    return type == IMPL_CONST || type == IMPL_TYPE_ALIAS || type == IMPL_FUNC;
-  }
+  bool is_impl_candidate () const;
 
-  bool is_trait_candidate () const
-  {
-    return type == TRAIT_ITEM_CONST || type == TRAIT_TYPE_ALIAS
-          || type == TRAIT_FUNC;
-  }
+  bool is_trait_candidate () const;
 
-  bool is_full_trait_item_candidate () const
-  {
-    return is_trait_candidate () && item.trait.impl == nullptr;
-  }
+  bool is_full_trait_item_candidate () const;
 
-  static PathProbeCandidate get_error ()
-  {
-    return PathProbeCandidate (ERROR, nullptr, Location (),
-                              ImplItemCandidate{nullptr, nullptr});
-  }
+  static PathProbeCandidate get_error ();
 
-  bool is_error () const { return type == ERROR; }
+  bool is_error () const;
 
-  DefId get_defid () const
-  {
-    switch (type)
-      {
-      case ENUM_VARIANT:
-       return item.enum_field.variant->get_defid ();
-       break;
-
-      case IMPL_CONST:
-      case IMPL_TYPE_ALIAS:
-      case IMPL_FUNC:
-       return item.impl.impl_item->get_impl_mappings ().get_defid ();
-       break;
-
-      case TRAIT_ITEM_CONST:
-      case TRAIT_TYPE_ALIAS:
-      case TRAIT_FUNC:
-       return item.trait.item_ref->get_mappings ().get_defid ();
-       break;
-
-      case ERROR:
-      default:
-       return UNKNOWN_DEFID;
-      }
-
-    return UNKNOWN_DEFID;
-  }
+  DefId get_defid () const;
 
-  bool operator<(const PathProbeCandidate &c) const
-  {
-    return get_defid () < c.get_defid ();
-  }
+  bool operator< (const PathProbeCandidate &c) const;
 };
 
 class PathProbeType : public TypeCheckBase, public HIR::HIRImplVisitor
This page took 0.089023 seconds and 5 git commands to generate.