Lines Matching refs:CSI
615 void Sema::deduceClosureReturnType(CapturingScopeInfo &CSI) { in deduceClosureReturnType() argument
616 assert(CSI.HasImplicitReturnType); in deduceClosureReturnType()
618 assert(CSI.ReturnType.isNull() || !CSI.ReturnType->isUndeducedType()); in deduceClosureReturnType()
645 if (CSI.Returns.empty()) { in deduceClosureReturnType()
648 if (CSI.ReturnType.isNull()) in deduceClosureReturnType()
649 CSI.ReturnType = Ctx.VoidTy; in deduceClosureReturnType()
655 assert(!CSI.ReturnType.isNull() && "We should have a tentative return type."); in deduceClosureReturnType()
656 if (CSI.ReturnType->isDependentType()) in deduceClosureReturnType()
661 assert(isa<BlockScopeInfo>(CSI)); in deduceClosureReturnType()
662 const EnumDecl *ED = findCommonEnumForBlockReturns(CSI.Returns); in deduceClosureReturnType()
664 CSI.ReturnType = Context.getTypeDeclType(ED); in deduceClosureReturnType()
665 adjustBlockReturnsToEnum(*this, CSI.Returns, CSI.ReturnType); in deduceClosureReturnType()
671 SmallVectorImpl<ReturnStmt*>::iterator I = CSI.Returns.begin(), in deduceClosureReturnType()
672 E = CSI.Returns.end(); in deduceClosureReturnType()
689 Context.getCanonicalFunctionResultType(CSI.ReturnType)) in deduceClosureReturnType()
696 << ReturnType << CSI.ReturnType in deduceClosureReturnType()
697 << isa<LambdaScopeInfo>(CSI); in deduceClosureReturnType()