Lines Matching defs:ICS

1653   ImplicitConversionSequence ICS;
1658 ICS.setBad(BadConversionSequence::no_conversion, From, ToType);
1659 return ICS;
1665 switch (IsUserDefinedConversion(S, From, ToType, ICS.UserDefined,
1670 ICS.setUserDefined();
1679 = dyn_cast<CXXConstructorDecl>(ICS.UserDefined.ConversionFunction)) {
1706 DeclAccessPair Found = ICS.UserDefined.FoundConversionFunction;
1707 ICS.setStandard();
1708 ICS.Standard.setAsIdentityConversion();
1709 ICS.Standard.setFromType(FromType);
1710 ICS.Standard.setAllToTypes(ToType);
1711 ICS.Standard.CopyConstructor = Constructor;
1712 ICS.Standard.FoundCopyConstructor = Found;
1714 ICS.Standard.Second = ICK_Derived_To_Base;
1720 ICS.setAmbiguous();
1721 ICS.Ambiguous.setFromType(From->getType());
1722 ICS.Ambiguous.setToType(ToType);
1726 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function);
1731 ICS.setBad(BadConversionSequence::no_conversion, From, ToType);
1735 return ICS;
1773 ImplicitConversionSequence ICS;
1775 ICS.Standard, CStyle, AllowObjCWritebackConversion)){
1776 ICS.setStandard();
1777 return ICS;
1781 ICS.setBad(BadConversionSequence::no_conversion, From, ToType);
1782 return ICS;
1796 ICS.setStandard();
1797 ICS.Standard.setAsIdentityConversion();
1798 ICS.Standard.setFromType(FromType);
1799 ICS.Standard.setAllToTypes(ToType);
1805 ICS.Standard.CopyConstructor = nullptr;
1809 ICS.Standard.Second = ICK_Derived_To_Base;
1811 return ICS;
1823 ICS.setStandard();
1824 ICS.Standard.setAsIdentityConversion();
1825 ICS.Standard.setFromType(FromType);
1826 ICS.Standard.setAllToTypes(ToType);
1827 return ICS;
1863 ImplicitConversionSequence ICS = ::TryImplicitConversion(
1870 return PerformImplicitConversion(From, ToType, ICS, Action);
4060 ImplicitConversionSequence ICS;
4064 IsUserDefinedConversion(*this, From, ToType, ICS.UserDefined,
4169 const ImplicitConversionSequence &ICS) {
4170 return (ICS.isStandard() && ICS.Standard.DeprecatedStringLiteralToCharPtr) ||
4171 (ICS.isUserDefined() &&
4172 ICS.UserDefined.Before.DeprecatedStringLiteralToCharPtr);
5038 FindConversionForRefInit(Sema &S, ImplicitConversionSequence &ICS,
5122 ICS.setUserDefined();
5123 ICS.UserDefined.Before = Best->Conversions[0].Standard;
5124 ICS.UserDefined.After = Best->FinalConversion;
5125 ICS.UserDefined.HadMultipleCandidates = HadMultipleCandidates;
5126 ICS.UserDefined.ConversionFunction = Best->Function;
5127 ICS.UserDefined.FoundConversionFunction = Best->FoundDecl;
5128 ICS.UserDefined.EllipsisConversion = false;
5129 assert(ICS.UserDefined.After.ReferenceBinding &&
5130 ICS.UserDefined.After.DirectBinding &&
5135 ICS.setAmbiguous();
5139 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function);
5162 ImplicitConversionSequence ICS;
5163 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType);
5187 ICS.setStandard();
5188 ICS.Standard.First = ICK_Identity;
5191 ICS.Standard.Second = (RefConv & Sema::ReferenceConversions::DerivedToBase)
5196 ICS.Standard.Dimension = ICK_Identity;
5200 ICS.Standard.Third = (RefConv &
5204 ICS.Standard.setFromType(T2);
5205 ICS.Standard.setToType(0, T2);
5206 ICS.Standard.setToType(1, T1);
5207 ICS.Standard.setToType(2, T1);
5208 ICS.Standard.ReferenceBinding = true;
5209 ICS.Standard.DirectBinding = BindsDirectly;
5210 ICS.Standard.IsLvalueReference = !isRValRef;
5211 ICS.Standard.BindsToFunctionLvalue = T2->isFunctionType();
5212 ICS.Standard.BindsToRvalue = InitCategory.isRValue();
5213 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier = false;
5214 ICS.Standard.ObjCLifetimeConversionBinding =
5216 ICS.Standard.CopyConstructor = nullptr;
5217 ICS.Standard.DeprecatedStringLiteralToCharPtr = false;
5244 return ICS;
5257 if (FindConversionForRefInit(S, ICS, DeclType, DeclLoc,
5260 return ICS;
5269 ICS.setBad(BadConversionSequence::lvalue_ref_to_rvalue, Init, DeclType);
5270 return ICS;
5289 return ICS;
5304 FindConversionForRefInit(S, ICS, DeclType, DeclLoc,
5311 if (ICS.isUserDefined() && isRValRef &&
5312 ICS.UserDefined.After.First == ICK_Lvalue_To_Rvalue)
5313 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType);
5315 return ICS;
5320 return ICS;
5347 return ICS;
5357 return ICS;
5363 ICS.setBad(BadConversionSequence::rvalue_ref_to_lvalue, Init, DeclType);
5364 return ICS;
5377 ICS = TryImplicitConversion(S, Init, T1, SuppressUserConversions,
5385 if (ICS.isStandard()) {
5386 ICS.Standard.ReferenceBinding = true;
5387 ICS.Standard.IsLvalueReference = !isRValRef;
5388 ICS.Standard.BindsToFunctionLvalue = false;
5389 ICS.Standard.BindsToRvalue = true;
5390 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier = false;
5391 ICS.Standard.ObjCLifetimeConversionBinding = false;
5392 } else if (ICS.isUserDefined()) {
5394 ICS.UserDefined.ConversionFunction->getReturnType()
5404 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType);
5405 return ICS;
5408 ICS.UserDefined.After.ReferenceBinding = true;
5409 ICS.UserDefined.After.IsLvalueReference = !isRValRef;
5410 ICS.UserDefined.After.BindsToFunctionLvalue = false;
5411 ICS.UserDefined.After.BindsToRvalue = !LValRefType;
5412 ICS.UserDefined.After.BindsImplicitObjectArgumentWithoutRefQualifier = false;
5413 ICS.UserDefined.After.ObjCLifetimeConversionBinding = false;
5416 return ICS;
5566 ImplicitConversionSequence ICS = TryCopyInitialization(
5573 if (CompareImplicitConversionSequences(S, From->getBeginLoc(), ICS,
5576 Result = ICS;
5772 ImplicitConversionSequence ICS =
5775 return !ICS.isBad();
5810 ImplicitConversionSequence ICS = TryCopyInitialization(
5813 if (ICS.isBad())
5814 ICS.Bad.FromExpr = nullptr;
5815 return ICS;
5838 ImplicitConversionSequence ICS;
5865 ICS.setBad(BadConversionSequence::bad_qualifiers,
5867 return ICS;
5875 ICS.setBad(BadConversionSequence::bad_qualifiers,
5877 return ICS;
5890 ICS.setBad(BadConversionSequence::unrelated_class,
5892 return ICS;
5904 ICS.setBad(BadConversionSequence::lvalue_ref_to_rvalue, FromType,
5906 return ICS;
5913 ICS.setBad(BadConversionSequence::rvalue_ref_to_lvalue, FromType,
5915 return ICS;
5921 ICS.setStandard();
5922 ICS.Standard.setAsIdentityConversion();
5923 ICS.Standard.Second = SecondKind;
5924 ICS.Standard.setFromType(FromType);
5925 ICS.Standard.setAllToTypes(ImplicitParamType);
5926 ICS.Standard.ReferenceBinding = true;
5927 ICS.Standard.DirectBinding = true;
5928 ICS.Standard.IsLvalueReference = Method->getRefQualifier() != RQ_RValue;
5929 ICS.Standard.BindsToFunctionLvalue = false;
5930 ICS.Standard.BindsToRvalue = FromClassification.isRValue();
5931 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier
5933 return ICS;
5967 ImplicitConversionSequence ICS = TryObjectArgumentInitialization(
5970 if (ICS.isBad()) {
5971 switch (ICS.Bad.Kind) {
6013 if (ICS.Standard.Second == ICK_Derived_To_Base) {
6063 ImplicitConversionSequence ICS = TryContextuallyConvertToBool(*this, From);
6064 if (!ICS.isBad())
6065 return PerformImplicitConversion(From, Context.BoolTy, ICS,
6165 ImplicitConversionSequence ICS =
6174 switch (ICS.getKind()) {
6176 SCS = &ICS.Standard;
6180 SCS = &ICS.UserDefined.Before;
6182 SCS = &ICS.UserDefined.After;
6235 S.PerformImplicitConversion(From, T, ICS, AssignmentAction::Converting);
6425 ImplicitConversionSequence ICS
6436 switch (ICS.getKind()) {
6444 dropPointerConversion(ICS.UserDefined.After);
6448 dropPointerConversion(ICS.Standard);
6452 return ICS;
6460 ImplicitConversionSequence ICS =
6462 if (!ICS.isBad())
6463 return PerformImplicitConversion(From, Ty, ICS,
8162 ImplicitConversionSequence ICS =
8168 switch (ICS.getKind()) {
8170 Candidate.FinalConversion = ICS.Standard;
8177 GetConversionRank(ICS.Standard.Second) != ICR_Exact_Match) {
8189 ICS.Standard.First == ICK_Lvalue_To_Rvalue) {
10502 auto IsIllFormedConversion = [&](const ImplicitConversionSequence &ICS) {
10505 return ICS.isStandard() &&
10506 ICS.Standard.Second == ICK_Incompatible_Pointer_Conversion;
10511 hasDeprecatedStringLiteralToCharPtrConversion(ICS);
12323 for (const ImplicitConversionSequence &ICS : Cand->Conversions) {
12324 if (ICS.isBad()) break; // all meaningless after first invalid
12325 if (!ICS.isAmbiguous()) continue;
12327 ICS.DiagnoseAmbiguousConversion(
13112 // compatible pointer-to-function arguments that would be adjusted by ICS.