(root)/
gcc-13.2.0/
gcc/
rust/
hir/
tree/
rust-hir-full-decls.h
       1  // Copyright (C) 2020-2023 Free Software Foundation, Inc.
       2  
       3  // This file is part of GCC.
       4  
       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
       8  // version.
       9  
      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
      13  // for more details.
      14  
      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/>.
      18  
      19  #ifndef RUST_HIR_FULL_DECLS_H
      20  #define RUST_HIR_FULL_DECLS_H
      21  
      22  namespace Rust {
      23  namespace HIR {
      24  
      25  struct Literal;
      26  class Stmt;
      27  class Item;
      28  class Expr;
      29  class ExprWithoutBlock;
      30  class Pattern;
      31  class Type;
      32  class TypeNoBounds;
      33  class TypeParamBound;
      34  class Lifetime;
      35  class GenericParam;
      36  class LifetimeParam;
      37  
      38  class TraitItem;
      39  class ImplItem;
      40  struct Crate;
      41  class PathExpr;
      42  
      43  // rust-path.h
      44  class PathIdentSegment;
      45  struct GenericArgsBinding;
      46  class GenericArgs;
      47  class PathExprSegment;
      48  class PathPattern;
      49  class PathInExpression;
      50  class TypePathSegment;
      51  class TypePathSegmentGeneric;
      52  struct TypePathFunction;
      53  class TypePathSegmentFunction;
      54  class TypePath;
      55  struct QualifiedPathType;
      56  class QualifiedPathInExpression;
      57  class QualifiedPathInType;
      58  
      59  // rust-expr.h
      60  class ExprWithBlock;
      61  class LiteralExpr;
      62  class AttrInputLiteral;
      63  class OperatorExpr;
      64  class BorrowExpr;
      65  class DereferenceExpr;
      66  class ErrorPropagationExpr;
      67  class NegationExpr;
      68  class ArithmeticOrLogicalExpr;
      69  class ComparisonExpr;
      70  class LazyBooleanExpr;
      71  class TypeCastExpr;
      72  class AssignmentExpr;
      73  class CompoundAssignmentExpr;
      74  class GroupedExpr;
      75  class ArrayElems;
      76  class ArrayElemsValues;
      77  class ArrayElemsCopied;
      78  class ArrayExpr;
      79  class ArrayIndexExpr;
      80  class TupleExpr;
      81  class TupleIndexExpr;
      82  class StructExpr;
      83  class StructExprStruct;
      84  struct StructBase;
      85  class StructExprField;
      86  class StructExprFieldIdentifier;
      87  class StructExprFieldWithVal;
      88  class StructExprFieldIdentifierValue;
      89  class StructExprFieldIndexValue;
      90  class StructExprStructFields;
      91  class StructExprStructBase;
      92  class CallExpr;
      93  class MethodCallExpr;
      94  class FieldAccessExpr;
      95  struct ClosureParam;
      96  class ClosureExpr;
      97  class BlockExpr;
      98  class ContinueExpr;
      99  class BreakExpr;
     100  class RangeExpr;
     101  class RangeFromToExpr;
     102  class RangeFromExpr;
     103  class RangeToExpr;
     104  class RangeFullExpr;
     105  class RangeFromToInclExpr;
     106  class RangeToInclExpr;
     107  class ReturnExpr;
     108  class UnsafeBlockExpr;
     109  class LoopLabel;
     110  class BaseLoopExpr;
     111  class LoopExpr;
     112  class WhileLoopExpr;
     113  class WhileLetLoopExpr;
     114  class ForLoopExpr;
     115  class IfExpr;
     116  class IfExprConseqElse;
     117  class IfExprConseqIf;
     118  class IfLetExpr;
     119  class IfExprConseqIfLet;
     120  class IfLetExprConseqElse;
     121  class IfLetExprConseqIf;
     122  class IfLetExprConseqIfLet;
     123  struct MatchArm;
     124  // class MatchCase;
     125  // class MatchCaseBlockExpr;
     126  // class MatchCaseExpr;
     127  struct MatchCase;
     128  class MatchExpr;
     129  class AwaitExpr;
     130  class AsyncBlockExpr;
     131  
     132  // rust-stmt.h
     133  class EmptyStmt;
     134  class LetStmt;
     135  class ExprStmt;
     136  class ExprStmtWithoutBlock;
     137  class ExprStmtWithBlock;
     138  
     139  // rust-item.h
     140  class TypeParam;
     141  class ConstGenericParam;
     142  class WhereClauseItem;
     143  class LifetimeWhereClauseItem;
     144  class TypeBoundWhereClauseItem;
     145  struct WhereClause;
     146  struct SelfParam;
     147  struct FunctionQualifiers;
     148  struct FunctionParam;
     149  struct Visibility;
     150  class VisItem;
     151  class Module;
     152  class ExternCrate;
     153  class UseTree;
     154  class UseTreeGlob;
     155  class UseTreeList;
     156  class UseTreeRebind;
     157  class UseDeclaration;
     158  class Function;
     159  class TypeAlias;
     160  class Struct;
     161  struct StructField;
     162  class StructStruct;
     163  struct TupleField;
     164  class TupleStruct;
     165  class EnumItem;
     166  class EnumItemTuple;
     167  class EnumItemStruct;
     168  class EnumItemDiscriminant;
     169  class Enum;
     170  class Union;
     171  class ConstantItem;
     172  class StaticItem;
     173  struct TraitFunctionDecl;
     174  class TraitItemFunc;
     175  class TraitItemConst;
     176  class TraitItemType;
     177  class Trait;
     178  class ImplBlock;
     179  class ExternalItem;
     180  class ExternalStaticItem;
     181  struct NamedFunctionParam;
     182  class ExternalFunctionItem;
     183  class ExternBlock;
     184  
     185  // rust-pattern.h
     186  class LiteralPattern;
     187  class IdentifierPattern;
     188  class WildcardPattern;
     189  class RangePatternBound;
     190  class RangePatternBoundLiteral;
     191  class RangePatternBoundPath;
     192  class RangePatternBoundQualPath;
     193  class RangePattern;
     194  class ReferencePattern;
     195  struct StructPatternEtc;
     196  class StructPatternField;
     197  class StructPatternFieldTuplePat;
     198  class StructPatternFieldIdentPat;
     199  class StructPatternFieldIdent;
     200  class StructPattern;
     201  class TupleStructItems;
     202  class TupleStructItemsNoRange;
     203  class TupleStructItemsRange;
     204  class TupleStructPattern;
     205  class TuplePatternItems;
     206  class TuplePatternItemsMultiple;
     207  class TuplePatternItemsRanged;
     208  class TuplePattern;
     209  class SlicePattern;
     210  
     211  // rust-type.h
     212  class TraitBound;
     213  class ImplTraitType;
     214  class TraitObjectType;
     215  class ParenthesisedType;
     216  class ImplTraitTypeOneBound;
     217  class TupleType;
     218  class NeverType;
     219  class RawPointerType;
     220  class ReferenceType;
     221  class ArrayType;
     222  class SliceType;
     223  class InferredType;
     224  struct MaybeNamedParam;
     225  class BareFunctionType;
     226  } // namespace HIR
     227  } // namespace Rust
     228  
     229  #endif