diff options
Diffstat (limited to 'include/clang/AST/ExprCXX.h')
-rw-r--r-- | include/clang/AST/ExprCXX.h | 634 |
1 files changed, 317 insertions, 317 deletions
diff --git a/include/clang/AST/ExprCXX.h b/include/clang/AST/ExprCXX.h index cb93b8b9e6..1c4cd9b3a6 100644 --- a/include/clang/AST/ExprCXX.h +++ b/include/clang/AST/ExprCXX.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the clang::Expr interface and subclasses for C++ expressions. +/// Defines the clang::Expr interface and subclasses for C++ expressions. // //===----------------------------------------------------------------------===// @@ -62,7 +62,7 @@ class TemplateParameterList; // C++ Expressions. //===--------------------------------------------------------------------===// -/// \brief A call to an overloaded operator written using operator +/// A call to an overloaded operator written using operator /// syntax. /// /// Represents a call to an overloaded operator written using operator @@ -76,7 +76,7 @@ class TemplateParameterList; /// function templates that were found by name lookup at template /// definition time. class CXXOperatorCallExpr : public CallExpr { - /// \brief The overloaded operator. + /// The overloaded operator. OverloadedOperatorKind Operator; SourceRange Range; @@ -101,7 +101,7 @@ public: explicit CXXOperatorCallExpr(ASTContext& C, EmptyShell Empty) : CallExpr(C, CXXOperatorCallExprClass, Empty) {} - /// \brief Returns the kind of overloaded operator that this + /// Returns the kind of overloaded operator that this /// expression refers to. OverloadedOperatorKind getOperator() const { return Operator; } @@ -115,10 +115,10 @@ public: } bool isAssignmentOp() const { return isAssignmentOp(getOperator()); } - /// \brief Is this written as an infix binary operator? + /// Is this written as an infix binary operator? bool isInfixBinaryOp() const; - /// \brief Returns the location of the operator symbol in the expression. + /// Returns the location of the operator symbol in the expression. /// /// When \c getOperator()==OO_Call, this is the location of the right /// parentheses; when \c getOperator()==OO_Subscript, this is the location @@ -170,15 +170,15 @@ public: CXXMemberCallExpr(ASTContext &C, EmptyShell Empty) : CallExpr(C, CXXMemberCallExprClass, Empty) {} - /// \brief Retrieves the implicit object argument for the member call. + /// Retrieves the implicit object argument for the member call. /// /// For example, in "x.f(5)", this returns the sub-expression "x". Expr *getImplicitObjectArgument() const; - /// \brief Retrieves the declaration of the called method. + /// Retrieves the declaration of the called method. CXXMethodDecl *getMethodDecl() const; - /// \brief Retrieves the CXXRecordDecl for the underlying type of + /// Retrieves the CXXRecordDecl for the underlying type of /// the implicit object argument. /// /// Note that this is may not be the same declaration as that of the class @@ -199,7 +199,7 @@ public: } }; -/// \brief Represents a call to a CUDA kernel function. +/// Represents a call to a CUDA kernel function. class CUDAKernelCallExpr : public CallExpr { private: enum { CONFIG, END_PREARG }; @@ -218,7 +218,7 @@ public: } CallExpr *getConfig() { return cast_or_null<CallExpr>(getPreArg(CONFIG)); } - /// \brief Sets the kernel configuration expression. + /// Sets the kernel configuration expression. /// /// Note that this method cannot be called if config has already been set to a /// non-null value. @@ -237,7 +237,7 @@ public: } }; -/// \brief Abstract class common to all of the C++ "named"/"keyword" casts. +/// Abstract class common to all of the C++ "named"/"keyword" casts. /// /// This abstract class is inherited by all of the classes /// representing "named" casts: CXXStaticCastExpr for \c static_cast, @@ -271,11 +271,11 @@ protected: public: const char *getCastName() const; - /// \brief Retrieve the location of the cast operator keyword, e.g., + /// Retrieve the location of the cast operator keyword, e.g., /// \c static_cast. SourceLocation getOperatorLoc() const { return Loc; } - /// \brief Retrieve the location of the closing parenthesis. + /// Retrieve the location of the closing parenthesis. SourceLocation getRParenLoc() const { return RParenLoc; } SourceLocation getLocStart() const LLVM_READONLY { return Loc; } @@ -295,7 +295,7 @@ public: } }; -/// \brief A C++ \c static_cast expression (C++ [expr.static.cast]). +/// A C++ \c static_cast expression (C++ [expr.static.cast]). /// /// This expression node represents a C++ static cast, e.g., /// \c static_cast<int>(1.0). @@ -330,7 +330,7 @@ public: } }; -/// \brief A C++ @c dynamic_cast expression (C++ [expr.dynamic.cast]). +/// A C++ @c dynamic_cast expression (C++ [expr.dynamic.cast]). /// /// This expression node represents a dynamic cast, e.g., /// \c dynamic_cast<Derived*>(BasePtr). Such a cast may perform a run-time @@ -369,7 +369,7 @@ public: } }; -/// \brief A C++ @c reinterpret_cast expression (C++ [expr.reinterpret.cast]). +/// A C++ @c reinterpret_cast expression (C++ [expr.reinterpret.cast]). /// /// This expression node represents a reinterpret cast, e.g., /// @c reinterpret_cast<int>(VoidPtr). @@ -410,7 +410,7 @@ public: } }; -/// \brief A C++ \c const_cast expression (C++ [expr.const.cast]). +/// A C++ \c const_cast expression (C++ [expr.const.cast]). /// /// This expression node represents a const cast, e.g., /// \c const_cast<char*>(PtrToConstChar). @@ -445,7 +445,7 @@ public: } }; -/// \brief A call to a literal operator (C++11 [over.literal]) +/// A call to a literal operator (C++11 [over.literal]) /// written as a user-defined literal (C++11 [lit.ext]). /// /// Represents a user-defined literal, e.g. "foo"_bar or 1.23_xyz. While this @@ -455,7 +455,7 @@ public: /// Since literal operators are never found by ADL and can only be declared at /// namespace scope, a user-defined literal is never dependent. class UserDefinedLiteral : public CallExpr { - /// \brief The location of a ud-suffix within the literal. + /// The location of a ud-suffix within the literal. SourceLocation UDSuffixLoc; public: @@ -492,11 +492,11 @@ public: LOK_Character }; - /// \brief Returns the kind of literal operator invocation + /// Returns the kind of literal operator invocation /// which this expression represents. LiteralOperatorKind getLiteralOperatorKind() const; - /// \brief If this is not a raw user-defined literal, get the + /// If this is not a raw user-defined literal, get the /// underlying cooked literal (representing the literal with the suffix /// removed). Expr *getCookedLiteral(); @@ -512,13 +512,13 @@ public: SourceLocation getLocEnd() const { return getRParenLoc(); } - /// \brief Returns the location of a ud-suffix in the expression. + /// Returns the location of a ud-suffix in the expression. /// /// For a string literal, there may be multiple identical suffixes. This /// returns the first. SourceLocation getUDSuffixLoc() const { return UDSuffixLoc; } - /// \brief Returns the ud-suffix specified for this literal. + /// Returns the ud-suffix specified for this literal. const IdentifierInfo *getUDSuffix() const; static bool classof(const Stmt *S) { @@ -526,7 +526,7 @@ public: } }; -/// \brief A boolean literal, per ([C++ lex.bool] Boolean literals). +/// A boolean literal, per ([C++ lex.bool] Boolean literals). class CXXBoolLiteralExpr : public Expr { bool Value; SourceLocation Loc; @@ -559,7 +559,7 @@ public: } }; -/// \brief The null pointer literal (C++11 [lex.nullptr]) +/// The null pointer literal (C++11 [lex.nullptr]) /// /// Introduced in C++11, the only literal of type \c nullptr_t is \c nullptr. class CXXNullPtrLiteralExpr : public Expr { @@ -589,7 +589,7 @@ public: } }; -/// \brief Implicit construction of a std::initializer_list<T> object from an +/// Implicit construction of a std::initializer_list<T> object from an /// array temporary within list-initialization (C++11 [dcl.init.list]p5). class CXXStdInitializerListExpr : public Expr { Stmt *SubExpr = nullptr; @@ -677,11 +677,11 @@ public: bool isTypeOperand() const { return Operand.is<TypeSourceInfo *>(); } - /// \brief Retrieves the type operand of this typeid() expression after + /// Retrieves the type operand of this typeid() expression after /// various required adjustments (removing reference types, cv-qualifiers). QualType getTypeOperand(ASTContext &Context) const; - /// \brief Retrieve source information for the type operand. + /// Retrieve source information for the type operand. TypeSourceInfo *getTypeOperandSourceInfo() const { assert(isTypeOperand() && "Cannot call getTypeOperand for typeid(expr)"); return Operand.get<TypeSourceInfo *>(); @@ -720,7 +720,7 @@ public: } }; -/// \brief A member reference to an MSPropertyDecl. +/// A member reference to an MSPropertyDecl. /// /// This expression always has pseudo-object type, and therefore it is /// typically not encountered in a fully-typechecked expression except @@ -816,7 +816,7 @@ public: SubExprs[IDX_EXPR] = Idx; } - /// \brief Create an empty array subscript expression. + /// Create an empty array subscript expression. explicit MSPropertySubscriptExpr(EmptyShell Shell) : Expr(MSPropertySubscriptExprClass, Shell) {} @@ -884,11 +884,11 @@ public: bool isTypeOperand() const { return Operand.is<TypeSourceInfo *>(); } - /// \brief Retrieves the type operand of this __uuidof() expression after + /// Retrieves the type operand of this __uuidof() expression after /// various required adjustments (removing reference types, cv-qualifiers). QualType getTypeOperand(ASTContext &Context) const; - /// \brief Retrieve source information for the type operand. + /// Retrieve source information for the type operand. TypeSourceInfo *getTypeOperandSourceInfo() const { assert(isTypeOperand() && "Cannot call getTypeOperand for __uuidof(expr)"); return Operand.get<TypeSourceInfo *>(); @@ -930,7 +930,7 @@ public: } }; -/// \brief Represents the \c this expression in C++. +/// Represents the \c this expression in C++. /// /// This is a pointer to the object on which the current member function is /// executing (C++ [expr.prim]p3). Example: @@ -977,7 +977,7 @@ public: } }; -/// \brief A C++ throw-expression (C++ [except.throw]). +/// A C++ throw-expression (C++ [except.throw]). /// /// This handles 'throw' (for re-throwing the current exception) and /// 'throw' assignment-expression. When assignment-expression isn't @@ -988,7 +988,7 @@ class CXXThrowExpr : public Expr { Stmt *Op; SourceLocation ThrowLoc; - /// \brief Whether the thrown variable (if any) is in scope. + /// Whether the thrown variable (if any) is in scope. unsigned IsThrownVariableInScope : 1; public: @@ -1009,7 +1009,7 @@ public: SourceLocation getThrowLoc() const { return ThrowLoc; } - /// \brief Determines whether the variable thrown by this expression (if any!) + /// Determines whether the variable thrown by this expression (if any!) /// is within the innermost try block. /// /// This information is required to determine whether the NRVO can apply to @@ -1034,16 +1034,16 @@ public: } }; -/// \brief A default argument (C++ [dcl.fct.default]). +/// A default argument (C++ [dcl.fct.default]). /// /// This wraps up a function call argument that was created from the /// corresponding parameter's default argument, when the call did not /// explicitly supply arguments for all of the parameters. class CXXDefaultArgExpr final : public Expr { - /// \brief The parameter whose default is being used. + /// The parameter whose default is being used. ParmVarDecl *Param; - /// \brief The location where the default argument expression was used. + /// The location where the default argument expression was used. SourceLocation Loc; CXXDefaultArgExpr(StmtClass SC, SourceLocation Loc, ParmVarDecl *param) @@ -1081,7 +1081,7 @@ public: return getParam()->getDefaultArg(); } - /// \brief Retrieve the location where this default argument was actually + /// Retrieve the location where this default argument was actually /// used. SourceLocation getUsedLocation() const { return Loc; } @@ -1102,7 +1102,7 @@ public: } }; -/// \brief A use of a default initializer in a constructor or in aggregate +/// A use of a default initializer in a constructor or in aggregate /// initialization. /// /// This wraps a use of a C++ default initializer (technically, @@ -1111,10 +1111,10 @@ public: /// (C++11 [class.base.init]p8) or in aggregate initialization /// (C++1y [dcl.init.aggr]p7). class CXXDefaultInitExpr : public Expr { - /// \brief The field whose default is being used. + /// The field whose default is being used. FieldDecl *Field; - /// \brief The location where the default initializer expression was used. + /// The location where the default initializer expression was used. SourceLocation Loc; CXXDefaultInitExpr(const ASTContext &C, SourceLocation Loc, FieldDecl *Field, @@ -1133,11 +1133,11 @@ public: return new (C) CXXDefaultInitExpr(C, Loc, Field, Field->getType()); } - /// \brief Get the field whose initializer will be used. + /// Get the field whose initializer will be used. FieldDecl *getField() { return Field; } const FieldDecl *getField() const { return Field; } - /// \brief Get the initialization expression that will be used. + /// Get the initialization expression that will be used. const Expr *getExpr() const { assert(Field->getInClassInitializer() && "initializer hasn't been parsed"); return Field->getInClassInitializer(); @@ -1160,9 +1160,9 @@ public: } }; -/// \brief Represents a C++ temporary. +/// Represents a C++ temporary. class CXXTemporary { - /// \brief The destructor that needs to be called. + /// The destructor that needs to be called. const CXXDestructorDecl *Destructor; explicit CXXTemporary(const CXXDestructorDecl *destructor) @@ -1179,7 +1179,7 @@ public: } }; -/// \brief Represents binding an expression to a temporary. +/// Represents binding an expression to a temporary. /// /// This ensures the destructor is called for the temporary. It should only be /// needed for non-POD, non-trivially destructable class types. For example: @@ -1235,7 +1235,7 @@ public: child_range children() { return child_range(&SubExpr, &SubExpr + 1); } }; -/// \brief Represents a call to a C++ constructor. +/// Represents a call to a C++ constructor. class CXXConstructExpr : public Expr { public: enum ConstructionKind { @@ -1273,7 +1273,7 @@ protected: ConstructionKind ConstructKind, SourceRange ParenOrBraceRange); - /// \brief Construct an empty C++ construction expression. + /// Construct an empty C++ construction expression. CXXConstructExpr(StmtClass SC, EmptyShell Empty) : Expr(SC, Empty), NumArgs(0), Elidable(false), HadMultipleCandidates(false), ListInitialization(false), @@ -1282,7 +1282,7 @@ protected: public: friend class ASTStmtReader; - /// \brief Construct an empty C++ construction expression. + /// Construct an empty C++ construction expression. explicit CXXConstructExpr(EmptyShell Empty) : CXXConstructExpr(CXXConstructExprClass, Empty) {} @@ -1298,40 +1298,40 @@ public: ConstructionKind ConstructKind, SourceRange ParenOrBraceRange); - /// \brief Get the constructor that this expression will (ultimately) call. + /// Get the constructor that this expression will (ultimately) call. CXXConstructorDecl *getConstructor() const { return Constructor; } SourceLocation getLocation() const { return Loc; } void setLocation(SourceLocation Loc) { this->Loc = Loc; } - /// \brief Whether this construction is elidable. + /// Whether this construction is elidable. bool isElidable() const { return Elidable; } void setElidable(bool E) { Elidable = E; } - /// \brief Whether the referred constructor was resolved from + /// Whether the referred constructor was resolved from /// an overloaded set having size greater than 1. bool hadMultipleCandidates() const { return HadMultipleCandidates; } void setHadMultipleCandidates(bool V) { HadMultipleCandidates = V; } - /// \brief Whether this constructor call was written as list-initialization. + /// Whether this constructor call was written as list-initialization. bool isListInitialization() const { return ListInitialization; } void setListInitialization(bool V) { ListInitialization = V; } - /// \brief Whether this constructor call was written as list-initialization, + /// Whether this constructor call was written as list-initialization, /// but was interpreted as forming a std::initializer_list<T> from the list /// and passing that as a single constructor argument. /// See C++11 [over.match.list]p1 bullet 1. bool isStdInitListInitialization() const { return StdInitListInitialization; } void setStdInitListInitialization(bool V) { StdInitListInitialization = V; } - /// \brief Whether this construction first requires + /// Whether this construction first requires /// zero-initialization before the initializer is called. bool requiresZeroInitialization() const { return ZeroInitialization; } void setRequiresZeroInitialization(bool ZeroInit) { ZeroInitialization = ZeroInit; } - /// \brief Determine whether this constructor is actually constructing + /// Determine whether this constructor is actually constructing /// a base class (rather than a complete object). ConstructionKind getConstructionKind() const { return (ConstructionKind)ConstructKind; @@ -1361,7 +1361,7 @@ public: } unsigned getNumArgs() const { return NumArgs; } - /// \brief Return the specified argument. + /// Return the specified argument. Expr *getArg(unsigned Arg) { assert(Arg < NumArgs && "Arg access out of range!"); return cast<Expr>(Args[Arg]); @@ -1371,7 +1371,7 @@ public: return cast<Expr>(Args[Arg]); } - /// \brief Set the specified argument. + /// Set the specified argument. void setArg(unsigned Arg, Expr *ArgExpr) { assert(Arg < NumArgs && "Arg access out of range!"); Args[Arg] = ArgExpr; @@ -1393,7 +1393,7 @@ public: } }; -/// \brief Represents a call to an inherited base class constructor from an +/// Represents a call to an inherited base class constructor from an /// inheriting constructor. This call implicitly forwards the arguments from /// the enclosing context (an inheriting constructor) to the specified inherited /// base class constructor. @@ -1414,7 +1414,7 @@ private: public: friend class ASTStmtReader; - /// \brief Construct a C++ inheriting construction expression. + /// Construct a C++ inheriting construction expression. CXXInheritedCtorInitExpr(SourceLocation Loc, QualType T, CXXConstructorDecl *Ctor, bool ConstructsVirtualBase, bool InheritedFromVirtualBase) @@ -1426,15 +1426,15 @@ public: assert(!T->isDependentType()); } - /// \brief Construct an empty C++ inheriting construction expression. + /// Construct an empty C++ inheriting construction expression. explicit CXXInheritedCtorInitExpr(EmptyShell Empty) : Expr(CXXInheritedCtorInitExprClass, Empty), ConstructsVirtualBase(false), InheritedFromVirtualBase(false) {} - /// \brief Get the constructor that this expression will call. + /// Get the constructor that this expression will call. CXXConstructorDecl *getConstructor() const { return Constructor; } - /// \brief Determine whether this constructor is actually constructing + /// Determine whether this constructor is actually constructing /// a base class (rather than a complete object). bool constructsVBase() const { return ConstructsVirtualBase; } CXXConstructExpr::ConstructionKind getConstructionKind() const { @@ -1442,7 +1442,7 @@ public: : CXXConstructExpr::CK_NonVirtualBase; } - /// \brief Determine whether the inherited constructor is inherited from a + /// Determine whether the inherited constructor is inherited from a /// virtual base of the object we construct. If so, we are not responsible /// for calling the inherited constructor (the complete object constructor /// does that), and so we don't need to pass any arguments. @@ -1461,7 +1461,7 @@ public: } }; -/// \brief Represents an explicit C++ type conversion that uses "functional" +/// Represents an explicit C++ type conversion that uses "functional" /// notation (C++ [expr.type.conv]). /// /// Example: @@ -1515,7 +1515,7 @@ public: } }; -/// @brief Represents a C++ functional cast expression that builds a +/// Represents a C++ functional cast expression that builds a /// temporary object. /// /// This expression type represents a C++ "functional" cast @@ -1559,7 +1559,7 @@ public: } }; -/// \brief A C++ lambda expression, which produces a function object +/// A C++ lambda expression, which produces a function object /// (of unspecified type) that can be invoked later. /// /// Example: @@ -1582,27 +1582,27 @@ public: /// and which can never occur implicitly. class LambdaExpr final : public Expr, private llvm::TrailingObjects<LambdaExpr, Stmt *> { - /// \brief The source range that covers the lambda introducer ([...]). + /// The source range that covers the lambda introducer ([...]). SourceRange IntroducerRange; - /// \brief The source location of this lambda's capture-default ('=' or '&'). + /// The source location of this lambda's capture-default ('=' or '&'). SourceLocation CaptureDefaultLoc; - /// \brief The number of captures. + /// The number of captures. unsigned NumCaptures : 16; - /// \brief The default capture kind, which is a value of type + /// The default capture kind, which is a value of type /// LambdaCaptureDefault. unsigned CaptureDefault : 2; - /// \brief Whether this lambda had an explicit parameter list vs. an + /// Whether this lambda had an explicit parameter list vs. an /// implicit (and empty) parameter list. unsigned ExplicitParams : 1; - /// \brief Whether this lambda had the result type explicitly specified. + /// Whether this lambda had the result type explicitly specified. unsigned ExplicitResultType : 1; - /// \brief The location of the closing brace ('}') that completes + /// The location of the closing brace ('}') that completes /// the lambda. /// /// The location of the brace is also available by looking up the @@ -1612,7 +1612,7 @@ class LambdaExpr final : public Expr, /// module file just to determine the source range. SourceLocation ClosingBrace; - /// \brief Construct a lambda expression. + /// Construct a lambda expression. LambdaExpr(QualType T, SourceRange IntroducerRange, LambdaCaptureDefault CaptureDefault, SourceLocation CaptureDefaultLoc, ArrayRef<LambdaCapture> Captures, @@ -1620,7 +1620,7 @@ class LambdaExpr final : public Expr, ArrayRef<Expr *> CaptureInits, SourceLocation ClosingBrace, bool ContainsUnexpandedParameterPack); - /// \brief Construct an empty lambda expression. + /// Construct an empty lambda expression. LambdaExpr(EmptyShell Empty, unsigned NumCaptures) : Expr(LambdaExprClass, Empty), NumCaptures(NumCaptures), CaptureDefault(LCD_None), ExplicitParams(false), @@ -1637,7 +1637,7 @@ public: friend class ASTStmtWriter; friend TrailingObjects; - /// \brief Construct a new lambda expression. + /// Construct a new lambda expression. static LambdaExpr * Create(const ASTContext &C, CXXRecordDecl *Class, SourceRange IntroducerRange, LambdaCaptureDefault CaptureDefault, SourceLocation CaptureDefaultLoc, @@ -1645,143 +1645,143 @@ public: bool ExplicitResultType, ArrayRef<Expr *> CaptureInits, SourceLocation ClosingBrace, bool ContainsUnexpandedParameterPack); - /// \brief Construct a new lambda expression that will be deserialized from + /// Construct a new lambda expression that will be deserialized from /// an external source. static LambdaExpr *CreateDeserialized(const ASTContext &C, unsigned NumCaptures); - /// \brief Determine the default capture kind for this lambda. + /// Determine the default capture kind for this lambda. LambdaCaptureDefault getCaptureDefault() const { return static_cast<LambdaCaptureDefault>(CaptureDefault); } - /// \brief Retrieve the location of this lambda's capture-default, if any. + /// Retrieve the location of this lambda's capture-default, if any. SourceLocation getCaptureDefaultLoc() const { return CaptureDefaultLoc; } - /// \brief Determine whether one of this lambda's captures is an init-capture. + /// Determine whether one of this lambda's captures is an init-capture. bool isInitCapture(const LambdaCapture *Capture) const; - /// \brief An iterator that walks over the captures of the lambda, + /// An iterator that walks over the captures of the lambda, /// both implicit and explicit. using capture_iterator = const LambdaCapture *; - /// \brief An iterator over a range of lambda captures. + /// An iterator over a range of lambda captures. using capture_range = llvm::iterator_range<capture_iterator>; - /// \brief Retrieve this lambda's captures. + /// Retrieve this lambda's captures. capture_range captures() const; - /// \brief Retrieve an iterator pointing to the first lambda capture. + /// Retrieve an iterator pointing to the first lambda capture. capture_iterator capture_begin() const; - /// \brief Retrieve an iterator pointing past the end of the + /// Retrieve an iterator pointing past the end of the /// sequence of lambda captures. capture_iterator capture_end() const; - /// \brief Determine the number of captures in this lambda. + /// Determine the number of captures in this lambda. unsigned capture_size() const { return NumCaptures; } - /// \brief Retrieve this lambda's explicit captures. + /// Retrieve this lambda's explicit captures. capture_range explicit_captures() const; - /// \brief Retrieve an iterator pointing to the first explicit + /// Retrieve an iterator pointing to the first explicit /// lambda capture. capture_iterator explicit_capture_begin() const; - /// \brief Retrieve an iterator pointing past the end of the sequence of + /// Retrieve an iterator pointing past the end of the sequence of /// explicit lambda captures. capture_iterator explicit_capture_end() const; - /// \brief Retrieve this lambda's implicit captures. + /// Retrieve this lambda's implicit captures. capture_range implicit_captures() const; - /// \brief Retrieve an iterator pointing to the first implicit + /// Retrieve an iterator pointing to the first implicit /// lambda capture. capture_iterator implicit_capture_begin() const; - /// \brief Retrieve an iterator pointing past the end of the sequence of + /// Retrieve an iterator pointing past the end of the sequence of /// implicit lambda captures. capture_iterator implicit_capture_end() const; - /// \brief Iterator that walks over the capture initialization + /// Iterator that walks over the capture initialization /// arguments. using capture_init_iterator = Expr **; - /// \brief Const iterator that walks over the capture initialization + /// Const iterator that walks over the capture initialization /// arguments. using const_capture_init_iterator = Expr *const *; - /// \brief Retrieve the initialization expressions for this lambda's captures. + /// Retrieve the initialization expressions for this lambda's captures. llvm::iterator_range<capture_init_iterator> capture_inits() { return llvm::make_range(capture_init_begin(), capture_init_end()); } - /// \brief Retrieve the initialization expressions for this lambda's captures. + /// Retrieve the initialization expressions for this lambda's captures. llvm::iterator_range<const_capture_init_iterator> capture_inits() const { return llvm::make_range(capture_init_begin(), capture_init_end()); } - /// \brief Retrieve the first initialization argument for this + /// Retrieve the first initialization argument for this /// lambda expression (which initializes the first capture field). capture_init_iterator capture_init_begin() { return reinterpret_cast<Expr **>(getStoredStmts()); } - /// \brief Retrieve the first initialization argument for this + /// Retrieve the first initialization argument for this /// lambda expression (which initializes the first capture field). const_capture_init_iterator capture_init_begin() const { return reinterpret_cast<Expr *const *>(getStoredStmts()); } - /// \brief Retrieve the iterator pointing one past the last + /// Retrieve the iterator pointing one past the last /// initialization argument for this lambda expression. capture_init_iterator capture_init_end() { return capture_init_begin() + NumCaptures; } - /// \brief Retrieve the iterator pointing one past the last + /// Retrieve the iterator pointing one past the last /// initialization argument for this lambda expression. const_capture_init_iterator capture_init_end() const { return capture_init_begin() + NumCaptures; } - /// \brief Retrieve the source range covering the lambda introducer, + /// Retrieve the source range covering the lambda introducer, /// which contains the explicit capture list surrounded by square /// brackets ([...]). SourceRange getIntroducerRange() const { return IntroducerRange; } - /// \brief Retrieve the class that corresponds to the lambda. + /// Retrieve the class that corresponds to the lambda. /// /// This is the "closure type" (C++1y [expr.prim.lambda]), and stores the /// captures in its fields and provides the various operations permitted /// on a lambda (copying, calling). CXXRecordDecl *getLambdaClass() const; - /// \brief Retrieve the function call operator associated with this + /// Retrieve the function call operator associated with this /// lambda expression. CXXMethodDecl *getCallOperator() const; - /// \brief If this is a generic lambda expression, retrieve the template + /// If this is a generic lambda expression, retrieve the template /// parameter list associated with it, or else return null. TemplateParameterList *getTemplateParameterList() const; - /// \brief Whether this is a generic lambda. + /// Whether this is a generic lambda. bool isGenericLambda() const { return getTemplateParameterList(); } - /// \brief Retrieve the body of the lambda. + /// Retrieve the body of the lambda. CompoundStmt *getBody() const; - /// \brief Determine whether the lambda is mutable, meaning that any + /// Determine whether the lambda is mutable, meaning that any /// captures values can be modified. bool isMutable() const; - /// \brief Determine whether this lambda has an explicit parameter + /// Determine whether this lambda has an explicit parameter /// list vs. an implicit (empty) parameter list. bool hasExplicitParameters() const { return ExplicitParams; } - /// \brief Whether this lambda had its result type explicitly specified. + /// Whether this lambda had its result type explicitly specified. bool hasExplicitResultType() const { return ExplicitResultType; } static bool classof(const Stmt *T) { @@ -1809,7 +1809,7 @@ class CXXScalarValueInitExpr : public Expr { TypeSourceInfo *TypeInfo; public: - /// \brief Create an explicitly-written scalar-value initialization + /// Create an explicitly-written scalar-value initialization /// expression. CXXScalarValueInitExpr(QualType Type, TypeSourceInfo *TypeInfo, SourceLocation rParenLoc) @@ -1840,7 +1840,7 @@ public: } }; -/// \brief Represents a new-expression for memory allocation and constructor +/// Represents a new-expression for memory allocation and constructor /// calls, e.g: "new CXXNewExpr(foo)". class CXXNewExpr : public Expr { friend class ASTStmtReader; @@ -1850,24 +1850,24 @@ class CXXNewExpr : public Expr { /// expression, and any number of optional placement arguments, in that order. Stmt **SubExprs = nullptr; - /// \brief Points to the allocation function used. + /// Points to the allocation function used. FunctionDecl *OperatorNew; - /// \brief Points to the deallocation function used in case of error. May be + /// Points to the deallocation function used in case of error. May be /// null. FunctionDecl *OperatorDelete; - /// \brief The allocated type-source information, as written in the source. + /// The allocated type-source information, as written in the source. TypeSourceInfo *AllocatedTypeInfo; - /// \brief If the allocated type was expressed as a parenthesized type-id, + /// If the allocated type was expressed as a parenthesized type-id, /// the source range covering the parenthesized type-id. SourceRange TypeIdParens; - /// \brief Range of the entire new expression. + /// Range of the entire new expression. SourceRange Range; - /// \brief Source-range of a paren-delimited initializer. + /// Source-range of a paren-delimited initializer. SourceRange DirectInitRange; /// Was the usage ::new, i.e. is the global new to be used? @@ -1925,7 +1925,7 @@ public: return AllocatedTypeInfo; } - /// \brief True if the allocation result needs to be null-checked. + /// True if the allocation result needs to be null-checked. /// /// C++11 [expr.new]p13: /// If the allocation function returns null, initialization shall @@ -1976,17 +1976,17 @@ public: bool isGlobalNew() const { return GlobalNew; } - /// \brief Whether this new-expression has any initializer at all. + /// Whether this new-expression has any initializer at all. bool hasInitializer() const { return StoredInitializationStyle > 0; } - /// \brief The kind of initializer this new-expression has. + /// The kind of initializer this new-expression has. InitializationStyle getInitializationStyle() const { if (StoredInitializationStyle == 0) return NoInit; return static_cast<InitializationStyle>(StoredInitializationStyle-1); } - /// \brief The initializer of this new-expression. + /// The initializer of this new-expression. Expr *getInitializer() { return hasInitializer() ? cast<Expr>(SubExprs[Array]) : nullptr; } @@ -1994,7 +1994,7 @@ public: return hasInitializer() ? cast<Expr>(SubExprs[Array]) : nullptr; } - /// \brief Returns the CXXConstructExpr from this new-expression, or null. + /// Returns the CXXConstructExpr from this new-expression, or null. const CXXConstructExpr *getConstructExpr() const { return dyn_cast_or_null<CXXConstructExpr>(getInitializer()); } @@ -2069,7 +2069,7 @@ public: } }; -/// \brief Represents a \c delete expression for memory deallocation and +/// Represents a \c delete expression for memory deallocation and /// destructor calls, e.g. "delete[] pArray". class CXXDeleteExpr : public Expr { /// Points to the operator delete overload that is used. Could be a member. @@ -2128,7 +2128,7 @@ public: Expr *getArgument() { return cast<Expr>(Argument); } const Expr *getArgument() const { return cast<Expr>(Argument); } - /// \brief Retrieve the type being destroyed. + /// Retrieve the type being destroyed. /// /// If the type being destroyed is a dependent type which may or may not /// be a pointer, return an invalid type. @@ -2145,13 +2145,13 @@ public: child_range children() { return child_range(&Argument, &Argument+1); } }; -/// \brief Stores the type being destroyed by a pseudo-destructor expression. +/// Stores the type being destroyed by a pseudo-destructor expression. class PseudoDestructorTypeStorage { - /// \brief Either the type source information or the name of the type, if + /// Either the type source information or the name of the type, if /// it couldn't be resolved due to type-dependence. llvm::PointerUnion<TypeSourceInfo *, IdentifierInfo *> Type; - /// \brief The starting source location of the pseudo-destructor type. + /// The starting source location of the pseudo-destructor type. SourceLocation Location; public: @@ -2173,7 +2173,7 @@ public: SourceLocation getLocation() const { return Location; } }; -/// \brief Represents a C++ pseudo-destructor (C++ [expr.pseudo]). +/// Represents a C++ pseudo-destructor (C++ [expr.pseudo]). /// /// A pseudo-destructor is an expression that looks like a member access to a /// destructor of a scalar type, except that scalar types don't have @@ -2200,31 +2200,31 @@ public: class CXXPseudoDestructorExpr : public Expr { friend class ASTStmtReader; - /// \brief The base expression (that is being destroyed). + /// The base expression (that is being destroyed). Stmt *Base = nullptr; - /// \brief Whether the operator was an arrow ('->'); otherwise, it was a + /// Whether the operator was an arrow ('->'); otherwise, it was a /// period ('.'). bool IsArrow : 1; - /// \brief The location of the '.' or '->' operator. + /// The location of the '.' or '->' operator. SourceLocation OperatorLoc; - /// \brief The nested-name-specifier that follows the operator, if present. + /// The nested-name-specifier that follows the operator, if present. NestedNameSpecifierLoc QualifierLoc; - /// \brief The type that precedes the '::' in a qualified pseudo-destructor + /// The type that precedes the '::' in a qualified pseudo-destructor /// expression. TypeSourceInfo *ScopeType = nullptr; - /// \brief The location of the '::' in a qualified pseudo-destructor + /// The location of the '::' in a qualified pseudo-destructor /// expression. SourceLocation ColonColonLoc; - /// \brief The location of the '~'. + /// The location of the '~'. SourceLocation TildeLoc; - /// \brief The type being destroyed, or its name if we were unable to + /// The type being destroyed, or its name if we were unable to /// resolve the name. PseudoDestructorTypeStorage DestroyedType; @@ -2242,30 +2242,30 @@ public: Expr *getBase() const { return cast<Expr>(Base); } - /// \brief Determines whether this member expression actually had + /// Determines whether this member expression actually had /// a C++ nested-name-specifier prior to the name of the member, e.g., /// x->Base::foo. bool hasQualifier() const { return QualifierLoc.hasQualifier(); } - /// \brief Retrieves the nested-name-specifier that qualifies the type name, + /// Retrieves the nested-name-specifier that qualifies the type name, /// with source-location information. NestedNameSpecifierLoc getQualifierLoc() const { return QualifierLoc; } - /// \brief If the member name was qualified, retrieves the + /// If the member name was qualified, retrieves the /// nested-name-specifier that precedes the member name. Otherwise, returns /// null. NestedNameSpecifier *getQualifier() const { return QualifierLoc.getNestedNameSpecifier(); } - /// \brief Determine whether this pseudo-destructor expression was written + /// Determine whether this pseudo-destructor expression was written /// using an '->' (otherwise, it used a '.'). bool isArrow() const { return IsArrow; } - /// \brief Retrieve the location of the '.' or '->' operator. + /// Retrieve the location of the '.' or '->' operator. SourceLocation getOperatorLoc() const { return OperatorLoc; } - /// \brief Retrieve the scope type in a qualified pseudo-destructor + /// Retrieve the scope type in a qualified pseudo-destructor /// expression. /// /// Pseudo-destructor expressions can have extra qualification within them @@ -2276,14 +2276,14 @@ public: /// destructor expression. TypeSourceInfo *getScopeTypeInfo() const { return ScopeType; } - /// \brief Retrieve the location of the '::' in a qualified pseudo-destructor + /// Retrieve the location of the '::' in a qualified pseudo-destructor /// expression. SourceLocation getColonColonLoc() const { return ColonColonLoc; } - /// \brief Retrieve the location of the '~'. + /// Retrieve the location of the '~'. SourceLocation getTildeLoc() const { return TildeLoc; } - /// \brief Retrieve the source location information for the type + /// Retrieve the source location information for the type /// being destroyed. /// /// This type-source information is available for non-dependent @@ -2294,28 +2294,28 @@ public: return DestroyedType.getTypeSourceInfo(); } - /// \brief In a dependent pseudo-destructor expression for which we do not + /// In a dependent pseudo-destructor expression for which we do not /// have full type information on the destroyed type, provides the name /// of the destroyed type. IdentifierInfo *getDestroyedTypeIdentifier() const { return DestroyedType.getIdentifier(); } - /// \brief Retrieve the type being destroyed. + /// Retrieve the type being destroyed. QualType getDestroyedType() const; - /// \brief Retrieve the starting location of the type being destroyed. + /// Retrieve the starting location of the type being destroyed. SourceLocation getDestroyedTypeLoc() const { return DestroyedType.getLocation(); } - /// \brief Set the name of destroyed type for a dependent pseudo-destructor + /// Set the name of destroyed type for a dependent pseudo-destructor /// expression. void setDestroyedType(IdentifierInfo *II, SourceLocation Loc) { DestroyedType = PseudoDestructorTypeStorage(II, Loc); } - /// \brief Set the destroyed type. + /// Set the destroyed type. void setDestroyedType(TypeSourceInfo *Info) { DestroyedType = PseudoDestructorTypeStorage(Info); } @@ -2331,7 +2331,7 @@ public: child_range children() { return child_range(&Base, &Base + 1); } }; -/// \brief A type trait used in the implementation of various C++11 and +/// A type trait used in the implementation of various C++11 and /// Library TR1 trait templates. /// /// \code @@ -2342,10 +2342,10 @@ public: class TypeTraitExpr final : public Expr, private llvm::TrailingObjects<TypeTraitExpr, TypeSourceInfo *> { - /// \brief The location of the type trait keyword. + /// The location of the type trait keyword. SourceLocation Loc; - /// \brief The location of the closing parenthesis. + /// The location of the closing parenthesis. SourceLocation RParenLoc; // Note: The TypeSourceInfos for the arguments are allocated after the @@ -2367,7 +2367,7 @@ public: friend class ASTStmtWriter; friend TrailingObjects; - /// \brief Create a new type trait expression. + /// Create a new type trait expression. static TypeTraitExpr *Create(const ASTContext &C, QualType T, SourceLocation Loc, TypeTrait Kind, ArrayRef<TypeSourceInfo *> Args, @@ -2377,7 +2377,7 @@ public: static TypeTraitExpr *CreateDeserialized(const ASTContext &C, unsigned NumArgs); - /// \brief Determine which type trait this expression uses. + /// Determine which type trait this expression uses. TypeTrait getTrait() const { return static_cast<TypeTrait>(TypeTraitExprBits.Kind); } @@ -2387,16 +2387,16 @@ public: return TypeTraitExprBits.Value; } - /// \brief Determine the number of arguments to this type trait. + /// Determine the number of arguments to this type trait. unsigned getNumArgs() const { return TypeTraitExprBits.NumArgs; } - /// \brief Retrieve the Ith argument. + /// Retrieve the Ith argument. TypeSourceInfo *getArg(unsigned I) const { assert(I < getNumArgs() && "Argument out-of-range"); return getArgs()[I]; } - /// \brief Retrieve the argument types. + /// Retrieve the argument types. ArrayRef<TypeSourceInfo *> getArgs() const { return llvm::makeArrayRef(getTrailingObjects<TypeSourceInfo *>(), getNumArgs()); @@ -2415,7 +2415,7 @@ public: } }; -/// \brief An Embarcadero array type trait, as used in the implementation of +/// An Embarcadero array type trait, as used in the implementation of /// __array_rank and __array_extent. /// /// Example: @@ -2424,22 +2424,22 @@ public: /// __array_extent(int, 1) == 20 /// \endcode class ArrayTypeTraitExpr : public Expr { - /// \brief The trait. An ArrayTypeTrait enum in MSVC compat unsigned. + /// The trait. An ArrayTypeTrait enum in MSVC compat unsigned. unsigned ATT : 2; - /// \brief The value of the type trait. Unspecified if dependent. + /// The value of the type trait. Unspecified if dependent. uint64_t Value = 0; - /// \brief The array dimension being queried, or -1 if not used. + /// The array dimension being queried, or -1 if not used. Expr *Dimension; - /// \brief The location of the type trait keyword. + /// The location of the type trait keyword. SourceLocation Loc; - /// \brief The location of the closing paren. + /// The location of the closing paren. SourceLocation RParen; - /// \brief The type being queried. + /// The type being queried. TypeSourceInfo *QueriedType = nullptr; virtual void anchor(); @@ -2486,7 +2486,7 @@ public: } }; -/// \brief An expression trait intrinsic. +/// An expression trait intrinsic. /// /// Example: /// \code @@ -2494,19 +2494,19 @@ public: /// __is_lvalue_expr(1) == false /// \endcode class ExpressionTraitExpr : public Expr { - /// \brief The trait. A ExpressionTrait enum in MSVC compatible unsigned. + /// The trait. A ExpressionTrait enum in MSVC compatible unsigned. unsigned ET : 31; - /// \brief The value of the type trait. Unspecified if dependent. + /// The value of the type trait. Unspecified if dependent. unsigned Value : 1; - /// \brief The location of the type trait keyword. + /// The location of the type trait keyword. SourceLocation Loc; - /// \brief The location of the closing paren. + /// The location of the closing paren. SourceLocation RParen; - /// \brief The expression being queried. + /// The expression being queried. Expr* QueriedExpression = nullptr; public: @@ -2546,13 +2546,13 @@ public: } }; -/// \brief A reference to an overloaded function set, either an +/// A reference to an overloaded function set, either an /// \c UnresolvedLookupExpr or an \c UnresolvedMemberExpr. class OverloadExpr : public Expr { - /// \brief The common name of these declarations. + /// The common name of these declarations. DeclarationNameInfo NameInfo; - /// \brief The nested-name-specifier that qualifies the name, if any. + /// The nested-name-specifier that qualifies the name, if any. NestedNameSpecifierLoc QualifierLoc; /// The results. These are undesugared, which is to say, they may @@ -2564,7 +2564,7 @@ class OverloadExpr : public Expr { unsigned NumResults = 0; protected: - /// \brief Whether the name includes info for explicit template + /// Whether the name includes info for explicit template /// keyword and arguments. bool HasTemplateKWAndArgsInfo = false; @@ -2580,11 +2580,11 @@ protected: OverloadExpr(StmtClass K, EmptyShell Empty) : Expr(K, Empty) {} - /// \brief Return the optional template keyword and arguments info. + /// Return the optional template keyword and arguments info. ASTTemplateKWAndArgsInfo * getTrailingASTTemplateKWAndArgsInfo(); // defined far below. - /// \brief Return the optional template keyword and arguments info. + /// Return the optional template keyword and arguments info. const ASTTemplateKWAndArgsInfo *getTrailingASTTemplateKWAndArgsInfo() const { return const_cast<OverloadExpr *>(this) ->getTrailingASTTemplateKWAndArgsInfo(); @@ -2607,7 +2607,7 @@ public: bool HasFormOfMemberPointer; }; - /// \brief Finds the overloaded expression in the given expression \p E of + /// Finds the overloaded expression in the given expression \p E of /// OverloadTy. /// /// \return the expression (which must be there) and true if it has @@ -2635,7 +2635,7 @@ public: return Result; } - /// \brief Gets the naming class of this lookup, if any. + /// Gets the naming class of this lookup, if any. CXXRecordDecl *getNamingClass() const; using decls_iterator = UnresolvedSetImpl::iterator; @@ -2648,52 +2648,52 @@ public: return llvm::make_range(decls_begin(), decls_end()); } - /// \brief Gets the number of declarations in the unresolved set. + /// Gets the number of declarations in the unresolved set. unsigned getNumDecls() const { return NumResults; } - /// \brief Gets the full name info. + /// Gets the full name info. const DeclarationNameInfo &getNameInfo() const { return NameInfo; } - /// \brief Gets the name looked up. + /// Gets the name looked up. DeclarationName getName() const { return NameInfo.getName(); } - /// \brief Gets the location of the name. + /// Gets the location of the name. SourceLocation getNameLoc() const { return NameInfo.getLoc(); } - /// \brief Fetches the nested-name qualifier, if one was given. + /// Fetches the nested-name qualifier, if one was given. NestedNameSpecifier *getQualifier() const { return QualifierLoc.getNestedNameSpecifier(); } - /// \brief Fetches the nested-name qualifier with source-location + /// Fetches the nested-name qualifier with source-location /// information, if one was given. NestedNameSpecifierLoc getQualifierLoc() const { return QualifierLoc; } - /// \brief Retrieve the location of the template keyword preceding + /// Retrieve the location of the template keyword preceding /// this name, if any. SourceLocation getTemplateKeywordLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); return getTrailingASTTemplateKWAndArgsInfo()->TemplateKWLoc; } - /// \brief Retrieve the location of the left angle bracket starting the + /// Retrieve the location of the left angle bracket starting the /// explicit template argument list following the name, if any. SourceLocation getLAngleLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); return getTrailingASTTemplateKWAndArgsInfo()->LAngleLoc; } - /// \brief Retrieve the location of the right angle bracket ending the + /// Retrieve the location of the right angle bracket ending the /// explicit template argument list following the name, if any. SourceLocation getRAngleLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); return getTrailingASTTemplateKWAndArgsInfo()->RAngleLoc; } - /// \brief Determines whether the name was preceded by the template keyword. + /// Determines whether the name was preceded by the template keyword. bool hasTemplateKeyword() const { return getTemplateKeywordLoc().isValid(); } - /// \brief Determines whether this expression had explicit template arguments. + /// Determines whether this expression had explicit template arguments. bool hasExplicitTemplateArgs() const { return getLAngleLoc().isValid(); } TemplateArgumentLoc const *getTemplateArgs() const { @@ -2713,7 +2713,7 @@ public: return {getTemplateArgs(), getNumTemplateArgs()}; } - /// \brief Copies the template arguments into the given structure. + /// Copies the template arguments into the given structure. void copyTemplateArgumentsInto(TemplateArgumentListInfo &List) const { if (hasExplicitTemplateArgs()) getTrailingASTTemplateKWAndArgsInfo()->copyInto(getTemplateArgs(), List); @@ -2725,7 +2725,7 @@ public: } }; -/// \brief A reference to a name which we were able to look up during +/// A reference to a name which we were able to look up during /// parsing but could not resolve to a specific declaration. /// /// This arises in several ways: @@ -2840,7 +2840,7 @@ public: } }; -/// \brief A qualified reference to a name whose declaration cannot +/// A qualified reference to a name whose declaration cannot /// yet be resolved. /// /// DependentScopeDeclRefExpr is similar to DeclRefExpr in that @@ -2859,14 +2859,14 @@ class DependentScopeDeclRefExpr final private llvm::TrailingObjects<DependentScopeDeclRefExpr, ASTTemplateKWAndArgsInfo, TemplateArgumentLoc> { - /// \brief The nested-name-specifier that qualifies this unresolved + /// The nested-name-specifier that qualifies this unresolved /// declaration name. NestedNameSpecifierLoc QualifierLoc; - /// \brief The name of the entity we will be referencing. + /// The name of the entity we will be referencing. DeclarationNameInfo NameInfo; - /// \brief Whether the name includes info for explicit template + /// Whether the name includes info for explicit template /// keyword and arguments. bool HasTemplateKWAndArgsInfo; @@ -2895,42 +2895,42 @@ public: bool HasTemplateKWAndArgsInfo, unsigned NumTemplateArgs); - /// \brief Retrieve the name that this expression refers to. + /// Retrieve the name that this expression refers to. const DeclarationNameInfo &getNameInfo() const { return NameInfo; } - /// \brief Retrieve the name that this expression refers to. + /// Retrieve the name that this expression refers to. DeclarationName getDeclName() const { return NameInfo.getName(); } - /// \brief Retrieve the location of the name within the expression. + /// Retrieve the location of the name within the expression. /// /// For example, in "X<T>::value" this is the location of "value". SourceLocation getLocation() const { return NameInfo.getLoc(); } - /// \brief Retrieve the nested-name-specifier that qualifies the + /// Retrieve the nested-name-specifier that qualifies the /// name, with source location information. NestedNameSpecifierLoc getQualifierLoc() const { return QualifierLoc; } - /// \brief Retrieve the nested-name-specifier that qualifies this + /// Retrieve the nested-name-specifier that qualifies this /// declaration. NestedNameSpecifier *getQualifier() const { return QualifierLoc.getNestedNameSpecifier(); } - /// \brief Retrieve the location of the template keyword preceding + /// Retrieve the location of the template keyword preceding /// this name, if any. SourceLocation getTemplateKeywordLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); return getTrailingObjects<ASTTemplateKWAndArgsInfo>()->TemplateKWLoc; } - /// \brief Retrieve the location of the left angle bracket starting the + /// Retrieve the location of the left angle bracket starting the /// explicit template argument list following the name, if any. SourceLocation getLAngleLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); return getTrailingObjects<ASTTemplateKWAndArgsInfo>()->LAngleLoc; } - /// \brief Retrieve the location of the right angle bracket ending the + /// Retrieve the location of the right angle bracket ending the /// explicit template argument list following the name, if any. SourceLocation getRAngleLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); @@ -2943,7 +2943,7 @@ public: /// Determines whether this lookup had explicit template arguments. bool hasExplicitTemplateArgs() const { return getLAngleLoc().isValid(); } - /// \brief Copies the template arguments (if present) into the given + /// Copies the template arguments (if present) into the given /// structure. void copyTemplateArgumentsInto(TemplateArgumentListInfo &List) const { if (hasExplicitTemplateArgs()) @@ -3066,7 +3066,7 @@ public: child_range children() { return child_range(&SubExpr, &SubExpr + 1); } }; -/// \brief Describes an explicit type conversion that uses functional +/// Describes an explicit type conversion that uses functional /// notion but could not be resolved because one or more arguments are /// type-dependent. /// @@ -3093,16 +3093,16 @@ class CXXUnresolvedConstructExpr final friend class ASTStmtReader; friend TrailingObjects; - /// \brief The type being constructed. + /// The type being constructed. TypeSourceInfo *Type = nullptr; - /// \brief The location of the left parentheses ('('). + /// The location of the left parentheses ('('). SourceLocation LParenLoc; - /// \brief The location of the right parentheses (')'). + /// The location of the right parentheses (')'). SourceLocation RParenLoc; - /// \brief The number of arguments used to construct the type. + /// The number of arguments used to construct the type. unsigned NumArgs; CXXUnresolvedConstructExpr(TypeSourceInfo *Type, @@ -3123,20 +3123,20 @@ public: static CXXUnresolvedConstructExpr *CreateEmpty(const ASTContext &C, unsigned NumArgs); - /// \brief Retrieve the type that is being constructed, as specified + /// Retrieve the type that is being constructed, as specified /// in the source code. QualType getTypeAsWritten() const { return Type->getType(); } - /// \brief Retrieve the type source information for the type being + /// Retrieve the type source information for the type being /// constructed. TypeSourceInfo *getTypeSourceInfo() const { return Type; } - /// \brief Retrieve the location of the left parentheses ('(') that + /// Retrieve the location of the left parentheses ('(') that /// precedes the argument list. SourceLocation getLParenLoc() const { return LParenLoc; } void setLParenLoc(SourceLocation L) { LParenLoc = L; } - /// \brief Retrieve the location of the right parentheses (')') that + /// Retrieve the location of the right parentheses (')') that /// follows the argument list. SourceLocation getRParenLoc() const { return RParenLoc; } void setRParenLoc(SourceLocation L) { RParenLoc = L; } @@ -3146,7 +3146,7 @@ public: /// an InitListExpr. bool isListInitialization() const { return LParenLoc.isInvalid(); } - /// \brief Retrieve the number of arguments. + /// Retrieve the number of arguments. unsigned arg_size() const { return NumArgs; } using arg_iterator = Expr **; @@ -3195,7 +3195,7 @@ public: } }; -/// \brief Represents a C++ member access expression where the actual +/// Represents a C++ member access expression where the actual /// member referenced could not be resolved because the base /// expression or the member name was dependent. /// @@ -3207,29 +3207,29 @@ class CXXDependentScopeMemberExpr final private llvm::TrailingObjects<CXXDependentScopeMemberExpr, ASTTemplateKWAndArgsInfo, TemplateArgumentLoc> { - /// \brief The expression for the base pointer or class reference, + /// The expression for the base pointer or class reference, /// e.g., the \c x in x.f. Can be null in implicit accesses. Stmt *Base; - /// \brief The type of the base expression. Never null, even for + /// The type of the base expression. Never null, even for /// implicit accesses. QualType BaseType; - /// \brief Whether this member expression used the '->' operator or + /// Whether this member expression used the '->' operator or /// the '.' operator. bool IsArrow : 1; - /// \brief Whether this member expression has info for explicit template + /// Whether this member expression has info for explicit template /// keyword and arguments. bool HasTemplateKWAndArgsInfo : 1; - /// \brief The location of the '->' or '.' operator. + /// The location of the '->' or '.' operator. SourceLocation OperatorLoc; - /// \brief The nested-name-specifier that precedes the member name, if any. + /// The nested-name-specifier that precedes the member name, if any. NestedNameSpecifierLoc QualifierLoc; - /// \brief In a qualified member access expression such as t->Base::f, this + /// In a qualified member access expression such as t->Base::f, this /// member stores the resolves of name lookup in the context of the member /// access expression, to be used at instantiation time. /// @@ -3238,7 +3238,7 @@ class CXXDependentScopeMemberExpr final /// the CXXDependentScopeMemberExpr, to save space in the common case. NamedDecl *FirstQualifierFoundInScope; - /// \brief The member to which this member expression refers, which + /// The member to which this member expression refers, which /// can be name, overloaded operator, or destructor. /// /// FIXME: could also be a template-id @@ -3280,12 +3280,12 @@ public: CreateEmpty(const ASTContext &C, bool HasTemplateKWAndArgsInfo, unsigned NumTemplateArgs); - /// \brief True if this is an implicit access, i.e. one in which the + /// True if this is an implicit access, i.e. one in which the /// member being accessed was not written in the source. The source /// location of the operator is invalid in this case. bool isImplicitAccess() const; - /// \brief Retrieve the base object of this member expressions, + /// Retrieve the base object of this member expressions, /// e.g., the \c x in \c x.m. Expr *getBase() const { assert(!isImplicitAccess()); @@ -3294,24 +3294,24 @@ public: QualType getBaseType() const { return BaseType; } - /// \brief Determine whether this member expression used the '->' + /// Determine whether this member expression used the '->' /// operator; otherwise, it used the '.' operator. bool isArrow() const { return IsArrow; } - /// \brief Retrieve the location of the '->' or '.' operator. + /// Retrieve the location of the '->' or '.' operator. SourceLocation getOperatorLoc() const { return OperatorLoc; } - /// \brief Retrieve the nested-name-specifier that qualifies the member + /// Retrieve the nested-name-specifier that qualifies the member /// name. NestedNameSpecifier *getQualifier() const { return QualifierLoc.getNestedNameSpecifier(); } - /// \brief Retrieve the nested-name-specifier that qualifies the member + /// Retrieve the nested-name-specifier that qualifies the member /// name, with source location information. NestedNameSpecifierLoc getQualifierLoc() const { return QualifierLoc; } - /// \brief Retrieve the first part of the nested-name-specifier that was + /// Retrieve the first part of the nested-name-specifier that was /// found in the scope of the member access expression when the member access /// was initially parsed. /// @@ -3326,35 +3326,35 @@ public: return FirstQualifierFoundInScope; } - /// \brief Retrieve the name of the member that this expression + /// Retrieve the name of the member that this expression /// refers to. const DeclarationNameInfo &getMemberNameInfo() const { return MemberNameInfo; } - /// \brief Retrieve the name of the member that this expression + /// Retrieve the name of the member that this expression /// refers to. DeclarationName getMember() const { return MemberNameInfo.getName(); } - // \brief Retrieve the location of the name of the member that this + // Retrieve the location of the name of the member that this // expression refers to. SourceLocation getMemberLoc() const { return MemberNameInfo.getLoc(); } - /// \brief Retrieve the location of the template keyword preceding the + /// Retrieve the location of the template keyword preceding the /// member name, if any. SourceLocation getTemplateKeywordLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); return getTrailingObjects<ASTTemplateKWAndArgsInfo>()->TemplateKWLoc; } - /// \brief Retrieve the location of the left angle bracket starting the + /// Retrieve the location of the left angle bracket starting the /// explicit template argument list following the member name, if any. SourceLocation getLAngleLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); return getTrailingObjects<ASTTemplateKWAndArgsInfo>()->LAngleLoc; } - /// \brief Retrieve the location of the right angle bracket ending the + /// Retrieve the location of the right angle bracket ending the /// explicit template argument list following the member name, if any. SourceLocation getRAngleLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); @@ -3364,11 +3364,11 @@ public: /// Determines whether the member name was preceded by the template keyword. bool hasTemplateKeyword() const { return getTemplateKeywordLoc().isValid(); } - /// \brief Determines whether this member expression actually had a C++ + /// Determines whether this member expression actually had a C++ /// template argument list explicitly specified, e.g., x.f<int>. bool hasExplicitTemplateArgs() const { return getLAngleLoc().isValid(); } - /// \brief Copies the template arguments (if present) into the given + /// Copies the template arguments (if present) into the given /// structure. void copyTemplateArgumentsInto(TemplateArgumentListInfo &List) const { if (hasExplicitTemplateArgs()) @@ -3376,7 +3376,7 @@ public: getTrailingObjects<TemplateArgumentLoc>(), List); } - /// \brief Retrieve the template arguments provided as part of this + /// Retrieve the template arguments provided as part of this /// template-id. const TemplateArgumentLoc *getTemplateArgs() const { if (!hasExplicitTemplateArgs()) @@ -3385,7 +3385,7 @@ public: return getTrailingObjects<TemplateArgumentLoc>(); } - /// \brief Retrieve the number of template arguments provided as part of this + /// Retrieve the number of template arguments provided as part of this /// template-id. unsigned getNumTemplateArgs() const { if (!hasExplicitTemplateArgs()) @@ -3424,7 +3424,7 @@ public: } }; -/// \brief Represents a C++ member access expression for which lookup +/// Represents a C++ member access expression for which lookup /// produced a set of overloaded functions. /// /// The member access may be explicit or implicit: @@ -3447,24 +3447,24 @@ class UnresolvedMemberExpr final friend class OverloadExpr; friend TrailingObjects; - /// \brief Whether this member expression used the '->' operator or + /// Whether this member expression used the '->' operator or /// the '.' operator. bool IsArrow : 1; - /// \brief Whether the lookup results contain an unresolved using + /// Whether the lookup results contain an unresolved using /// declaration. bool HasUnresolvedUsing : 1; - /// \brief The expression for the base pointer or class reference, + /// The expression for the base pointer or class reference, /// e.g., the \c x in x.f. /// /// This can be null if this is an 'unbased' member expression. Stmt *Base = nullptr; - /// \brief The type of the base expression; never null. + /// The type of the base expression; never null. QualType BaseType; - /// \brief The location of the '->' or '.' operator. + /// The location of the '->' or '.' operator. SourceLocation OperatorLoc; UnresolvedMemberExpr(const ASTContext &C, bool HasUnresolvedUsing, @@ -3499,13 +3499,13 @@ public: CreateEmpty(const ASTContext &C, bool HasTemplateKWAndArgsInfo, unsigned NumTemplateArgs); - /// \brief True if this is an implicit access, i.e., one in which the + /// True if this is an implicit access, i.e., one in which the /// member being accessed was not written in the source. /// /// The source location of the operator is invalid in this case. bool isImplicitAccess() const; - /// \brief Retrieve the base object of this member expressions, + /// Retrieve the base object of this member expressions, /// e.g., the \c x in \c x.m. Expr *getBase() { assert(!isImplicitAccess()); @@ -3518,33 +3518,33 @@ public: QualType getBaseType() const { return BaseType; } - /// \brief Determine whether the lookup results contain an unresolved using + /// Determine whether the lookup results contain an unresolved using /// declaration. bool hasUnresolvedUsing() const { return HasUnresolvedUsing; } - /// \brief Determine whether this member expression used the '->' + /// Determine whether this member expression used the '->' /// operator; otherwise, it used the '.' operator. bool isArrow() const { return IsArrow; } - /// \brief Retrieve the location of the '->' or '.' operator. + /// Retrieve the location of the '->' or '.' operator. SourceLocation getOperatorLoc() const { return OperatorLoc; } - /// \brief Retrieve the naming class of this lookup. + /// Retrieve the naming class of this lookup. CXXRecordDecl *getNamingClass() const; - /// \brief Retrieve the full name info for the member that this expression + /// Retrieve the full name info for the member that this expression /// refers to. const DeclarationNameInfo &getMemberNameInfo() const { return getNameInfo(); } - /// \brief Retrieve the name of the member that this expression + /// Retrieve the name of the member that this expression /// refers to. DeclarationName getMemberName() const { return getName(); } - // \brief Retrieve the location of the name of the member that this + // Retrieve the location of the name of the member that this // expression refers to. SourceLocation getMemberLoc() const { return getNameLoc(); } - // \brief Return the preferred location (the member name) for the arrow when + // Return the preferred location (the member name) for the arrow when // diagnosing a problem with this expression. SourceLocation getExprLoc() const LLVM_READONLY { return getMemberLoc(); } @@ -3596,7 +3596,7 @@ inline TemplateArgumentLoc *OverloadExpr::getTrailingTemplateArgumentLoc() { ->getTrailingObjects<TemplateArgumentLoc>(); } -/// \brief Represents a C++11 noexcept expression (C++ [expr.unary.noexcept]). +/// Represents a C++11 noexcept expression (C++ [expr.unary.noexcept]). /// /// The noexcept expression tests whether a given expression might throw. Its /// result is a boolean constant. @@ -3635,7 +3635,7 @@ public: child_range children() { return child_range(&Operand, &Operand + 1); } }; -/// \brief Represents a C++11 pack expansion that produces a sequence of +/// Represents a C++11 pack expansion that produces a sequence of /// expressions. /// /// A pack expansion expression contains a pattern (which itself is an @@ -3658,7 +3658,7 @@ class PackExpansionExpr : public Expr { SourceLocation EllipsisLoc; - /// \brief The number of expansions that will be produced by this pack + /// The number of expansions that will be produced by this pack /// expansion expression, if known. /// /// When zero, the number of expansions is not known. Otherwise, this value @@ -3680,17 +3680,17 @@ public: PackExpansionExpr(EmptyShell Empty) : Expr(PackExpansionExprClass, Empty) {} - /// \brief Retrieve the pattern of the pack expansion. + /// Retrieve the pattern of the pack expansion. Expr *getPattern() { return reinterpret_cast<Expr *>(Pattern); } - /// \brief Retrieve the pattern of the pack expansion. + /// Retrieve the pattern of the pack expansion. const Expr *getPattern() const { return reinterpret_cast<Expr *>(Pattern); } - /// \brief Retrieve the location of the ellipsis that describes this pack + /// Retrieve the location of the ellipsis that describes this pack /// expansion. SourceLocation getEllipsisLoc() const { return EllipsisLoc; } - /// \brief Determine the number of expansions that will be produced when + /// Determine the number of expansions that will be produced when /// this pack expansion is instantiated, if already known. Optional<unsigned> getNumExpansions() const { if (NumExpansions) @@ -3715,7 +3715,7 @@ public: } }; -/// \brief Represents an expression that computes the length of a parameter +/// Represents an expression that computes the length of a parameter /// pack. /// /// \code @@ -3731,16 +3731,16 @@ class SizeOfPackExpr final friend class ASTStmtWriter; friend TrailingObjects; - /// \brief The location of the \c sizeof keyword. + /// The location of the \c sizeof keyword. SourceLocation OperatorLoc; - /// \brief The location of the name of the parameter pack. + /// The location of the name of the parameter pack. SourceLocation PackLoc; - /// \brief The location of the closing parenthesis. + /// The location of the closing parenthesis. SourceLocation RParenLoc; - /// \brief The length of the parameter pack, if known. + /// The length of the parameter pack, if known. /// /// When this expression is not value-dependent, this is the length of /// the pack. When the expression was parsed rather than instantiated @@ -3752,10 +3752,10 @@ class SizeOfPackExpr final /// and this is the length of that array. unsigned Length; - /// \brief The parameter pack. + /// The parameter pack. NamedDecl *Pack = nullptr; - /// \brief Create an expression that computes the length of + /// Create an expression that computes the length of /// the given parameter pack. SizeOfPackExpr(QualType SizeType, SourceLocation OperatorLoc, NamedDecl *Pack, SourceLocation PackLoc, SourceLocation RParenLoc, @@ -3772,7 +3772,7 @@ class SizeOfPackExpr final std::uninitialized_copy(PartialArgs.begin(), PartialArgs.end(), Args); } - /// \brief Create an empty expression. + /// Create an empty expression. SizeOfPackExpr(EmptyShell Empty, unsigned NumPartialArgs) : Expr(SizeOfPackExprClass, Empty), Length(NumPartialArgs) {} @@ -3785,19 +3785,19 @@ public: static SizeOfPackExpr *CreateDeserialized(ASTContext &Context, unsigned NumPartialArgs); - /// \brief Determine the location of the 'sizeof' keyword. + /// Determine the location of the 'sizeof' keyword. SourceLocation getOperatorLoc() const { return OperatorLoc; } - /// \brief Determine the location of the parameter pack. + /// Determine the location of the parameter pack. SourceLocation getPackLoc() const { return PackLoc; } - /// \brief Determine the location of the right parenthesis. + /// Determine the location of the right parenthesis. SourceLocation getRParenLoc() const { return RParenLoc; } - /// \brief Retrieve the parameter pack. + /// Retrieve the parameter pack. NamedDecl *getPack() const { return Pack; } - /// \brief Retrieve the length of the parameter pack. + /// Retrieve the length of the parameter pack. /// /// This routine may only be invoked when the expression is not /// value-dependent. @@ -3807,7 +3807,7 @@ public: return Length; } - /// \brief Determine whether this represents a partially-substituted sizeof... + /// Determine whether this represents a partially-substituted sizeof... /// expression, such as is produced for: /// /// template<typename ...Ts> using X = int[sizeof...(Ts)]; @@ -3816,7 +3816,7 @@ public: return isValueDependent() && Length; } - /// \brief Get + /// Get ArrayRef<TemplateArgument> getPartialArguments() const { assert(isPartiallySubstituted()); const auto *Args = getTrailingObjects<TemplateArgument>(); @@ -3836,19 +3836,19 @@ public: } }; -/// \brief Represents a reference to a non-type template parameter +/// Represents a reference to a non-type template parameter /// that has been substituted with a template argument. class SubstNonTypeTemplateParmExpr : public Expr { friend class ASTReader; friend class ASTStmtReader; - /// \brief The replaced parameter. + /// The replaced parameter. NonTypeTemplateParmDecl *Param; - /// \brief The replacement expression. + /// The replacement expression. Stmt *Replacement; - /// \brief The location of the non-type template parameter reference. + /// The location of the non-type template parameter reference. SourceLocation NameLoc; explicit SubstNonTypeTemplateParmExpr(EmptyShell Empty) @@ -3882,7 +3882,7 @@ public: child_range children() { return child_range(&Replacement, &Replacement+1); } }; -/// \brief Represents a reference to a non-type template parameter pack that +/// Represents a reference to a non-type template parameter pack that /// has been substituted with a non-template argument pack. /// /// When a pack expansion in the source code contains multiple parameter packs @@ -3898,17 +3898,17 @@ class SubstNonTypeTemplateParmPackExpr : public Expr { friend class ASTReader; friend class ASTStmtReader; - /// \brief The non-type template parameter pack itself. + /// The non-type template parameter pack itself. NonTypeTemplateParmDecl *Param; - /// \brief A pointer to the set of template arguments that this + /// A pointer to the set of template arguments that this /// parameter pack is instantiated with. const TemplateArgument *Arguments; - /// \brief The number of template arguments in \c Arguments. + /// The number of template arguments in \c Arguments. unsigned NumArguments; - /// \brief The location of the non-type template parameter pack reference. + /// The location of the non-type template parameter pack reference. SourceLocation NameLoc; explicit SubstNonTypeTemplateParmPackExpr(EmptyShell Empty) @@ -3921,13 +3921,13 @@ public: SourceLocation NameLoc, const TemplateArgument &ArgPack); - /// \brief Retrieve the non-type template parameter pack being substituted. + /// Retrieve the non-type template parameter pack being substituted. NonTypeTemplateParmDecl *getParameterPack() const { return Param; } - /// \brief Retrieve the location of the parameter pack name. + /// Retrieve the location of the parameter pack name. SourceLocation getParameterPackLocation() const { return NameLoc; } - /// \brief Retrieve the template argument pack containing the substituted + /// Retrieve the template argument pack containing the substituted /// template arguments. TemplateArgument getArgumentPack() const; @@ -3944,7 +3944,7 @@ public: } }; -/// \brief Represents a reference to a function parameter pack that has been +/// Represents a reference to a function parameter pack that has been /// substituted but not yet expanded. /// /// When a pack expansion contains multiple parameter packs at different levels, @@ -3965,13 +3965,13 @@ class FunctionParmPackExpr final friend class ASTStmtReader; friend TrailingObjects; - /// \brief The function parameter pack which was referenced. + /// The function parameter pack which was referenced. ParmVarDecl *ParamPack; - /// \brief The location of the function parameter pack reference. + /// The location of the function parameter pack reference. SourceLocation NameLoc; - /// \brief The number of expansions of this pack. + /// The number of expansions of this pack. unsigned NumParameters; FunctionParmPackExpr(QualType T, ParmVarDecl *ParamPack, @@ -3986,22 +3986,22 @@ public: static FunctionParmPackExpr *CreateEmpty(const ASTContext &Context, unsigned NumParams); - /// \brief Get the parameter pack which this expression refers to. + /// Get the parameter pack which this expression refers to. ParmVarDecl *getParameterPack() const { return ParamPack; } - /// \brief Get the location of the parameter pack. + /// Get the location of the parameter pack. SourceLocation getParameterPackLocation() const { return NameLoc; } - /// \brief Iterators over the parameters which the parameter pack expanded + /// Iterators over the parameters which the parameter pack expanded /// into. using iterator = ParmVarDecl * const *; iterator begin() const { return getTrailingObjects<ParmVarDecl *>(); } iterator end() const { return begin() + NumParameters; } - /// \brief Get the number of parameters in this parameter pack. + /// Get the number of parameters in this parameter pack. unsigned getNumExpansions() const { return NumParameters; } - /// \brief Get an expansion of the parameter pack by index. + /// Get an expansion of the parameter pack by index. ParmVarDecl *getExpansion(unsigned I) const { return begin()[I]; } SourceLocation getLocStart() const LLVM_READONLY { return NameLoc; } @@ -4016,7 +4016,7 @@ public: } }; -/// \brief Represents a prvalue temporary that is written into memory so that +/// Represents a prvalue temporary that is written into memory so that /// a reference can bind to it. /// /// Prvalue expressions are materialized when they need to have an address @@ -4042,11 +4042,11 @@ private: friend class ASTStmtWriter; struct ExtraState { - /// \brief The temporary-generating expression whose value will be + /// The temporary-generating expression whose value will be /// materialized. Stmt *Temporary; - /// \brief The declaration which lifetime-extended this reference, if any. + /// The declaration which lifetime-extended this reference, if any. /// Either a VarDecl, or (for a ctor-initializer) a FieldDecl. const ValueDecl *ExtendingDecl; @@ -4075,11 +4075,11 @@ public: : State.get<ExtraState *>()->Temporary; } - /// \brief Retrieve the temporary-generating subexpression whose value will + /// Retrieve the temporary-generating subexpression whose value will /// be materialized into a glvalue. Expr *GetTemporaryExpr() const { return static_cast<Expr *>(getTemporary()); } - /// \brief Retrieve the storage duration for the materialized temporary. + /// Retrieve the storage duration for the materialized temporary. StorageDuration getStorageDuration() const { const ValueDecl *ExtendingDecl = getExtendingDecl(); if (!ExtendingDecl) @@ -4097,7 +4097,7 @@ public: return cast<VarDecl>(ExtendingDecl)->getStorageDuration(); } - /// \brief Get the declaration which triggered the lifetime-extension of this + /// Get the declaration which triggered the lifetime-extension of this /// temporary, if any. const ValueDecl *getExtendingDecl() const { return State.is<Stmt *>() ? nullptr @@ -4110,7 +4110,7 @@ public: return State.is<Stmt *>() ? 0 : State.get<ExtraState *>()->ManglingNumber; } - /// \brief Determine whether this materialized temporary is bound to an + /// Determine whether this materialized temporary is bound to an /// lvalue reference; otherwise, it's bound to an rvalue reference. bool isBoundToLvalueReference() const { return getValueKind() == VK_LValue; @@ -4138,7 +4138,7 @@ public: } }; -/// \brief Represents a folding of a pack over an operator. +/// Represents a folding of a pack over an operator. /// /// This expression is always dependent and represents a pack expansion of the /// forms: @@ -4207,7 +4207,7 @@ public: child_range children() { return child_range(SubExprs, SubExprs + 2); } }; -/// \brief Represents an expression that might suspend coroutine execution; +/// Represents an expression that might suspend coroutine execution; /// either a co_await or co_yield expression. /// /// Evaluation of this expression first evaluates its 'ready' expression. If @@ -4271,7 +4271,7 @@ public: return static_cast<Expr*>(SubExprs[SubExpr::Common]); } - /// \brief getOpaqueValue - Return the opaque value placeholder. + /// getOpaqueValue - Return the opaque value placeholder. OpaqueValueExpr *getOpaqueValue() const { return OpaqueValue; } Expr *getReadyExpr() const { @@ -4304,7 +4304,7 @@ public: } }; -/// \brief Represents a 'co_await' expression. +/// Represents a 'co_await' expression. class CoawaitExpr : public CoroutineSuspendExpr { friend class ASTStmtReader; @@ -4339,7 +4339,7 @@ public: } }; -/// \brief Represents a 'co_await' expression while the type of the promise +/// Represents a 'co_await' expression while the type of the promise /// is dependent. class DependentCoawaitExpr : public Expr { friend class ASTStmtReader; @@ -4387,7 +4387,7 @@ public: } }; -/// \brief Represents a 'co_yield' expression. +/// Represents a 'co_yield' expression. class CoyieldExpr : public CoroutineSuspendExpr { friend class ASTStmtReader; |