Lines Matching defs:ICS
1594 ImplicitConversionSequence ICS;
1599 ICS.setBad(BadConversionSequence::no_conversion, From, ToType);
1600 return ICS;
1606 switch (IsUserDefinedConversion(S, From, ToType, ICS.UserDefined,
1611 ICS.setUserDefined();
1620 = dyn_cast<CXXConstructorDecl>(ICS.UserDefined.ConversionFunction)) {
1630 DeclAccessPair Found = ICS.UserDefined.FoundConversionFunction;
1631 ICS.setStandard();
1632 ICS.Standard.setAsIdentityConversion();
1633 ICS.Standard.setFromType(From->getType());
1634 ICS.Standard.setAllToTypes(ToType);
1635 ICS.Standard.CopyConstructor = Constructor;
1636 ICS.Standard.FoundCopyConstructor = Found;
1638 ICS.Standard.Second = ICK_Derived_To_Base;
1644 ICS.setAmbiguous();
1645 ICS.Ambiguous.setFromType(From->getType());
1646 ICS.Ambiguous.setToType(ToType);
1650 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function);
1655 ICS.setBad(BadConversionSequence::no_conversion, From, ToType);
1659 return ICS;
1697 ImplicitConversionSequence ICS;
1699 ICS.Standard, CStyle, AllowObjCWritebackConversion)){
1700 ICS.setStandard();
1701 return ICS;
1705 ICS.setBad(BadConversionSequence::no_conversion, From, ToType);
1706 return ICS;
1720 ICS.setStandard();
1721 ICS.Standard.setAsIdentityConversion();
1722 ICS.Standard.setFromType(FromType);
1723 ICS.Standard.setAllToTypes(ToType);
1729 ICS.Standard.CopyConstructor = nullptr;
1733 ICS.Standard.Second = ICK_Derived_To_Base;
1735 return ICS;
1770 ImplicitConversionSequence ICS = ::TryImplicitConversion(
1777 return PerformImplicitConversion(From, ToType, ICS, Action);
3934 ImplicitConversionSequence ICS;
3938 IsUserDefinedConversion(*this, From, ToType, ICS.UserDefined,
4043 const ImplicitConversionSequence &ICS) {
4044 return (ICS.isStandard() && ICS.Standard.DeprecatedStringLiteralToCharPtr) ||
4045 (ICS.isUserDefined() &&
4046 ICS.UserDefined.Before.DeprecatedStringLiteralToCharPtr);
4912 FindConversionForRefInit(Sema &S, ImplicitConversionSequence &ICS,
4996 ICS.setUserDefined();
4997 ICS.UserDefined.Before = Best->Conversions[0].Standard;
4998 ICS.UserDefined.After = Best->FinalConversion;
4999 ICS.UserDefined.HadMultipleCandidates = HadMultipleCandidates;
5000 ICS.UserDefined.ConversionFunction = Best->Function;
5001 ICS.UserDefined.FoundConversionFunction = Best->FoundDecl;
5002 ICS.UserDefined.EllipsisConversion = false;
5003 assert(ICS.UserDefined.After.ReferenceBinding &&
5004 ICS.UserDefined.After.DirectBinding &&
5009 ICS.setAmbiguous();
5013 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function);
5036 ImplicitConversionSequence ICS;
5037 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType);
5061 ICS.setStandard();
5062 ICS.Standard.First = ICK_Identity;
5065 ICS.Standard.Second = (RefConv & Sema::ReferenceConversions::DerivedToBase)
5070 ICS.Standard.Dimension = ICK_Identity;
5074 ICS.Standard.Third = (RefConv &
5078 ICS.Standard.setFromType(T2);
5079 ICS.Standard.setToType(0, T2);
5080 ICS.Standard.setToType(1, T1);
5081 ICS.Standard.setToType(2, T1);
5082 ICS.Standard.ReferenceBinding = true;
5083 ICS.Standard.DirectBinding = BindsDirectly;
5084 ICS.Standard.IsLvalueReference = !isRValRef;
5085 ICS.Standard.BindsToFunctionLvalue = T2->isFunctionType();
5086 ICS.Standard.BindsToRvalue = InitCategory.isRValue();
5087 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier = false;
5088 ICS.Standard.ObjCLifetimeConversionBinding =
5090 ICS.Standard.CopyConstructor = nullptr;
5091 ICS.Standard.DeprecatedStringLiteralToCharPtr = false;
5118 return ICS;
5131 if (FindConversionForRefInit(S, ICS, DeclType, DeclLoc,
5134 return ICS;
5143 ICS.setBad(BadConversionSequence::lvalue_ref_to_rvalue, Init, DeclType);
5144 return ICS;
5163 return ICS;
5178 FindConversionForRefInit(S, ICS, DeclType, DeclLoc,
5185 if (ICS.isUserDefined() && isRValRef &&
5186 ICS.UserDefined.After.First == ICK_Lvalue_To_Rvalue)
5187 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType);
5189 return ICS;
5194 return ICS;
5221 return ICS;
5231 return ICS;
5237 ICS.setBad(BadConversionSequence::rvalue_ref_to_lvalue, Init, DeclType);
5238 return ICS;
5251 ICS = TryImplicitConversion(S, Init, T1, SuppressUserConversions,
5259 if (ICS.isStandard()) {
5260 ICS.Standard.ReferenceBinding = true;
5261 ICS.Standard.IsLvalueReference = !isRValRef;
5262 ICS.Standard.BindsToFunctionLvalue = false;
5263 ICS.Standard.BindsToRvalue = true;
5264 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier = false;
5265 ICS.Standard.ObjCLifetimeConversionBinding = false;
5266 } else if (ICS.isUserDefined()) {
5268 ICS.UserDefined.ConversionFunction->getReturnType()
5278 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType);
5279 return ICS;
5282 ICS.UserDefined.After.ReferenceBinding = true;
5283 ICS.UserDefined.After.IsLvalueReference = !isRValRef;
5284 ICS.UserDefined.After.BindsToFunctionLvalue = false;
5285 ICS.UserDefined.After.BindsToRvalue = !LValRefType;
5286 ICS.UserDefined.After.BindsImplicitObjectArgumentWithoutRefQualifier = false;
5287 ICS.UserDefined.After.ObjCLifetimeConversionBinding = false;
5290 return ICS;
5440 ImplicitConversionSequence ICS = TryCopyInitialization(
5447 if (CompareImplicitConversionSequences(S, From->getBeginLoc(), ICS,
5450 Result = ICS;
5646 ImplicitConversionSequence ICS =
5649 return !ICS.isBad();
5684 ImplicitConversionSequence ICS = TryCopyInitialization(
5687 if (ICS.isBad())
5688 ICS.Bad.FromExpr = nullptr;
5689 return ICS;
5712 ImplicitConversionSequence ICS;
5739 ICS.setBad(BadConversionSequence::bad_qualifiers,
5741 return ICS;
5748 ICS.setBad(BadConversionSequence::bad_qualifiers,
5750 return ICS;
5763 ICS.setBad(BadConversionSequence::unrelated_class,
5765 return ICS;
5777 ICS.setBad(BadConversionSequence::lvalue_ref_to_rvalue, FromType,
5779 return ICS;
5786 ICS.setBad(BadConversionSequence::rvalue_ref_to_lvalue, FromType,
5788 return ICS;
5794 ICS.setStandard();
5795 ICS.Standard.setAsIdentityConversion();
5796 ICS.Standard.Second = SecondKind;
5797 ICS.Standard.setFromType(FromType);
5798 ICS.Standard.setAllToTypes(ImplicitParamType);
5799 ICS.Standard.ReferenceBinding = true;
5800 ICS.Standard.DirectBinding = true;
5801 ICS.Standard.IsLvalueReference = Method->getRefQualifier() != RQ_RValue;
5802 ICS.Standard.BindsToFunctionLvalue = false;
5803 ICS.Standard.BindsToRvalue = FromClassification.isRValue();
5804 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier
5806 return ICS;
5838 ImplicitConversionSequence ICS = TryObjectArgumentInitialization(
5841 if (ICS.isBad()) {
5842 switch (ICS.Bad.Kind) {
5884 if (ICS.Standard.Second == ICK_Derived_To_Base) {
5934 ImplicitConversionSequence ICS = TryContextuallyConvertToBool(*this, From);
5935 if (!ICS.isBad())
5936 return PerformImplicitConversion(From, Context.BoolTy, ICS, AA_Converting);
6035 ImplicitConversionSequence ICS =
6044 switch (ICS.getKind()) {
6046 SCS = &ICS.Standard;
6050 SCS = &ICS.UserDefined.Before;
6052 SCS = &ICS.UserDefined.After;
6102 Result = S.PerformImplicitConversion(From, T, ICS, Sema::AA_Converting);
6285 ImplicitConversionSequence ICS
6296 switch (ICS.getKind()) {
6304 dropPointerConversion(ICS.UserDefined.After);
6308 dropPointerConversion(ICS.Standard);
6312 return ICS;
6320 ImplicitConversionSequence ICS =
6322 if (!ICS.isBad())
6323 return PerformImplicitConversion(From, Ty, ICS, AA_Converting);
7982 ImplicitConversionSequence ICS =
7988 switch (ICS.getKind()) {
7990 Candidate.FinalConversion = ICS.Standard;
7997 GetConversionRank(ICS.Standard.Second) != ICR_Exact_Match) {
8009 ICS.Standard.First == ICK_Lvalue_To_Rvalue) {
10321 auto IsIllFormedConversion = [&](const ImplicitConversionSequence &ICS) {
10324 return ICS.isStandard() &&
10325 ICS.Standard.Second == ICK_Incompatible_Pointer_Conversion;
10330 hasDeprecatedStringLiteralToCharPtrConversion(ICS);
12129 for (const ImplicitConversionSequence &ICS : Cand->Conversions) {
12130 if (ICS.isBad()) break; // all meaningless after first invalid
12131 if (!ICS.isAmbiguous()) continue;
12133 ICS.DiagnoseAmbiguousConversion(
12918 // compatible pointer-to-function arguments that would be adjusted by ICS.