Lines Matching defs:Self

3180                                Sema &Self, SourceLocation KeyLoc, ASTContext &C,
3191 LookupResult Res(Self, NameInfo, Sema::LookupOrdinaryName);
3192 if (Self.LookupQualifiedName(Res, RD)) {
3205 CPT = Self.ResolveExceptionSpec(KeyLoc, CPT);
3206 if (!CPT || !CPT->isNothrow(Self.Context))
3215 static bool EvaluateUnaryTypeTrait(Sema &Self, UnaryTypeTrait UTT,
3219 ASTContext &C = Self.Context;
3291 return T.isTrivialType(Self.Context);
3293 return T.isTriviallyCopyableType(Self.Context);
3297 return T.isPODType(Self.Context);
3299 return T->isLiteralType(Self.Context);
3350 if (T.isPODType(Self.Context))
3360 if (T.isPODType(Self.Context))
3371 if (T.isPODType(Self.Context) || T->isReferenceType())
3381 if (T.isPODType(Self.Context))
3401 if (T.isPODType(Self.Context))
3414 if (T.isPODType(Self.Context) || T->isReferenceType())
3438 if (T.isPODType(Self.Context) || T->isObjCLifetimeType())
3442 return HasNoThrowOperator(RT, OO_Equal, Self, KeyLoc, C,
3451 if (T.isPODType(Self.Context))
3455 return HasNoThrowOperator(RT, OO_Equal, Self, KeyLoc, C,
3475 DeclContext::lookup_const_result R = Self.LookupConstructors(RD);
3488 CPT = Self.ResolveExceptionSpec(KeyLoc, CPT);
3493 if (!CPT->isNothrow(Self.Context) || CPT->getNumArgs() > 1)
3514 DeclContext::lookup_const_result R = Self.LookupConstructors(RD);
3524 CPT = Self.ResolveExceptionSpec(KeyLoc, CPT);
3529 return CPT->isNothrow(Self.Context) && CPT->getNumArgs() == 0;
3539 if (CXXDestructorDecl *Destructor = Self.LookupDestructor(RD))
3731 static bool EvaluateBinaryTypeTrait(Sema &Self, BinaryTypeTrait BTT,
3750 assert(Self.Context.hasSameUnqualifiedType(LhsT, RhsT)
3760 if (Self.RequireCompleteType(KeyLoc, RhsT,
3768 return Self.Context.hasSameType(LhsT, RhsT);
3770 return Self.Context.typesAreCompatible(LhsT.getUnqualifiedType(),
3808 if (Self.RequireCompleteType(KeyLoc, RhsT, 0) ||
3809 Self.RequireNonAbstractType(KeyLoc, RhsT, 0))
3814 LhsT = Self.Context.getRValueReferenceType(LhsT);
3818 OpaqueValueExpr From(KeyLoc, LhsT.getNonLValueExprType(Self.Context),
3826 EnterExpressionEvaluationContext Unevaluated(Self, Sema::Unevaluated);
3827 Sema::SFINAETrap SFINAE(Self, /*AccessCheckingSFINAE=*/true);
3828 Sema::ContextRAII TUContext(Self, Self.Context.getTranslationUnitDecl());
3829 InitializationSequence Init(Self, To, Kind, FromPtr);
3833 ExprResult Result = Init.Perform(Self, To, Kind, FromPtr);
3850 Self.RequireCompleteType(KeyLoc, LhsT,
3854 Self.RequireCompleteType(KeyLoc, RhsT,
3865 LhsT = Self.Context.getRValueReferenceType(LhsT);
3867 RhsT = Self.Context.getRValueReferenceType(RhsT);
3868 OpaqueValueExpr Lhs(KeyLoc, LhsT.getNonLValueExprType(Self.Context),
3870 OpaqueValueExpr Rhs(KeyLoc, RhsT.getNonLValueExprType(Self.Context),
3875 EnterExpressionEvaluationContext Unevaluated(Self, Sema::Unevaluated);
3876 Sema::SFINAETrap SFINAE(Self, /*AccessCheckingSFINAE=*/true);
3877 Sema::ContextRAII TUContext(Self, Self.Context.getTranslationUnitDecl());
3878 ExprResult Result = Self.BuildBinOp(/*S=*/0, KeyLoc, BO_Assign, &Lhs, &Rhs);
3884 if (Self.getLangOpts().ObjCAutoRefCount &&
3888 return !Result.get()->hasNonTrivialCall(Self.Context);
3943 static uint64_t EvaluateArrayTypeTrait(Sema &Self, ArrayTypeTrait ATT,
3952 while (const ArrayType *AT = Self.Context.getAsArrayType(T)) {
3963 if (Self.VerifyIntegerConstantExpression(DimExpr, &Value,
3968 Self.Diag(KeyLoc, diag::err_dimension_expr_not_constant_integer)
3977 while (const ArrayType *AT = Self.Context.getAsArrayType(T)) {
3987 if (const ConstantArrayType *CAT = Self.Context.getAsConstantArrayType(T))
4207 static bool TryClassUnification(Sema &Self, Expr *From, Expr *To,
4226 QualType T = Self.Context.getLValueReferenceType(ToType);
4229 InitializationSequence InitSeq(Self, Entity, Kind, From);
4237 return InitSeq.Diagnose(Self, Entity, Kind, From);
4248 Self.IsDerivedFrom(FTy, TTy);
4250 (FRec == TRec || FDerivedFromT || Self.IsDerivedFrom(TTy, FTy))) {
4257 InitializationSequence InitSeq(Self, Entity, Kind, From);
4264 return InitSeq.Diagnose(Self, Entity, Kind, From);
4282 InitializationSequence InitSeq(Self, Entity, Kind, From);
4286 return InitSeq.Diagnose(Self, Entity, Kind, From);
4296 static bool FindConditionalOverload(Sema &Self, ExprResult &LHS, ExprResult &RHS,
4300 Self.AddBuiltinOperatorCandidates(OO_Conditional, QuestionLoc, Args,
4304 switch (CandidateSet.BestViableFunction(Self, QuestionLoc, Best)) {
4308 Self.PerformImplicitConversion(LHS.get(), Best->BuiltinTypes.ParamTypes[0],
4315 Self.PerformImplicitConversion(RHS.get(), Best->BuiltinTypes.ParamTypes[1],
4321 Self.MarkFunctionReferenced(QuestionLoc, Best->Function);
4330 if (Self.DiagnoseConditionalForNull(LHS.get(), RHS.get(), QuestionLoc))
4333 Self.Diag(QuestionLoc, diag::err_typecheck_cond_incompatible_operands)
4339 Self.Diag(QuestionLoc, diag::err_conditional_ambiguous_ovl)
4354 static bool ConvertForConditional(Sema &Self, ExprResult &E, QualType T) {
4359 InitializationSequence InitSeq(Self, Entity, Kind, Arg);
4360 ExprResult Result = InitSeq.Perform(Self, Entity, Kind, Arg);