class WhereClauseItem;
class LifetimeWhereClauseItem;
class TypeBoundWhereClauseItem;
-struct WhereClause;
-struct SelfParam;
-struct FunctionQualifiers;
-struct FunctionParam;
+class WhereClause;
+class SelfParam;
+class FunctionQualifiers;
+class FunctionParam;
struct Visibility;
class Method;
class VisItem;
class Function;
class TypeAlias;
class Struct;
-struct StructField;
+class StructField;
class StructStruct;
-struct TupleField;
+class TupleField;
class TupleStruct;
class EnumItem;
class EnumItemTuple;
class Union;
class ConstantItem;
class StaticItem;
-struct TraitFunctionDecl;
+class TraitFunctionDecl;
class TraitItemFunc;
-struct TraitMethodDecl;
+class TraitMethodDecl;
class TraitItemMethod;
class TraitItemConst;
class TraitItemType;
class ExternalItem;
class ExternalTypeItem;
class ExternalStaticItem;
-struct NamedFunctionParam;
+class NamedFunctionParam;
class ExternalFunctionItem;
class ExternBlock;
};
// A where clause
-struct WhereClause
+class WhereClause
{
-private:
std::vector<std::unique_ptr<WhereClauseItem>> where_clause_items;
NodeId node_id;
};
// A self parameter in a method
-struct SelfParam
+class SelfParam
{
-private:
bool has_ref;
bool is_mut;
// bool has_lifetime; // only possible if also ref
};
// Qualifiers for function, i.e. const, unsafe, extern etc.
-struct FunctionQualifiers
+class FunctionQualifiers
{
-private:
AsyncConstStatus const_status;
bool has_unsafe;
bool has_extern;
};
// A function parameter
-struct FunctionParam
+class FunctionParam
{
-private:
std::vector<Attribute> outer_attrs;
Location locus;
std::unique_ptr<Pattern> param_name;
};
// A single field in a struct
-struct StructField
+class StructField
{
-private:
// bool has_outer_attributes;
std::vector<Attribute> outer_attrs;
};
// A single field in a tuple
-struct TupleField
+class TupleField
{
-private:
// bool has_outer_attributes;
std::vector<Attribute> outer_attrs;
};
// Function declaration in traits
-struct TraitFunctionDecl
+class TraitFunctionDecl
{
-private:
// TODO: delete and replace with Function decl item? no as no body in this.
FunctionQualifiers qualifiers;
Identifier function_name;
};
// Method declaration within traits
-struct TraitMethodDecl
+class TraitMethodDecl
{
-private:
// TODO: delete and replace with Function decl item? no as no body.
FunctionQualifiers qualifiers;
Identifier function_name;
};
// A named function parameter used in external functions
-struct NamedFunctionParam
+class NamedFunctionParam
{
-private:
// bool has_name; // otherwise is _
std::string name;
// rust-path.h
class PathIdentSegment;
-struct GenericArgsBinding;
+class GenericArgsBinding;
class GenericArgs;
class PathExprSegment;
class PathPattern;
class PathInExpression;
class TypePathSegment;
class TypePathSegmentGeneric;
-struct TypePathFunction;
+class TypePathFunction;
class TypePathSegmentFunction;
class TypePath;
-struct QualifiedPathType;
+class QualifiedPathType;
class QualifiedPathInExpression;
class QualifiedPathInType;
};
// A binding of an identifier to a type used in generic arguments in paths
-struct GenericArgsBinding
+class GenericArgsBinding
{
-private:
Identifier identifier;
std::unique_ptr<Type> type;
};
// A function as represented in a type path
-struct TypePathFunction
+class TypePathFunction
{
-private:
std::vector<std::unique_ptr<Type> > inputs;
std::unique_ptr<Type> return_type;
}
};
-struct QualifiedPathType
+class QualifiedPathType
{
-private:
std::unique_ptr<Type> type;
std::unique_ptr<TypePath> trait;
Location locus;