gccrs: Remove unused files 'gcc/rust/typecheck/rust-hir-type-check-toplevel.{cc,h}' (was: [PATCH] gccrs: Remove unused files)

Message ID 87cyi9ahd6.fsf@euler.schwinge.ddns.net
State Committed
Headers
Series gccrs: Remove unused files 'gcc/rust/typecheck/rust-hir-type-check-toplevel.{cc,h}' (was: [PATCH] gccrs: Remove unused files) |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 fail Patch failed to apply
linaro-tcwg-bot/tcwg_gcc_build--master-arm fail Patch failed to apply

Commit Message

Thomas Schwinge Dec. 2, 2024, 9:45 p.m. UTC
  Hi!

On 2024-12-01T21:17:39-0500, Owen Avery <powerboat9.gamer@gmail.com> wrote:
> These files only exist upstream, and were presumably either never
> removed upstream or accidentally upstreamed despite being removed
> downstream.
>
> gcc/rust/ChangeLog:
>
> 	* typecheck/rust-hir-type-check-toplevel.cc: Removed.
> 	* typecheck/rust-hir-type-check-toplevel.h: Removed.

Confirmed: something went wrong during upstreaming of
"Refactor TypeResolution to be a simple query based system" -- but no
harm done at all.  I'd come up with the same patch just a week ago.  ;-)
I've added a bit more context to your Git commit log, and then pushed to
trunk branch in commit 8173d0a4b75ae2b25e9ed8b4ed8bdc39c3438560
"gccrs: Remove unused files 'gcc/rust/typecheck/rust-hir-type-check-toplevel.{cc,h}'",
see attached.  


Grüße
 Thomas
  

Patch

From 8173d0a4b75ae2b25e9ed8b4ed8bdc39c3438560 Mon Sep 17 00:00:00 2001
From: Owen Avery <powerboat9.gamer@gmail.com>
Date: Sun, 1 Dec 2024 21:17:39 -0500
Subject: [PATCH] gccrs: Remove unused files
 'gcc/rust/typecheck/rust-hir-type-check-toplevel.{cc,h}'

These files only still exist upstream; they should have been removed as
part of commit 104cc285533e742726ae18a7d3d4f384dd20c350
"gccrs: Refactor TypeResolution to be a simple query based system".

gcc/rust/ChangeLog:

	* typecheck/rust-hir-type-check-toplevel.cc: Removed.
	* typecheck/rust-hir-type-check-toplevel.h: Removed.

Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
Co-authored-by: Thomas Schwinge <tschwinge@baylibre.com>
---
 .../typecheck/rust-hir-type-check-toplevel.cc | 378 ------------------
 .../typecheck/rust-hir-type-check-toplevel.h  |  56 ---
 2 files changed, 434 deletions(-)
 delete mode 100644 gcc/rust/typecheck/rust-hir-type-check-toplevel.cc
 delete mode 100644 gcc/rust/typecheck/rust-hir-type-check-toplevel.h

diff --git a/gcc/rust/typecheck/rust-hir-type-check-toplevel.cc b/gcc/rust/typecheck/rust-hir-type-check-toplevel.cc
deleted file mode 100644
index 8224afb4b684..000000000000
--- a/gcc/rust/typecheck/rust-hir-type-check-toplevel.cc
+++ /dev/null
@@ -1,378 +0,0 @@ 
-// Copyright (C) 2020-2024 Free Software Foundation, Inc.
-
-// This file is part of GCC.
-
-// GCC is free software; you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation; either version 3, or (at your option) any later
-// version.
-
-// GCC is distributed in the hope that it will be useful, but WITHOUT ANY
-// WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-// for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with GCC; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include "rust-hir-type-check-toplevel.h"
-#include "rust-hir-type-check-enumitem.h"
-#include "rust-hir-type-check-type.h"
-#include "rust-hir-type-check-expr.h"
-#include "rust-hir-type-check-pattern.h"
-#include "rust-hir-type-check-implitem.h"
-
-namespace Rust {
-namespace Resolver {
-
-TypeCheckTopLevel::TypeCheckTopLevel () : TypeCheckBase () {}
-
-void
-TypeCheckTopLevel::Resolve (HIR::Item &item)
-{
-  rust_assert (item.get_hir_kind () == HIR::Node::BaseKind::VIS_ITEM);
-  HIR::VisItem &vis_item = static_cast<HIR::VisItem &> (item);
-
-  TypeCheckTopLevel resolver;
-  vis_item.accept_vis (resolver);
-}
-
-void
-TypeCheckTopLevel::visit (HIR::TypeAlias &alias)
-{
-  TyTy::BaseType *actual_type
-    = TypeCheckType::Resolve (alias.get_type_aliased ().get ());
-
-  context->insert_type (alias.get_mappings (), actual_type);
-
-  for (auto &where_clause_item : alias.get_where_clause ().get_items ())
-    {
-      ResolveWhereClauseItem::Resolve (*where_clause_item.get ());
-    }
-}
-
-void
-TypeCheckTopLevel::visit (HIR::TupleStruct &struct_decl)
-{
-  std::vector<TyTy::SubstitutionParamMapping> substitutions;
-  if (struct_decl.has_generics ())
-    resolve_generic_params (struct_decl.get_generic_params (), substitutions);
-
-  for (auto &where_clause_item : struct_decl.get_where_clause ().get_items ())
-    {
-      ResolveWhereClauseItem::Resolve (*where_clause_item.get ());
-    }
-
-  std::vector<TyTy::StructFieldType *> fields;
-  size_t idx = 0;
-  for (auto &field : struct_decl.get_fields ())
-    {
-      TyTy::BaseType *field_type
-	= TypeCheckType::Resolve (field.get_field_type ().get ());
-      TyTy::StructFieldType *ty_field
-	= new TyTy::StructFieldType (field.get_mappings ().get_hirid (),
-				     std::to_string (idx), field_type,
-				     field.get_locus ());
-      fields.push_back (ty_field);
-      context->insert_type (field.get_mappings (), ty_field->get_field_type ());
-      idx++;
-    }
-
-  // get the path
-  const CanonicalPath *canonical_path = nullptr;
-  bool ok = mappings->lookup_canonical_path (
-    struct_decl.get_mappings ().get_nodeid (), &canonical_path);
-  rust_assert (ok);
-  RustIdent ident{*canonical_path, struct_decl.get_locus ()};
-
-  // its a single variant ADT
-  std::vector<TyTy::VariantDef *> variants;
-  variants.push_back (new TyTy::VariantDef (
-    struct_decl.get_mappings ().get_hirid (), struct_decl.get_identifier (),
-    ident, TyTy::VariantDef::VariantType::TUPLE, nullptr, std::move (fields)));
-
-  // Process #[repr(X)] attribute, if any
-  const AST::AttrVec &attrs = struct_decl.get_outer_attrs ();
-  TyTy::ADTType::ReprOptions repr
-    = parse_repr_options (attrs, struct_decl.get_locus ());
-
-  TyTy::BaseType *type
-    = new TyTy::ADTType (struct_decl.get_mappings ().get_hirid (),
-			 mappings->get_next_hir_id (),
-			 struct_decl.get_identifier (), ident,
-			 TyTy::ADTType::ADTKind::TUPLE_STRUCT,
-			 std::move (variants), std::move (substitutions), repr);
-
-  context->insert_type (struct_decl.get_mappings (), type);
-}
-
-void
-TypeCheckTopLevel::visit (HIR::Module &module)
-{
-  for (auto &item : module.get_items ())
-    TypeCheckTopLevel::Resolve (*item.get ());
-}
-
-void
-TypeCheckTopLevel::visit (HIR::StructStruct &struct_decl)
-{
-  std::vector<TyTy::SubstitutionParamMapping> substitutions;
-  if (struct_decl.has_generics ())
-    resolve_generic_params (struct_decl.get_generic_params (), substitutions);
-
-  for (auto &where_clause_item : struct_decl.get_where_clause ().get_items ())
-    {
-      ResolveWhereClauseItem::Resolve (*where_clause_item.get ());
-    }
-
-  std::vector<TyTy::StructFieldType *> fields;
-  for (auto &field : struct_decl.get_fields ())
-    {
-      TyTy::BaseType *field_type
-	= TypeCheckType::Resolve (field.get_field_type ().get ());
-      TyTy::StructFieldType *ty_field
-	= new TyTy::StructFieldType (field.get_mappings ().get_hirid (),
-				     field.get_field_name (), field_type,
-				     field.get_locus ());
-      fields.push_back (ty_field);
-      context->insert_type (field.get_mappings (), ty_field->get_field_type ());
-    }
-
-  // get the path
-  const CanonicalPath *canonical_path = nullptr;
-  bool ok = mappings->lookup_canonical_path (
-    struct_decl.get_mappings ().get_nodeid (), &canonical_path);
-  rust_assert (ok);
-  RustIdent ident{*canonical_path, struct_decl.get_locus ()};
-
-  // its a single variant ADT
-  std::vector<TyTy::VariantDef *> variants;
-  variants.push_back (new TyTy::VariantDef (
-    struct_decl.get_mappings ().get_hirid (), struct_decl.get_identifier (),
-    ident, TyTy::VariantDef::VariantType::STRUCT, nullptr, std::move (fields)));
-
-  // Process #[repr(X)] attribute, if any
-  const AST::AttrVec &attrs = struct_decl.get_outer_attrs ();
-  TyTy::ADTType::ReprOptions repr
-    = parse_repr_options (attrs, struct_decl.get_locus ());
-
-  TyTy::BaseType *type
-    = new TyTy::ADTType (struct_decl.get_mappings ().get_hirid (),
-			 mappings->get_next_hir_id (),
-			 struct_decl.get_identifier (), ident,
-			 TyTy::ADTType::ADTKind::STRUCT_STRUCT,
-			 std::move (variants), std::move (substitutions), repr);
-
-  context->insert_type (struct_decl.get_mappings (), type);
-}
-
-void
-TypeCheckTopLevel::visit (HIR::Enum &enum_decl)
-{
-  std::vector<TyTy::SubstitutionParamMapping> substitutions;
-  if (enum_decl.has_generics ())
-    resolve_generic_params (enum_decl.get_generic_params (), substitutions);
-
-  std::vector<TyTy::VariantDef *> variants;
-  int64_t discriminant_value = 0;
-  for (auto &variant : enum_decl.get_variants ())
-    {
-      TyTy::VariantDef *field_type
-	= TypeCheckEnumItem::Resolve (variant.get (), discriminant_value);
-
-      discriminant_value++;
-      variants.push_back (field_type);
-    }
-
-  // get the path
-  const CanonicalPath *canonical_path = nullptr;
-  bool ok
-    = mappings->lookup_canonical_path (enum_decl.get_mappings ().get_nodeid (),
-				       &canonical_path);
-  rust_assert (ok);
-  RustIdent ident{*canonical_path, enum_decl.get_locus ()};
-
-  // multi variant ADT
-  TyTy::BaseType *type
-    = new TyTy::ADTType (enum_decl.get_mappings ().get_hirid (),
-			 mappings->get_next_hir_id (),
-			 enum_decl.get_identifier (), ident,
-			 TyTy::ADTType::ADTKind::ENUM, std::move (variants),
-			 std::move (substitutions));
-
-  context->insert_type (enum_decl.get_mappings (), type);
-}
-
-void
-TypeCheckTopLevel::visit (HIR::Union &union_decl)
-{
-  std::vector<TyTy::SubstitutionParamMapping> substitutions;
-  if (union_decl.has_generics ())
-    resolve_generic_params (union_decl.get_generic_params (), substitutions);
-
-  for (auto &where_clause_item : union_decl.get_where_clause ().get_items ())
-    {
-      ResolveWhereClauseItem::Resolve (*where_clause_item.get ());
-    }
-
-  std::vector<TyTy::StructFieldType *> fields;
-  for (auto &variant : union_decl.get_variants ())
-    {
-      TyTy::BaseType *variant_type
-	= TypeCheckType::Resolve (variant.get_field_type ().get ());
-      TyTy::StructFieldType *ty_variant
-	= new TyTy::StructFieldType (variant.get_mappings ().get_hirid (),
-				     variant.get_field_name (), variant_type,
-				     variant.get_locus ());
-      fields.push_back (ty_variant);
-      context->insert_type (variant.get_mappings (),
-			    ty_variant->get_field_type ());
-    }
-
-  // get the path
-  const CanonicalPath *canonical_path = nullptr;
-  bool ok
-    = mappings->lookup_canonical_path (union_decl.get_mappings ().get_nodeid (),
-				       &canonical_path);
-  rust_assert (ok);
-  RustIdent ident{*canonical_path, union_decl.get_locus ()};
-
-  // there is only a single variant
-  std::vector<TyTy::VariantDef *> variants;
-  variants.push_back (new TyTy::VariantDef (
-    union_decl.get_mappings ().get_hirid (), union_decl.get_identifier (),
-    ident, TyTy::VariantDef::VariantType::STRUCT, nullptr, std::move (fields)));
-
-  TyTy::BaseType *type
-    = new TyTy::ADTType (union_decl.get_mappings ().get_hirid (),
-			 mappings->get_next_hir_id (),
-			 union_decl.get_identifier (), ident,
-			 TyTy::ADTType::ADTKind::UNION, std::move (variants),
-			 std::move (substitutions));
-
-  context->insert_type (union_decl.get_mappings (), type);
-}
-
-void
-TypeCheckTopLevel::visit (HIR::StaticItem &var)
-{
-  TyTy::BaseType *type = TypeCheckType::Resolve (var.get_type ());
-  TyTy::BaseType *expr_type = TypeCheckExpr::Resolve (var.get_expr ());
-
-  TyTy::BaseType *unified
-    = coercion_site (var.get_mappings ().get_hirid (),
-		     TyTy::TyWithLocation (type, var.get_type ()->get_locus ()),
-		     TyTy::TyWithLocation (expr_type,
-					   var.get_expr ()->get_locus ()),
-		     var.get_locus ());
-  context->insert_type (var.get_mappings (), unified);
-}
-
-void
-TypeCheckTopLevel::visit (HIR::ConstantItem &constant)
-{
-  TyTy::BaseType *type = TypeCheckType::Resolve (constant.get_type ());
-  TyTy::BaseType *expr_type = TypeCheckExpr::Resolve (constant.get_expr ());
-
-  TyTy::BaseType *unified = unify_site (
-    constant.get_mappings ().get_hirid (),
-    TyTy::TyWithLocation (type, constant.get_type ()->get_locus ()),
-    TyTy::TyWithLocation (expr_type, constant.get_expr ()->get_locus ()),
-    constant.get_locus ());
-  context->insert_type (constant.get_mappings (), unified);
-}
-
-void
-TypeCheckTopLevel::visit (HIR::Function &function)
-{
-  std::vector<TyTy::SubstitutionParamMapping> substitutions;
-  if (function.has_generics ())
-    resolve_generic_params (function.get_generic_params (), substitutions);
-
-  for (auto &where_clause_item : function.get_where_clause ().get_items ())
-    {
-      ResolveWhereClauseItem::Resolve (*where_clause_item.get ());
-    }
-
-  TyTy::BaseType *ret_type = nullptr;
-  if (!function.has_function_return_type ())
-    ret_type
-      = TyTy::TupleType::get_unit_type (function.get_mappings ().get_hirid ());
-  else
-    {
-      auto resolved
-	= TypeCheckType::Resolve (function.get_return_type ().get ());
-      if (resolved->get_kind () == TyTy::TypeKind::ERROR)
-	{
-	  rust_error_at (function.get_locus (),
-			 "failed to resolve return type");
-	  return;
-	}
-
-      ret_type = resolved->clone ();
-      ret_type->set_ref (
-	function.get_return_type ()->get_mappings ().get_hirid ());
-    }
-
-  std::vector<std::pair<HIR::Pattern *, TyTy::BaseType *>> params;
-  for (auto &param : function.get_function_params ())
-    {
-      // get the name as well required for later on
-      auto param_tyty = TypeCheckType::Resolve (param.get_type ());
-      params.push_back (
-	std::pair<HIR::Pattern *, TyTy::BaseType *> (param.get_param_name (),
-						     param_tyty));
-
-      context->insert_type (param.get_mappings (), param_tyty);
-      TypeCheckPattern::Resolve (param.get_param_name (), param_tyty);
-    }
-
-  const CanonicalPath *canonical_path = nullptr;
-  bool ok
-    = mappings->lookup_canonical_path (function.get_mappings ().get_nodeid (),
-				       &canonical_path);
-  rust_assert (ok);
-
-  RustIdent ident{*canonical_path, function.get_locus ()};
-  auto fnType = new TyTy::FnType (function.get_mappings ().get_hirid (),
-				  function.get_mappings ().get_defid (),
-				  function.get_function_name (), ident,
-				  TyTy::FnType::FNTYPE_DEFAULT_FLAGS, ABI::RUST,
-				  std::move (params), ret_type,
-				  std::move (substitutions));
-
-  context->insert_type (function.get_mappings (), fnType);
-}
-
-void
-TypeCheckTopLevel::visit (HIR::ImplBlock &impl_block)
-{
-  std::vector<TyTy::SubstitutionParamMapping> substitutions;
-  if (impl_block.has_generics ())
-    resolve_generic_params (impl_block.get_generic_params (), substitutions);
-
-  for (auto &where_clause_item : impl_block.get_where_clause ().get_items ())
-    {
-      ResolveWhereClauseItem::Resolve (*where_clause_item.get ());
-    }
-
-  auto self = TypeCheckType::Resolve (impl_block.get_type ().get ());
-  if (self->get_kind () == TyTy::TypeKind::ERROR)
-    return;
-
-  for (auto &impl_item : impl_block.get_impl_items ())
-    TypeCheckTopLevelImplItem::Resolve (impl_item.get (), self, substitutions);
-}
-
-void
-TypeCheckTopLevel::visit (HIR::ExternBlock &extern_block)
-{
-  for (auto &item : extern_block.get_extern_items ())
-    {
-      TypeCheckTopLevelExternItem::Resolve (item.get (), extern_block);
-    }
-}
-
-} // namespace Resolver
-} // namespace Rust
diff --git a/gcc/rust/typecheck/rust-hir-type-check-toplevel.h b/gcc/rust/typecheck/rust-hir-type-check-toplevel.h
deleted file mode 100644
index 509aacb9e788..000000000000
--- a/gcc/rust/typecheck/rust-hir-type-check-toplevel.h
+++ /dev/null
@@ -1,56 +0,0 @@ 
-// Copyright (C) 2020-2024 Free Software Foundation, Inc.
-
-// This file is part of GCC.
-
-// GCC is free software; you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation; either version 3, or (at your option) any later
-// version.
-
-// GCC is distributed in the hope that it will be useful, but WITHOUT ANY
-// WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-// for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with GCC; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#ifndef RUST_HIR_TYPE_CHECK_TOPLEVEL
-#define RUST_HIR_TYPE_CHECK_TOPLEVEL
-
-#include "rust-hir-type-check-base.h"
-
-namespace Rust {
-namespace Resolver {
-
-class TypeCheckTopLevel : private TypeCheckBase, public HIR::HIRVisItemVisitor
-{
-public:
-  static void Resolve (HIR::Item &item);
-
-  void visit (HIR::Module &module) override;
-  void visit (HIR::Function &function) override;
-  void visit (HIR::TypeAlias &alias) override;
-  void visit (HIR::TupleStruct &struct_decl) override;
-  void visit (HIR::StructStruct &struct_decl) override;
-  void visit (HIR::Enum &enum_decl) override;
-  void visit (HIR::Union &union_decl) override;
-  void visit (HIR::StaticItem &var) override;
-  void visit (HIR::ConstantItem &constant) override;
-  void visit (HIR::ImplBlock &impl_block) override;
-  void visit (HIR::ExternBlock &extern_block) override;
-
-  // nothing to do
-  void visit (HIR::Trait &trait_block) override {}
-  void visit (HIR::ExternCrate &crate) override {}
-  void visit (HIR::UseDeclaration &use_decl) override {}
-
-private:
-  TypeCheckTopLevel ();
-};
-
-} // namespace Resolver
-} // namespace Rust
-
-#endif // RUST_HIR_TYPE_CHECK_TOPLEVEL
-- 
2.45.2