1 // Copyright (C) 2020-2025 Free Software Foundation, Inc.
3 // This file is part of GCC.
5 // GCC is free software; you can redistribute it and/or modify it under
6 // the terms of the GNU General Public License as published by the Free
7 // Software Foundation; either version 3, or (at your option) any later
10 // GCC is distributed in the hope that it will be useful, but WITHOUT ANY
11 // WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 // You should have received a copy of the GNU General Public License
16 // along with GCC; see the file COPYING3. If not see
17 // <http://www.gnu.org/licenses/>.
19 #ifndef RUST_TYTY_UTIL_H
20 #define RUST_TYTY_UTIL_H
22 #include "rust-hir-map.h"
29 // this is a placeholder for types that can change like inference variables
33 explicit TyVar (HirId ref
);
35 HirId
get_ref () const { return ref
; }
37 BaseType
*get_tyty () const;
41 TyVar
monomorphized_clone () const;
43 static TyVar
get_implicit_infer_var (location_t locus
);
45 static TyVar
subst_covariant_var (TyTy::BaseType
*orig
,
46 TyTy::BaseType
*subst
);
55 explicit TyWithLocation (BaseType
*ty
, location_t locus
);
56 explicit TyWithLocation (BaseType
*ty
);
58 BaseType
*get_ty () const { return ty
; }
59 location_t
get_locus () const { return locus
; }
69 #endif // RUST_TYTY_UTIL_H