Remove code in Microsoft.CSharp for casting from method groups. (dotnet/corefx#23371)
authorJon Hanna <jon@hackcraft.net>
Tue, 5 Sep 2017 20:48:09 +0000 (21:48 +0100)
committerVladimir Sadov <vsadov@microsoft.com>
Tue, 5 Sep 2017 20:48:09 +0000 (13:48 -0700)
As a method group cannot be cast to object, the casting from method
group to delegate that can be done in static code is not relevant, and
code related to such casts is never reached.

Remove it. Includes removal of ExprFuncPtr, and ERR_MethGrpToNonDel,
ERR_BadRetType, ERR_DelegateOnNullable & ERR_BadDelegateConstructor,
contributes to dotnet/corefx#22470

Commit migrated from https://github.com/dotnet/corefx/commit/ac9ccd4f02e0c4f2c887618048bcca4c33c89200

30 files changed:
src/libraries/Microsoft.CSharp/src/Microsoft.CSharp.csproj
src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Errors/ErrorCode.cs
src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Errors/ErrorFacts.cs
src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Conversion.cs
src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/ExprFactory.cs
src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/ExpressionKind.cs
src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/ImplicitConversion.cs
src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/PredefinedMembers.cs
src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Tree/MethodReference.cs [deleted file]
src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Tree/Visitors/ExprVisitorBase.cs
src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Tree/Visitors/ExpressionTreeRewriter.cs
src/libraries/Microsoft.CSharp/src/MultilingualResources/Microsoft.CSharp.de.xlf
src/libraries/Microsoft.CSharp/src/MultilingualResources/Microsoft.CSharp.es.xlf
src/libraries/Microsoft.CSharp/src/MultilingualResources/Microsoft.CSharp.fr.xlf
src/libraries/Microsoft.CSharp/src/MultilingualResources/Microsoft.CSharp.it.xlf
src/libraries/Microsoft.CSharp/src/MultilingualResources/Microsoft.CSharp.ja.xlf
src/libraries/Microsoft.CSharp/src/MultilingualResources/Microsoft.CSharp.ko.xlf
src/libraries/Microsoft.CSharp/src/MultilingualResources/Microsoft.CSharp.ru.xlf
src/libraries/Microsoft.CSharp/src/MultilingualResources/Microsoft.CSharp.zh-Hans.xlf
src/libraries/Microsoft.CSharp/src/MultilingualResources/Microsoft.CSharp.zh-Hant.xlf
src/libraries/Microsoft.CSharp/src/Resources/Strings.de.resx
src/libraries/Microsoft.CSharp/src/Resources/Strings.es.resx
src/libraries/Microsoft.CSharp/src/Resources/Strings.fr.resx
src/libraries/Microsoft.CSharp/src/Resources/Strings.it.resx
src/libraries/Microsoft.CSharp/src/Resources/Strings.ja.resx
src/libraries/Microsoft.CSharp/src/Resources/Strings.ko.resx
src/libraries/Microsoft.CSharp/src/Resources/Strings.resx
src/libraries/Microsoft.CSharp/src/Resources/Strings.ru.resx
src/libraries/Microsoft.CSharp/src/Resources/Strings.zh-Hans.resx
src/libraries/Microsoft.CSharp/src/Resources/Strings.zh-Hant.resx

index d66885a..c65e276 100644 (file)
     <Compile Include="Microsoft\CSharp\RuntimeBinder\Semantics\Tree\LocalVariable.cs" />
     <Compile Include="Microsoft\CSharp\RuntimeBinder\Semantics\Tree\MemberGroup.cs" />
     <Compile Include="Microsoft\CSharp\RuntimeBinder\Semantics\Tree\MethodInfo.cs" />
-    <Compile Include="Microsoft\CSharp\RuntimeBinder\Semantics\Tree\MethodReference.cs" />
     <Compile Include="Microsoft\CSharp\RuntimeBinder\Semantics\Tree\NamedArgumentSpecification.cs" />
     <Compile Include="Microsoft\CSharp\RuntimeBinder\Semantics\Tree\Property.cs" />
     <Compile Include="Microsoft\CSharp\RuntimeBinder\Semantics\Tree\PropertyInfo.cs" />
index 66e3d7d..0490b2b 100644 (file)
@@ -24,7 +24,6 @@ namespace Microsoft.CSharp.RuntimeBinder.Errors
         ERR_MethDelegateMismatch = 123,
         ERR_AssgLvalueExpected = 131,
         ERR_NoConstructors = 143,
-        ERR_BadDelegateConstructor = 148,
         ERR_PropertyLacksGet = 154,
         ERR_ObjectProhibited = 176,
         ERR_AssgReadonly = 191,
@@ -50,9 +49,7 @@ namespace Microsoft.CSharp.RuntimeBinder.Errors
         ERR_GenericConstraintNotSatisfiedNullableInterface = 313,
         ERR_GenericConstraintNotSatisfiedValType = 315,
         ERR_TypeVarCantBeNull = 403,
-        ERR_BadRetType = 407,
         ERR_CantInferMethTypeArgs = 411,
-        ERR_MethGrpToNonDel = 428,
         ERR_RefConstraintNotSatisfied = 452,
         ERR_ValConstraintNotSatisfied = 453,
         ERR_AmbigUDConv = 457,
@@ -77,7 +74,6 @@ namespace Microsoft.CSharp.RuntimeBinder.Errors
         ERR_RefReadonlyStatic2 = 1651,
         ERR_AssgReadonlyLocalCause = 1656,
         ERR_RefReadonlyLocalCause = 1657,
-        ERR_DelegateOnNullable = 1728,
         ERR_BadCtorArgCount = 1729,
         ERR_NonInvocableMemberCalled = 1955,
         ERR_NamedArgumentSpecificationBeforeFixedArgument = 5002,
index 002c7eb..6a9538c 100644 (file)
@@ -68,9 +68,6 @@ namespace Microsoft.CSharp.RuntimeBinder.Errors
                 case ErrorCode.ERR_NoConstructors:
                     codeStr = SR.NoConstructors;
                     break;
-                case ErrorCode.ERR_BadDelegateConstructor:
-                    codeStr = SR.BadDelegateConstructor;
-                    break;
                 case ErrorCode.ERR_PropertyLacksGet:
                     codeStr = SR.PropertyLacksGet;
                     break;
@@ -146,15 +143,9 @@ namespace Microsoft.CSharp.RuntimeBinder.Errors
                 case ErrorCode.ERR_TypeVarCantBeNull:
                     codeStr = SR.TypeVarCantBeNull;
                     break;
-                case ErrorCode.ERR_BadRetType:
-                    codeStr = SR.BadRetType;
-                    break;
                 case ErrorCode.ERR_CantInferMethTypeArgs:
                     codeStr = SR.CantInferMethTypeArgs;
                     break;
-                case ErrorCode.ERR_MethGrpToNonDel:
-                    codeStr = SR.MethGrpToNonDel;
-                    break;
                 case ErrorCode.ERR_RefConstraintNotSatisfied:
                     codeStr = SR.RefConstraintNotSatisfied;
                     break;
@@ -227,9 +218,6 @@ namespace Microsoft.CSharp.RuntimeBinder.Errors
                 case ErrorCode.ERR_RefReadonlyLocalCause:
                     codeStr = SR.RefReadonlyLocalCause;
                     break;
-                case ErrorCode.ERR_DelegateOnNullable:
-                    codeStr = SR.DelegateOnNullable;
-                    break;
                 case ErrorCode.ERR_BadCtorArgCount:
                     codeStr = SR.BadCtorArgCount;
                     break;
index 4fa7c20..6a6c886 100644 (file)
@@ -363,6 +363,7 @@ namespace Microsoft.CSharp.RuntimeBinder.Semantics
 
         private Expr mustConvertCore(Expr expr, ExprClass destExpr, CONVERTTYPE flags)
         {
+            Debug.Assert(!(expr is ExprMemberGroup));
             Expr exprResult;
             CType dest = destExpr.Type;
 
@@ -400,11 +401,6 @@ namespace Microsoft.CSharp.RuntimeBinder.Semantics
                     throw ErrorContext.Error(dest is TypeParameterType ? ErrorCode.ERR_TypeVarCantBeNull : ErrorCode.ERR_ValueCantBeNull, dest);
                 }
 
-                if (expr is ExprMemberGroup memGrp)
-                {
-                    BindGrpConversion(memGrp, dest, true);
-                }
-
                 // canCast => can't convert, but explicit exists and can be specified by the user (no anonymous types).
                 // !canCast => Generic "can't convert" error.
                 throw ErrorContext.Error(canCast(expr.Type, dest, flags) ? ErrorCode.ERR_NoImplicitConvCast : ErrorCode.ERR_NoImplicitConv, new ErrArg(expr.Type, ErrArgFlags.Unique), new ErrArg(dest, ErrArgFlags.Unique));
@@ -463,6 +459,7 @@ namespace Microsoft.CSharp.RuntimeBinder.Semantics
         // performs an explicit conversion if its possible. otherwise displays an error.
         private Expr mustCastCore(Expr expr, ExprClass destExpr, CONVERTTYPE flags)
         {
+            Debug.Assert(!(expr is ExprMemberGroup));
             Expr exprResult;
 
             CType dest = destExpr.Type;
@@ -530,14 +527,8 @@ namespace Microsoft.CSharp.RuntimeBinder.Semantics
                     {
                         throw ErrorContext.Error(ErrorCode.ERR_ValueCantBeNull, dest);
                     }
-                    else if (expr is ExprMemberGroup memGrp)
-                    {
-                        BindGrpConversion(memGrp, dest, true);
-                    }
-                    else
-                    {
-                        CantConvert(expr, dest);
-                    }
+
+                    CantConvert(expr, dest);
                 }
             }
         CANTCONVERT:
@@ -577,185 +568,6 @@ namespace Microsoft.CSharp.RuntimeBinder.Semantics
             return BindExplicitConversion(null, src, destExpr, dest, flags);
         }
 
-        /***************************************************************************************************
-            Convert a method group to a delegate type.
-
-            NOTE: Currently it is not well defined when there is an implicit conversion from a method
-            group to a delegate type. There are several possibilities. On the two extremes are:
-
-            (1) (Most permissive) When there is at least one applicable method in the method group.
-
-            (2) (Most restrictive) When all of the following are satisfied:
-                * Overload resolution does not produce an error
-                * The method's parameter types don't require any conversions other than implicit reference
-                  conversions.
-                * The method's return type is compatible.
-                * The method's constraints are satisfied.
-                * The method is not conditional.
-
-            For (1), it may be the case that an error is produced whenever the conversion is actually used.
-            For example, if the result of overload resolution is ambiguous or if the result of overload
-            resolution is a method with the wrong return result or with unsatisfied constraints.
-
-            For (2), the intent is that if the answer is yes, then an error is never produced.
-
-            Note that (2) is not monotone: adding a method to the method group may cause the answer
-            to go from yes to no. This has a very odd effect in certain situations:
-
-            Suppose:
-                * I1 and J1 are interfaces with I1 : J1.
-                * I2, J2 and K2 are interfaces with I2 : J2, K2.
-                * Di is a delegate type with signature void Di(Ii).
-                * A method group named F contains F(D1(I1)) and F(D2(I2)).
-                * There is another method group named M containing a subset of:
-                    void M(J1)
-                    void M(J2)
-                    void M(K2)
-
-            Under any of the definitions we're considering:
-
-                * If M is { M(J1), M(J2) } then F(M) is an error (ambiguous between F(D1) and F(D2)).
-                * If M is { M(J1), M(K2) } then F(M) is an error (ambiguous between F(D1) and F(D2)).
-                * If M is { M(J2), M(K2) } then F(M) is an error (M -> D2 is ambiguous).
-
-            If M is { M(J1), M(J2), M(K2) } what should F(M) be? It seems logical for F(M) to be ambiguous
-            in this case as well. However, under definition (2), there is no implicit conversion from M
-            to D2 (since overload resolution is ambiguous). Thus F(M) is unambiguously taken to mean
-            F(D1) applied to M(J1). Note that the user has just made the situation more ambiguous by having
-            all three methods in the method group, but we ignore this additional ambiguity and pick a
-            winner (rather arbitrarily).
-
-            We currently implement (1). The spec needs to be tightened up.
-        ***************************************************************************************************/
-        private bool BindGrpConversion(ExprMemberGroup grp, CType typeDst, bool fReportErrors)
-        {
-            ExprCall dummy;
-            return BindGrpConversion(grp, typeDst, false, out dummy, fReportErrors);
-        }
-
-        private bool BindGrpConversion(ExprMemberGroup grp, CType typeDst, bool needDest, out ExprCall pexprDst, bool fReportErrors)
-        {
-            pexprDst = null;
-
-            if (!typeDst.isDelegateType())
-            {
-                if (fReportErrors)
-                {
-                    throw ErrorContext.Error(ErrorCode.ERR_MethGrpToNonDel, grp.Name, typeDst);
-                }
-
-                return false;
-            }
-            AggregateType type = typeDst as AggregateType;
-            MethodSymbol methCtor = SymbolLoader.PredefinedMembers.FindDelegateConstructor(type.getAggregate(), fReportErrors);
-            if (methCtor == null)
-                return false;
-            // Now, find the invoke function on the delegate.
-            MethodSymbol methInvoke = SymbolLoader.LookupInvokeMeth(type.getAggregate());
-            Debug.Assert(methInvoke != null && methInvoke.isInvoke());
-            TypeArray @params = GetTypes().SubstTypeArray(methInvoke.Params, type);
-            CType typeRet = GetTypes().SubstType(methInvoke.RetType, type);
-            // Next, verify that the function has a suitable type for the invoke method.
-            MethPropWithInst mpwiWrap;
-            MethPropWithInst mpwiAmbig;
-
-            if (!BindGrpConversionCore(out mpwiWrap, BindingFlag.BIND_NOPARAMS, grp, ref @params, type, fReportErrors, out mpwiAmbig))
-            {
-                return false;
-            }
-
-            MethWithInst mwiWrap = new MethWithInst(mpwiWrap);
-            MethWithInst mwiAmbig = new MethWithInst(mpwiAmbig);
-
-            // From here on we should only return true.
-            if (!fReportErrors && !needDest)
-                return true;
-
-            // Note: We report errors below even if fReportErrors is false. Note however that we only
-            // get here if pexprDst is non-null.
-            if (mwiAmbig && !fReportErrors)
-            {
-                // Report the ambiguity, since BindGrpConversionCore didn't.
-                throw ErrorContext.Error(ErrorCode.ERR_AmbigCall, mwiWrap, mwiAmbig);
-            }
-            CType typeRetReal = GetTypes().SubstType(mwiWrap.Meth().RetType, mwiWrap.Ats, mwiWrap.TypeArgs);
-            if (typeRet != typeRetReal && !CConversions.FImpRefConv(GetSymbolLoader(), typeRetReal, typeRet))
-            {
-                throw ErrorContext.Error(ErrorCode.ERR_BadRetType, mwiWrap, typeRetReal);
-            }
-
-            TypeArray paramsReal = GetTypes().SubstTypeArray(mwiWrap.Meth().Params, mwiWrap.Ats, mwiWrap.TypeArgs);
-            if (paramsReal != @params)
-            {
-                for (int i = 0; i < paramsReal.Count; i++)
-                {
-                    CType param = @params[i];
-                    CType paramReal = paramsReal[i];
-
-                    if (param != paramReal && !CConversions.FImpRefConv(GetSymbolLoader(), param, paramReal))
-                    {
-                        throw ErrorContext.Error(ErrorCode.ERR_MethDelegateMismatch, mwiWrap, typeDst);
-                    }
-                }
-            }
-
-            Expr obj = grp.OptionalObject;
-            bool constrained;
-            PostBindMethod(ref mwiWrap, obj);
-            obj = AdjustMemberObject(mwiWrap, obj, out constrained);
-
-            Debug.Assert(mwiWrap.Meth().getKind() == SYMKIND.SK_MethodSymbol);
-            if (mwiWrap.TypeArgs.Count > 0)
-            {
-                // Check method type variable constraints.
-                TypeBind.CheckMethConstraints(GetSemanticChecker(), GetErrorContext(), mwiWrap);
-            }
-
-            if (!needDest)
-                return true;
-
-            ExprFuncPtr funcPtr = ExprFactory.CreateFunctionPointer(0, getVoidType(), null, mwiWrap);
-            if (!mwiWrap.Meth().isStatic)
-            {
-                if (mwiWrap.Meth().getClass().isPredefAgg(PredefinedType.PT_G_OPTIONAL))
-                {
-                    throw ErrorContext.Error(ErrorCode.ERR_DelegateOnNullable, mwiWrap);
-                }
-                funcPtr.OptionalObject = obj;
-                if (obj != null && obj.Type.fundType() != FUNDTYPE.FT_REF)
-                {
-                    // Must box the object before creating a delegate to it.
-                    obj = mustConvert(obj, GetPredefindType(PredefinedType.PT_OBJECT));
-                }
-            }
-            else
-            {
-                funcPtr.OptionalObject = null;
-                obj = ExprFactory.CreateNull();
-            }
-
-            MethWithInst mwi = new MethWithInst(methCtor, type);
-            grp.OptionalObject = null;
-            ExprCall call = ExprFactory.CreateCall(EXPRFLAG.EXF_NEWOBJCALL | EXPRFLAG.EXF_CANTBENULL, type, ExprFactory.CreateList(obj, funcPtr), grp/*pMemGroup*/, mwi);
-
-            pexprDst = call;
-            return true;
-        }
-
-        private bool BindGrpConversionCore(out MethPropWithInst pmpwi, BindingFlag bindFlags, ExprMemberGroup grp, ref TypeArray args, AggregateType atsDelegate, bool fReportErrors, out MethPropWithInst pmpwiAmbig)
-        {
-            ArgInfos argParam = new ArgInfos();
-            argParam.carg = args.Count;
-            argParam.types = args;
-            argParam.fHasExprs = false;
-            GroupToArgsBinder binder = new GroupToArgsBinder(this, bindFlags, grp, argParam, null, false, atsDelegate);
-            bool retval = binder.Bind(fReportErrors);
-            GroupToArgsBinderResult result = binder.GetResultsOfBind();
-            pmpwi = result.GetBestResult();
-            pmpwiAmbig = result.GetAmbiguousResult();
-            return retval;
-        }
-
         private bool BindImplicitConversion(Expr pSourceExpr, CType pSourceType, ExprClass pDestinationTypeExpr, CType pDestinationTypeForLambdaErrorReporting, CONVERTTYPE flags)
         {
             ImplicitConversion binder = new ImplicitConversion(this, pSourceExpr, pSourceType, pDestinationTypeExpr, false, flags);
index 7df63e8..99814e5 100644 (file)
@@ -27,9 +27,6 @@ namespace Microsoft.CSharp.RuntimeBinder.Semantics
         public ExprField CreateField(CType type, Expr optionalObject, FieldWithType field, bool isLValue) => 
             new ExprField(type, optionalObject, field, isLValue);
 
-        public ExprFuncPtr CreateFunctionPointer(EXPRFLAG flags, CType type, Expr obj, MethWithInst method) => 
-            new ExprFuncPtr(type, flags, obj, method);
-
         public ExprArrayInit CreateArrayInit(CType type, Expr arguments, Expr argumentDimensions, int[] dimSizes, int dimSize) => 
             new ExprArrayInit(type, arguments, argumentDimensions, dimSizes, dimSize);
 
index d6ea6f4..ac62995 100644 (file)
@@ -64,7 +64,7 @@ namespace Microsoft.CSharp.RuntimeBinder.Semantics
         //EK_ALIAS,
         // End type exprs.
         //EK_ERROR,
-        FunctionPointer,
+        //FunctionPointer,
         Property,
         Multi,
         MultiGet,
index ff0006d..5572f94 100644 (file)
@@ -170,15 +170,6 @@ namespace Microsoft.CSharp.RuntimeBinder.Semantics
                     default:
                         Debug.Fail($"Bad type symbol kind: {_typeSrc.GetTypeKind()}");
                         break;
-                    case TypeKind.TK_MethodGroupType:
-                        if (_exprSrc is ExprMemberGroup memGrp)
-                        {
-                            ExprCall outExpr;
-                            bool retVal = _binder.BindGrpConversion(memGrp, _typeDest, _needsExprDest, out outExpr, false);
-                            _exprDest = outExpr;
-                            return retVal;
-                        }
-                        return false;
                     case TypeKind.TK_VoidType:
                     case TypeKind.TK_ErrorType:
                     case TypeKind.TK_ParameterModifierType:
index 8b37ff1..510b88a 100644 (file)
@@ -101,7 +101,6 @@ namespace Microsoft.CSharp.RuntimeBinder.Semantics
 
 
         PM_EXPRESSION_INVOKE,
-        PM_METHODINFO_CREATEDELEGATE_TYPE_OBJECT,
 
         PM_G_OPTIONAL_CTOR,
         PM_G_OPTIONAL_GETVALUE,
@@ -214,46 +213,6 @@ namespace Microsoft.CSharp.RuntimeBinder.Semantics
             return GetOptPredefAgg(GetMethPredefType(method));
         }
 
-        // delegate specific helpers
-        private MethodSymbol FindDelegateConstructor(AggregateSymbol delegateType, int[] signature)
-        {
-            Debug.Assert(delegateType != null && delegateType.IsDelegate());
-            Debug.Assert(signature != null);
-
-            return LoadMethod(
-                                delegateType,
-                                signature,
-                                0,                          // meth ty vars
-                                GetPredefName(PredefinedName.PN_CTOR),
-                                ACCESS.ACC_PUBLIC,
-                                false,                      // MethodCallingConventionEnum.Static
-                                false);                     // MethodCallingConventionEnum.Virtual
-        }
-
-        private MethodSymbol FindDelegateConstructor(AggregateSymbol delegateType)
-        {
-            Debug.Assert(delegateType != null && delegateType.IsDelegate());
-
-            MethodSymbol ctor = FindDelegateConstructor(delegateType, s_DelegateCtorSignature1);
-            if (ctor == null)
-            {
-                ctor = FindDelegateConstructor(delegateType, s_DelegateCtorSignature2);
-            }
-
-            return ctor;
-        }
-
-        public MethodSymbol FindDelegateConstructor(AggregateSymbol delegateType, bool fReportErrors)
-        {
-            MethodSymbol ctor = FindDelegateConstructor(delegateType);
-            if (ctor == null && fReportErrors)
-            {
-                throw GetErrorContext().Error(ErrorCode.ERR_BadDelegateConstructor, delegateType);
-            }
-
-            return ctor;
-        }
-
         private PropertySymbol LoadProperty(PREDEFPROP property)
         {
             return LoadProperty(
@@ -515,9 +474,6 @@ namespace Microsoft.CSharp.RuntimeBinder.Semantics
                         IsMethVirtual(method));
         }
 
-        private static readonly int[] s_DelegateCtorSignature1 = { (int)PredefinedType.PT_VOID, 2, (int)PredefinedType.PT_OBJECT, (int)PredefinedType.PT_INTPTR };
-        private static readonly int[] s_DelegateCtorSignature2 = { (int)PredefinedType.PT_VOID, 2, (int)PredefinedType.PT_OBJECT, (int)PredefinedType.PT_UINTPTR };
-
         private static PredefinedName GetPropPredefName(PREDEFPROP property)
         {
             return GetPropInfo(property).name;
@@ -672,7 +628,6 @@ namespace Microsoft.CSharp.RuntimeBinder.Semantics
             new PredefinedMethodInfo(   PREDEFMETH.PM_EXPRESSION_NEWARRAYINIT,                         PredefinedType.PT_EXPRESSION,          PredefinedName.PN_NEWARRAYINIT,            MethodCallingConventionEnum.Static,     ACCESS.ACC_PUBLIC,     0,  new int[] { (int)PredefinedType.PT_NEWARRAYEXPRESSION, 2, (int)PredefinedType.PT_TYPE, (int)MethodSignatureEnum.SIG_SZ_ARRAY, (int)PredefinedType.PT_EXPRESSION }),
             new PredefinedMethodInfo(   PREDEFMETH.PM_EXPRESSION_PROPERTY,                             PredefinedType.PT_EXPRESSION,          PredefinedName.PN_EXPRESSION_PROPERTY,     MethodCallingConventionEnum.Static,     ACCESS.ACC_PUBLIC,     0,  new int[] { (int)PredefinedType.PT_MEMBEREXPRESSION, 2, (int)PredefinedType.PT_EXPRESSION, (int)PredefinedType.PT_PROPERTYINFO }),
             new PredefinedMethodInfo(   PREDEFMETH.PM_EXPRESSION_INVOKE,                               PredefinedType.PT_EXPRESSION,          PredefinedName.PN_INVOKE,                  MethodCallingConventionEnum.Static,     ACCESS.ACC_PUBLIC,     0,  new int[] { (int)PredefinedType.PT_INVOCATIONEXPRESSION, 2, (int)PredefinedType.PT_EXPRESSION, (int)MethodSignatureEnum.SIG_SZ_ARRAY, (int)PredefinedType.PT_EXPRESSION }),
-            new PredefinedMethodInfo(   PREDEFMETH.PM_METHODINFO_CREATEDELEGATE_TYPE_OBJECT,           PredefinedType.PT_METHODINFO,          PredefinedName.PN_CREATEDELEGATE,          MethodCallingConventionEnum.Virtual,    ACCESS.ACC_PUBLIC,     0,  new int[] { (int)PredefinedType.PT_DELEGATE, 2, (int)PredefinedType.PT_TYPE, (int)PredefinedType.PT_OBJECT}),
             new PredefinedMethodInfo(   PREDEFMETH.PM_G_OPTIONAL_CTOR,                                 PredefinedType.PT_G_OPTIONAL,          PredefinedName.PN_CTOR,                    MethodCallingConventionEnum.Instance,   ACCESS.ACC_PUBLIC,     0,  new int[] { (int)PredefinedType.PT_VOID, 1, (int)MethodSignatureEnum.SIG_CLASS_TYVAR, 0  }),
             new PredefinedMethodInfo(   PREDEFMETH.PM_G_OPTIONAL_GETVALUE,                             PredefinedType.PT_G_OPTIONAL,          PredefinedName.PN_GETVALUE,                MethodCallingConventionEnum.Instance,   ACCESS.ACC_PUBLIC,     0,  new int[] { (int)MethodSignatureEnum.SIG_CLASS_TYVAR, 0, 0  }),
             new PredefinedMethodInfo(   PREDEFMETH.PM_STRING_CONCAT_OBJECT_2,                          PredefinedType.PT_STRING,              PredefinedName.PN_CONCAT,                  MethodCallingConventionEnum.Static,     ACCESS.ACC_PUBLIC,     0,  new int[] { (int)PredefinedType.PT_STRING, 2, (int)PredefinedType.PT_OBJECT, (int)PredefinedType.PT_OBJECT  }),
diff --git a/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Tree/MethodReference.cs b/src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Tree/MethodReference.cs
deleted file mode 100644 (file)
index a1ee23c..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-using System.Diagnostics;
-
-namespace Microsoft.CSharp.RuntimeBinder.Semantics
-{
-    internal sealed class ExprFuncPtr : ExprWithType, IExprWithObject
-    {
-        public ExprFuncPtr(CType type, EXPRFLAG flags, Expr optionalObject, MethWithInst method) 
-            : base(ExpressionKind.FunctionPointer, type)
-        {
-            Debug.Assert(flags == 0);
-            Flags = flags;
-            OptionalObject = optionalObject;
-            MethWithInst = new MethWithInst(method);
-        }
-
-        public MethWithInst MethWithInst { get; }
-
-        public Expr OptionalObject { get; set; }
-    }
-}
index 2b74c03..19642ec 100644 (file)
@@ -122,8 +122,6 @@ namespace Microsoft.CSharp.RuntimeBinder.Semantics
                     return VisitCONSTANT(pExpr as ExprConstant);
                 case ExpressionKind.Class:
                     return VisitCLASS(pExpr as ExprClass);
-                case ExpressionKind.FunctionPointer:
-                    return VisitFUNCPTR(pExpr as ExprFuncPtr);
                 case ExpressionKind.Property:
                     return VisitPROP(pExpr as ExprProperty);
                 case ExpressionKind.Multi:
@@ -457,7 +455,6 @@ namespace Microsoft.CSharp.RuntimeBinder.Semantics
 
                 case ExpressionKind.Local:
                 case ExpressionKind.Class:
-                case ExpressionKind.FunctionPointer:
                 case ExpressionKind.MultiGet:
                 case ExpressionKind.Wrap:
                 case ExpressionKind.NoOp:
@@ -563,10 +560,6 @@ namespace Microsoft.CSharp.RuntimeBinder.Semantics
         {
             return VisitEXPR(pExpr);
         }
-        protected virtual Expr VisitFUNCPTR(ExprFuncPtr pExpr)
-        {
-            return VisitEXPR(pExpr);
-        }
         protected virtual Expr VisitMULTIGET(ExprMultiGet pExpr)
         {
             return VisitEXPR(pExpr);
index c72ac87..fff8ed3 100644 (file)
@@ -929,64 +929,12 @@ namespace Microsoft.CSharp.RuntimeBinder.Semantics
         {
             Debug.Assert(expr != null);
             Debug.Assert(expr.MethWithInst.Meth().IsConstructor());
-
-            // Realize a call to new DELEGATE(obj, FUNCPTR) as though it actually was
-            // (DELEGATE)CreateDelegate(typeof(DELEGATE), obj, GetMethInfoFromHandle(FUNCPTR))
-
-            if (IsDelegateConstructorCall(expr))
-            {
-                return GenerateDelegateConstructor(expr);
-            }
             Expr constructorInfo = GetExprFactory().CreateMethodInfo(expr.MethWithInst);
             Expr args = GenerateArgsList(expr.OptionalArguments);
             Expr Params = GenerateParamsArray(args, PredefinedType.PT_EXPRESSION);
             return GenerateCall(PREDEFMETH.PM_EXPRESSION_NEW, constructorInfo, Params);
         }
 
-        private Expr GenerateDelegateConstructor(ExprCall expr)
-        {
-            // In:
-            //
-            // new DELEGATE(obj, &FUNC)
-            //
-            // Out:
-            //
-            //  Cast(
-            //      Call(
-            //          null,
-            //          (MethodInfo)GetMethodFromHandle(&CreateDelegate),
-            //          new Expression[3]{
-            //              Constant(typeof(DELEGATE)),
-            //              transformed-object,
-            //              Constant((MethodInfo)GetMethodFromHandle(&FUNC)}),
-            //      typeof(DELEGATE))
-            //
-
-            Debug.Assert(expr != null);
-            Debug.Assert(expr.MethWithInst.Meth().IsConstructor());
-            Debug.Assert(expr.Type.isDelegateType());
-
-            ExprList origArgs = (ExprList)expr.OptionalArguments;
-            Debug.Assert(origArgs != null);
-            Expr target = origArgs.OptionalElement;
-            Debug.Assert(origArgs.OptionalNextListNode.Kind == ExpressionKind.FunctionPointer);
-            ExprFuncPtr funcptr = (ExprFuncPtr)origArgs.OptionalNextListNode;
-            Debug.Assert(funcptr != null);
-            MethodSymbol createDelegateMethod = GetPreDefMethod(PREDEFMETH.PM_METHODINFO_CREATEDELEGATE_TYPE_OBJECT);
-            AggregateType delegateType = GetSymbolLoader().GetPredefindType(PredefinedType.PT_DELEGATE);
-            MethWithInst mwi = new MethWithInst(createDelegateMethod, delegateType);
-
-            Expr instance = GenerateConstant(GetExprFactory().CreateMethodInfo(funcptr.MethWithInst));
-            Expr methinfo = GetExprFactory().CreateMethodInfo(mwi);
-            Expr param1 = GenerateConstant(CreateTypeOf(expr.Type));
-            Expr param2 = Visit(target);
-            Expr paramsList = GetExprFactory().CreateList(param1, param2);
-            Expr Params = GenerateParamsArray(paramsList, PredefinedType.PT_EXPRESSION);
-            Expr call = GenerateCall(PREDEFMETH.PM_EXPRESSION_CALL, instance, methinfo, Params);
-            Expr pTypeOf = CreateTypeOf(expr.Type);
-            return GenerateCall(PREDEFMETH.PM_EXPRESSION_CONVERT, call, pTypeOf);
-        }
-
         private Expr GenerateArgsList(Expr oldArgs)
         {
             Expr newArgs = null;
@@ -1165,21 +1113,6 @@ namespace Microsoft.CSharp.RuntimeBinder.Semantics
             return pExpr is ExprProperty prop && prop.MemberGroup.OptionalObject == pObject && pObject.Type is NullableType;
         }
 
-        private bool IsDelegateConstructorCall(Expr pExpr)
-        {
-            Debug.Assert(pExpr != null);
-            if (!(pExpr is ExprCall pCall))
-            {
-                return false;
-            }
-
-            return pCall.MethWithInst.Meth() != null &&
-                pCall.MethWithInst.Meth().IsConstructor() &&
-                pCall.Type.isDelegateType() &&
-                pCall.OptionalArguments != null &&
-                pCall.OptionalArguments is ExprList list &&
-                list.OptionalNextListNode.Kind == ExpressionKind.FunctionPointer;
-        }
         private static bool isEnumToDecimalConversion(CType argtype, CType desttype) =>
             argtype.StripNubs().isEnumType() && desttype.StripNubs().isPredefType(PredefinedType.PT_DECIMAL);
     }
index 091a822..4c1eec9 100644 (file)
           <source>The type '{0}' has no constructors defined</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Für den {0}-Typ sind keine Konstruktoren definiert.</target>
         </trans-unit>
-        <trans-unit id="BadDelegateConstructor" translate="yes" xml:space="preserve">
-          <source>The delegate '{0}' does not have a valid constructor</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">Der Delegat "{0}" enthält keinen gültigen Konstruktor.</target>
-        </trans-unit>
         <trans-unit id="PropertyLacksGet" translate="yes" xml:space="preserve">
           <source>The property or indexer '{0}' cannot be used in this context because it lacks the get accessor</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Die Eigenschaft oder der Indexer "{0}" kann in diesem Kontext nicht verwendet werden, weil der get-Accessor fehlt.</target>
           <source>Cannot convert null to type parameter '{0}' because it could be a non-nullable value type. Consider using 'default({0})' instead.</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">NULL kann nicht in den {0}-Typparameter konvertiert werden, da dieser Werttyp möglicherweise nicht auf NULL festgelegt werden kann. Verwenden Sie stattdessen ggf. default({0}).</target>
         </trans-unit>
-        <trans-unit id="BadRetType" translate="yes" xml:space="preserve">
-          <source>'{1} {0}' has the wrong return type</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">Der Rückgabetyp von {1} {0} ist falsch.</target>
-        </trans-unit>
         <trans-unit id="CantInferMethTypeArgs" translate="yes" xml:space="preserve">
           <source>The type arguments for method '{0}' cannot be inferred from the usage. Try specifying the type arguments explicitly.</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Die Typargumente der {0}-Methode können nicht per Rückschluss aus der Syntax abgeleitet werden. Geben Sie die Typargumente explizit an.</target>
         </trans-unit>
-        <trans-unit id="MethGrpToNonDel" translate="yes" xml:space="preserve">
-          <source>Cannot convert method group '{0}' to non-delegate type '{1}'. Did you intend to invoke the method?</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">Die {0}-Methodengruppe kann nicht in den Nichtdelegattyp "{1}" konvertiert werden. Wollten Sie die Methode aufrufen?</target>
-        </trans-unit>
         <trans-unit id="RefConstraintNotSatisfied" translate="yes" xml:space="preserve">
           <source>The type '{2}' must be a reference type in order to use it as parameter '{1}' in the generic type or method '{0}'</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Der {2}-Typ muss ein Referenztyp sein, damit er als {1}-Parameter im generischen Typ oder in der generischen {0}-Methode verwendet werden kann.</target>
           <source>Cannot pass '{0}' as a ref or out argument because it is a '{1}'</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">{0} ist ein(e) {1} und kann daher nicht als ref- oder out-Argument übergeben werden.</target>
         </trans-unit>
-        <trans-unit id="DelegateOnNullable" translate="yes" xml:space="preserve">
-          <source>Cannot bind delegate to '{0}' because it is a member of 'System.Nullable<it id="1" pos="open">&lt;T&gt;</it>'</source>
-          <target state="needs-review-translation" state-qualifier="mt-suggestion">Kann Delegaten "{0}" keine Bindung an weil es ein Mitglied von "System.Nullable<it id="1" pos="open">&lt;T&gt;</it>ist"</target>
-        </trans-unit>
         <trans-unit id="BadCtorArgCount" translate="yes" xml:space="preserve">
           <source>'{0}' does not contain a constructor that takes '{1}' arguments</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">"{0}" enthält keinen Konstruktor, der {1}-Argumente akzeptiert.</target>
index a06e935..6e6a6c2 100644 (file)
           <source>The type '{0}' has no constructors defined</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">El tipo '{0}' no tiene constructores definidos.</target>
         </trans-unit>
-        <trans-unit id="BadDelegateConstructor" translate="yes" xml:space="preserve">
-          <source>The delegate '{0}' does not have a valid constructor</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">El delegado '{0}' no tiene un constructor válido</target>
-        </trans-unit>
         <trans-unit id="PropertyLacksGet" translate="yes" xml:space="preserve">
           <source>The property or indexer '{0}' cannot be used in this context because it lacks the get accessor</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">La propiedad o el indizador '{0}' no se puede usar en este contexto porque carece del descriptor de acceso get.</target>
           <source>Cannot convert null to type parameter '{0}' because it could be a non-nullable value type. Consider using 'default({0})' instead.</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">No se puede convertir NULL en el parámetro de tipo '{0}' porque podría ser un tipo de valor que no acepta valores NULL. Use 'default({0})' en su lugar.</target>
         </trans-unit>
-        <trans-unit id="BadRetType" translate="yes" xml:space="preserve">
-          <source>'{1} {0}' has the wrong return type</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">'{1} {0}' es un tipo de valor devuelto equivocado</target>
-        </trans-unit>
         <trans-unit id="CantInferMethTypeArgs" translate="yes" xml:space="preserve">
           <source>The type arguments for method '{0}' cannot be inferred from the usage. Try specifying the type arguments explicitly.</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Los argumentos de tipo para el método '{0}' no se pueden inferir a partir del uso. Intente especificar los argumentos de tipo explícitamente.</target>
         </trans-unit>
-        <trans-unit id="MethGrpToNonDel" translate="yes" xml:space="preserve">
-          <source>Cannot convert method group '{0}' to non-delegate type '{1}'. Did you intend to invoke the method?</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">No se puede convertir el grupo de métodos '{0}' en tipo no delegado '{1}'. ¿Intentó invocar el método?</target>
-        </trans-unit>
         <trans-unit id="RefConstraintNotSatisfied" translate="yes" xml:space="preserve">
           <source>The type '{2}' must be a reference type in order to use it as parameter '{1}' in the generic type or method '{0}'</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">El tipo '{2}' debe ser un tipo de referencia para poder usarlo como parámetro '{1}' en el tipo o método genérico '{0}'.</target>
           <source>Cannot pass '{0}' as a ref or out argument because it is a '{1}'</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">No se puede pasar '{0}' como argumento out o ref porque es '{1}'.</target>
         </trans-unit>
-        <trans-unit id="DelegateOnNullable" translate="yes" xml:space="preserve">
-          <source>Cannot bind delegate to '{0}' because it is a member of 'System.Nullable<it id="1" pos="open">&lt;T&gt;</it>'</source>
-          <target state="needs-review-translation" state-qualifier="mt-suggestion">No se puede enlazar el delegado para '{0}' porque es un miembro de 'System.Nullable<it id="1" pos="open">&lt;T&gt;</it>'</target>
-        </trans-unit>
         <trans-unit id="BadCtorArgCount" translate="yes" xml:space="preserve">
           <source>'{0}' does not contain a constructor that takes '{1}' arguments</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">'{0}' no contiene un constructor que tome '{1}' argumentos</target>
index ada4e36..7451594 100644 (file)
           <source>The type '{0}' has no constructors defined</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Aucun constructeur n'est défini pour le type '{0}'</target>
         </trans-unit>
-        <trans-unit id="BadDelegateConstructor" translate="yes" xml:space="preserve">
-          <source>The delegate '{0}' does not have a valid constructor</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">Le délégué '{0}' n'a pas de constructeur valide</target>
-        </trans-unit>
         <trans-unit id="PropertyLacksGet" translate="yes" xml:space="preserve">
           <source>The property or indexer '{0}' cannot be used in this context because it lacks the get accessor</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Impossible d'utiliser la propriété ou l'indexeur '{0}' dans ce contexte, car il lui manque l'accesseur get</target>
           <source>Cannot convert null to type parameter '{0}' because it could be a non-nullable value type. Consider using 'default({0})' instead.</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Impossible de convertir null en paramètre de type '{0}' car il peut s'agir d'un type valeur qui n'autorise pas les valeurs null. Utilisez 'default({0})' à la place.</target>
         </trans-unit>
-        <trans-unit id="BadRetType" translate="yes" xml:space="preserve">
-          <source>'{1} {0}' has the wrong return type</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">'{1} {0}' n'a pas le type de retour correct</target>
-        </trans-unit>
         <trans-unit id="CantInferMethTypeArgs" translate="yes" xml:space="preserve">
           <source>The type arguments for method '{0}' cannot be inferred from the usage. Try specifying the type arguments explicitly.</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Impossible de déduire les arguments de type pour la méthode '{0}' à partir de l'utilisation. Essayez de spécifier les arguments de type de façon explicite.</target>
         </trans-unit>
-        <trans-unit id="MethGrpToNonDel" translate="yes" xml:space="preserve">
-          <source>Cannot convert method group '{0}' to non-delegate type '{1}'. Did you intend to invoke the method?</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">Impossible de convertir le groupe de méthodes '{0}' en type non-délégué '{1}'. Souhaitiez-vous appeler la méthode ?</target>
-        </trans-unit>
         <trans-unit id="RefConstraintNotSatisfied" translate="yes" xml:space="preserve">
           <source>The type '{2}' must be a reference type in order to use it as parameter '{1}' in the generic type or method '{0}'</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Le type '{2}' doit être un type référence afin d'être utilisé comme paramètre '{1}' dans le type ou la méthode générique '{0}'</target>
           <source>Cannot pass '{0}' as a ref or out argument because it is a '{1}'</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Impossible de passer '{0}' en tant qu'argument ref ou out, car il s'agit d'un '{1}'</target>
         </trans-unit>
-        <trans-unit id="DelegateOnNullable" translate="yes" xml:space="preserve">
-          <source>Cannot bind delegate to '{0}' because it is a member of 'System.Nullable<it id="1" pos="open">&lt;T&gt;</it>'</source>
-          <target state="needs-review-translation" state-qualifier="mt-suggestion">Impossible de lier délégué à « {0} » parce que c'est un membre de « System.Nullable<it id="1" pos="open">&lt;T&gt;</it>»</target>
-        </trans-unit>
         <trans-unit id="BadCtorArgCount" translate="yes" xml:space="preserve">
           <source>'{0}' does not contain a constructor that takes '{1}' arguments</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">'{0}' ne contient pas de constructeur qui accepte des arguments '{1}'</target>
index 2cd11b7..db89537 100644 (file)
           <source>The type '{0}' has no constructors defined</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Per il tipo '{0}' non sono definiti costruttori</target>
         </trans-unit>
-        <trans-unit id="BadDelegateConstructor" translate="yes" xml:space="preserve">
-          <source>The delegate '{0}' does not have a valid constructor</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">Il delegato '{0}' non presenta un costruttore valido</target>
-        </trans-unit>
         <trans-unit id="PropertyLacksGet" translate="yes" xml:space="preserve">
           <source>The property or indexer '{0}' cannot be used in this context because it lacks the get accessor</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Impossibile utilizzare la proprietà o l'indicizzatore '{0}' in questo contesto perché manca la funzione di accesso get.</target>
           <source>Cannot convert null to type parameter '{0}' because it could be a non-nullable value type. Consider using 'default({0})' instead.</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Impossibile convertire il valore Null nel parametro di tipo '{0}' perché potrebbe essere un tipo di valore non nullable. Si consiglia di utilizzare 'default({0})'.</target>
         </trans-unit>
-        <trans-unit id="BadRetType" translate="yes" xml:space="preserve">
-          <source>'{1} {0}' has the wrong return type</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">Il tipo restituito di '{1} {0}' è errato</target>
-        </trans-unit>
         <trans-unit id="CantInferMethTypeArgs" translate="yes" xml:space="preserve">
           <source>The type arguments for method '{0}' cannot be inferred from the usage. Try specifying the type arguments explicitly.</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Impossibile dedurre gli argomenti di tipo per il metodo '{0}' dall'utilizzo. Provare a specificare gli argomenti di tipo in modo esplicito.</target>
         </trans-unit>
-        <trans-unit id="MethGrpToNonDel" translate="yes" xml:space="preserve">
-          <source>Cannot convert method group '{0}' to non-delegate type '{1}'. Did you intend to invoke the method?</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">Impossibile convertire il gruppo di metodi '{0}' nel tipo non delegato '{1}'. Si desiderava richiamare il metodo?</target>
-        </trans-unit>
         <trans-unit id="RefConstraintNotSatisfied" translate="yes" xml:space="preserve">
           <source>The type '{2}' must be a reference type in order to use it as parameter '{1}' in the generic type or method '{0}'</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">È necessario che il tipo '{2}' sia un tipo di riferimento per essere utilizzato come parametro '{1}' nel tipo generico o nel metodo '{0}'</target>
           <source>Cannot pass '{0}' as a ref or out argument because it is a '{1}'</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Impossibile passare '{0}' come argomento ref o out perché è '{1}'</target>
         </trans-unit>
-        <trans-unit id="DelegateOnNullable" translate="yes" xml:space="preserve">
-          <source>Cannot bind delegate to '{0}' because it is a member of 'System.Nullable<it id="1" pos="open">&lt;T&gt;</it>'</source>
-          <target state="needs-review-translation" state-qualifier="mt-suggestion">Non è possibile associare il delegato a '{0}' perché è un membro di 'System. Nullable<it id="1" pos="open">&lt;T&gt;</it>'</target>
-        </trans-unit>
         <trans-unit id="BadCtorArgCount" translate="yes" xml:space="preserve">
           <source>'{0}' does not contain a constructor that takes '{1}' arguments</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">'{0}' non contiene un costruttore che accetta argomenti '{1}'</target>
index c44258e..dad6b14 100644 (file)
           <source>The type '{0}' has no constructors defined</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">型 '{0}' のコンストラクターが定義されていません</target>
         </trans-unit>
-        <trans-unit id="BadDelegateConstructor" translate="yes" xml:space="preserve">
-          <source>The delegate '{0}' does not have a valid constructor</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">デリゲート '{0}' には有効なコンストラクターがありません</target>
-        </trans-unit>
         <trans-unit id="PropertyLacksGet" translate="yes" xml:space="preserve">
           <source>The property or indexer '{0}' cannot be used in this context because it lacks the get accessor</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">get アクセサーがないため、プロパティまたはインデクサー '{0}' をこのコンテキストで使用することはできません</target>
           <source>Cannot convert null to type parameter '{0}' because it could be a non-nullable value type. Consider using 'default({0})' instead.</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Null 非許容の値型である可能性があるため、Null を型パラメーター '{0}' に変換できません。'default({0})' を使用してください。</target>
         </trans-unit>
-        <trans-unit id="BadRetType" translate="yes" xml:space="preserve">
-          <source>'{1} {0}' has the wrong return type</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">'{1} {0}' には、不適切な戻り値の型が指定されています</target>
-        </trans-unit>
         <trans-unit id="CantInferMethTypeArgs" translate="yes" xml:space="preserve">
           <source>The type arguments for method '{0}' cannot be inferred from the usage. Try specifying the type arguments explicitly.</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">メソッド '{0}' の型引数を使い方から推論することはできません。型引数を明示的に指定してください。</target>
         </trans-unit>
-        <trans-unit id="MethGrpToNonDel" translate="yes" xml:space="preserve">
-          <source>Cannot convert method group '{0}' to non-delegate type '{1}'. Did you intend to invoke the method?</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">メソッド グループ '{0}' を非デリゲート型 '{1}' に変換することはできません。このメソッドを呼び出しますか?</target>
-        </trans-unit>
         <trans-unit id="RefConstraintNotSatisfied" translate="yes" xml:space="preserve">
           <source>The type '{2}' must be a reference type in order to use it as parameter '{1}' in the generic type or method '{0}'</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">型 '{2}' は、ジェネリック型のパラメーター '{1}'、またはメソッド '{0}' として使用するために、参照型でなければなりません</target>
           <source>Cannot pass '{0}' as a ref or out argument because it is a '{1}'</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">'{1}' であるため、'{0}' は ref または out 引数として渡せません</target>
         </trans-unit>
-        <trans-unit id="DelegateOnNullable" translate="yes" xml:space="preserve">
-          <source>Cannot bind delegate to '{0}' because it is a member of 'System.Nullable<it id="1" pos="open">&lt;T&gt;</it>'</source>
-          <target state="needs-review-translation" state-qualifier="mt-suggestion">'System.Nullable<it id="1" pos="open">&lt;T&gt;</it>' のメンバーであるために、'{0}' のデリゲートをバインドできません。</target>
-        </trans-unit>
         <trans-unit id="BadCtorArgCount" translate="yes" xml:space="preserve">
           <source>'{0}' does not contain a constructor that takes '{1}' arguments</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">'{0}' に、引数を '{1}' 個指定できるコンストラクターがありません</target>
index 0bed074..96bef67 100644 (file)
           <source>The type '{0}' has no constructors defined</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">'{0}' 형식에 정의된 생성자가 없습니다.</target>
         </trans-unit>
-        <trans-unit id="BadDelegateConstructor" translate="yes" xml:space="preserve">
-          <source>The delegate '{0}' does not have a valid constructor</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">'{0}' 대리자에 올바른 생성자가 없습니다.</target>
-        </trans-unit>
         <trans-unit id="PropertyLacksGet" translate="yes" xml:space="preserve">
           <source>The property or indexer '{0}' cannot be used in this context because it lacks the get accessor</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">'{0}' 속성 또는 인덱서는 get 접근자가 없으므로 이 컨텍스트에서 사용할 수 없습니다.</target>
           <source>Cannot convert null to type parameter '{0}' because it could be a non-nullable value type. Consider using 'default({0})' instead.</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">null을 허용하지 않는 값 형식일 수 있으므로 null을 형식 매개 변수 '{0}'(으)로 변환할 수 없습니다. 대신 'default({0})'를 사용하십시오.</target>
         </trans-unit>
-        <trans-unit id="BadRetType" translate="yes" xml:space="preserve">
-          <source>'{1} {0}' has the wrong return type</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">'{1} {0}'에 잘못된 반환 형식이 있습니다.</target>
-        </trans-unit>
         <trans-unit id="CantInferMethTypeArgs" translate="yes" xml:space="preserve">
           <source>The type arguments for method '{0}' cannot be inferred from the usage. Try specifying the type arguments explicitly.</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">'{0}' 메서드의 형식 인수를 유추할 수 없습니다. 형식 인수를 명시적으로 지정하십시오.</target>
         </trans-unit>
-        <trans-unit id="MethGrpToNonDel" translate="yes" xml:space="preserve">
-          <source>Cannot convert method group '{0}' to non-delegate type '{1}'. Did you intend to invoke the method?</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">'{0}' 메서드 그룹을 비대리자 형식 '{1}'(으)로 변환할 수 없습니다. 메서드를 호출하시겠습니까?</target>
-        </trans-unit>
         <trans-unit id="RefConstraintNotSatisfied" translate="yes" xml:space="preserve">
           <source>The type '{2}' must be a reference type in order to use it as parameter '{1}' in the generic type or method '{0}'</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">제네릭 형식 또는 메서드 '{0}'에서 '{2}' 형식을 '{1}' 매개 변수로 사용하려면 해당 형식이 참조 형식이어야 합니다.</target>
           <source>Cannot pass '{0}' as a ref or out argument because it is a '{1}'</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">'{0}'은(는) '{1}'이므로 ref 또는 out 인수로 전달할 수 없습니다.</target>
         </trans-unit>
-        <trans-unit id="DelegateOnNullable" translate="yes" xml:space="preserve">
-          <source>Cannot bind delegate to '{0}' because it is a member of 'System.Nullable<it id="1" pos="open">&lt;T&gt;</it>'</source>
-          <target state="needs-review-translation" state-qualifier="mt-suggestion">그것 'System.Nullable<it id="1" pos="open">&lt;T&gt;</it>'의 멤버 이므로 ' (0) '에 대리자를 바인딩할 수 없습니다.</target>
-        </trans-unit>
         <trans-unit id="BadCtorArgCount" translate="yes" xml:space="preserve">
           <source>'{0}' does not contain a constructor that takes '{1}' arguments</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">'{0}'에 '{1}'개의 인수를 사용하는 생성자가 없습니다.</target>
index 26dac41..bee9fc7 100644 (file)
           <source>The type '{0}' has no constructors defined</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Для типа "{0}" нет определенных конструкторов</target>
         </trans-unit>
-        <trans-unit id="BadDelegateConstructor" translate="yes" xml:space="preserve">
-          <source>The delegate '{0}' does not have a valid constructor</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">Делегат "{0}" не имеет допустимого конструктора</target>
-        </trans-unit>
         <trans-unit id="PropertyLacksGet" translate="yes" xml:space="preserve">
           <source>The property or indexer '{0}' cannot be used in this context because it lacks the get accessor</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">The property or indexer "{0}" cannot be used in this context because it lacks the get accessor</target>
           <source>Cannot convert null to type parameter '{0}' because it could be a non-nullable value type. Consider using 'default({0})' instead.</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Cannot convert null to type parameter "{0}" because it could be a non-nullable value type. Вместо этого рекомендуется использовать "default({0})".</target>
         </trans-unit>
-        <trans-unit id="BadRetType" translate="yes" xml:space="preserve">
-          <source>'{1} {0}' has the wrong return type</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">"{1} {0}" имеет неправильный возвращаемый тип</target>
-        </trans-unit>
         <trans-unit id="CantInferMethTypeArgs" translate="yes" xml:space="preserve">
           <source>The type arguments for method '{0}' cannot be inferred from the usage. Try specifying the type arguments explicitly.</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">The type arguments for method "{0}" cannot be inferred from the usage. Попытайтесь явно определить аргументы-типы.</target>
         </trans-unit>
-        <trans-unit id="MethGrpToNonDel" translate="yes" xml:space="preserve">
-          <source>Cannot convert method group '{0}' to non-delegate type '{1}'. Did you intend to invoke the method?</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">Не удается преобразовать группу методов "{0}" в тип, не являющийся делегатом "{1}". Предполагается ли вызывать этот метод?</target>
-        </trans-unit>
         <trans-unit id="RefConstraintNotSatisfied" translate="yes" xml:space="preserve">
           <source>The type '{2}' must be a reference type in order to use it as parameter '{1}' in the generic type or method '{0}'</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Для использования в качестве параметра "{1}" в универсальном типе или методе "{0}" тип "{2}" должен быть ссылочным типом</target>
           <source>Cannot pass '{0}' as a ref or out argument because it is a '{1}'</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">Не удалось передать "{0}" как ссылку или аргумент out, так как это "{1}"</target>
         </trans-unit>
-        <trans-unit id="DelegateOnNullable" translate="yes" xml:space="preserve">
-          <source>Cannot bind delegate to '{0}' because it is a member of 'System.Nullable<it id="1" pos="open">&lt;T&gt;</it>'</source>
-          <target state="needs-review-translation" state-qualifier="mt-suggestion">Не удается привязать делегат '{0}', потому что он является членом «System.Nullable<it id="1" pos="open">&lt;T&gt;</it>»</target>
-        </trans-unit>
         <trans-unit id="BadCtorArgCount" translate="yes" xml:space="preserve">
           <source>'{0}' does not contain a constructor that takes '{1}' arguments</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">"{0}" не содержит конструктор, принимающий аргументов: {1}</target>
index bdd099f..ae7fe86 100644 (file)
           <source>The type '{0}' has no constructors defined</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">类型“{0}”未定义构造函数</target>
         </trans-unit>
-        <trans-unit id="BadDelegateConstructor" translate="yes" xml:space="preserve">
-          <source>The delegate '{0}' does not have a valid constructor</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">委托“{0}”没有有效的构造函数</target>
-        </trans-unit>
         <trans-unit id="PropertyLacksGet" translate="yes" xml:space="preserve">
           <source>The property or indexer '{0}' cannot be used in this context because it lacks the get accessor</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">属性或索引器“{0}”不能用在此上下文中,因为它缺少 get 访问器</target>
           <source>Cannot convert null to type parameter '{0}' because it could be a non-nullable value type. Consider using 'default({0})' instead.</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">无法将 null 转换为类型参数“{0}”,因为它可能是不可以为 null 的值类型。请考虑改用“default({0})”。</target>
         </trans-unit>
-        <trans-unit id="BadRetType" translate="yes" xml:space="preserve">
-          <source>'{1} {0}' has the wrong return type</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">“{1} {0}”的返回类型错误</target>
-        </trans-unit>
         <trans-unit id="CantInferMethTypeArgs" translate="yes" xml:space="preserve">
           <source>The type arguments for method '{0}' cannot be inferred from the usage. Try specifying the type arguments explicitly.</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">无法从用法中推断出方法“{0}”的类型参数。请尝试显式指定类型参数。</target>
         </trans-unit>
-        <trans-unit id="MethGrpToNonDel" translate="yes" xml:space="preserve">
-          <source>Cannot convert method group '{0}' to non-delegate type '{1}'. Did you intend to invoke the method?</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">无法将方法组“{0}”转换为非委托类型“{1}”。是否希望调用此方法?</target>
-        </trans-unit>
         <trans-unit id="RefConstraintNotSatisfied" translate="yes" xml:space="preserve">
           <source>The type '{2}' must be a reference type in order to use it as parameter '{1}' in the generic type or method '{0}'</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">类型“{2}”必须是引用类型才能用作泛型类型或方法“{0}”中的参数“{1}”</target>
           <source>Cannot pass '{0}' as a ref or out argument because it is a '{1}'</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">“{0}”是一个“{1}”,无法作为 ref 或 out 参数进行传递</target>
         </trans-unit>
-        <trans-unit id="DelegateOnNullable" translate="yes" xml:space="preserve">
-          <source>Cannot bind delegate to '{0}' because it is a member of 'System.Nullable<it id="1" pos="open">&lt;T&gt;</it>'</source>
-          <target state="needs-review-translation" state-qualifier="mt-suggestion">不能将委托绑定到 '{0}',因为它是 'System.Nullable<it id="1" pos="open">&lt;T&gt;</it>' 成员</target>
-        </trans-unit>
         <trans-unit id="BadCtorArgCount" translate="yes" xml:space="preserve">
           <source>'{0}' does not contain a constructor that takes '{1}' arguments</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">“{0}”不包含采用“{1}”个参数的构造函数</target>
index d7c0f52..87f7bb9 100644 (file)
           <source>The type '{0}' has no constructors defined</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">型別 '{0}' 沒有已定義的建構函式</target>
         </trans-unit>
-        <trans-unit id="BadDelegateConstructor" translate="yes" xml:space="preserve">
-          <source>The delegate '{0}' does not have a valid constructor</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">委派 '{0}' 沒有有效的建構函式</target>
-        </trans-unit>
         <trans-unit id="PropertyLacksGet" translate="yes" xml:space="preserve">
           <source>The property or indexer '{0}' cannot be used in this context because it lacks the get accessor</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">無法於此內容中使用屬性或索引子 '{0}',因為其欠缺 get 存取子</target>
           <source>Cannot convert null to type parameter '{0}' because it could be a non-nullable value type. Consider using 'default({0})' instead.</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">無法將 null 轉換成型別參數 '{0}',因為它是不可為 null 的實值型別。請考慮使用 'default({0})' 代替。</target>
         </trans-unit>
-        <trans-unit id="BadRetType" translate="yes" xml:space="preserve">
-          <source>'{1} {0}' has the wrong return type</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">'{1} {0}' 的傳回型別錯誤</target>
-        </trans-unit>
         <trans-unit id="CantInferMethTypeArgs" translate="yes" xml:space="preserve">
           <source>The type arguments for method '{0}' cannot be inferred from the usage. Try specifying the type arguments explicitly.</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">方法 '{0}' 的型別引數不能從使用方式推斷。請嘗試明確指定型別引數。</target>
         </trans-unit>
-        <trans-unit id="MethGrpToNonDel" translate="yes" xml:space="preserve">
-          <source>Cannot convert method group '{0}' to non-delegate type '{1}'. Did you intend to invoke the method?</source>
-          <target state="needs-review-translation" state-qualifier="tm-suggestion">無法將方法群組 '{0}' 轉換為非委派型別 '{1}'。您是否想要叫用這個方法?</target>
-        </trans-unit>
         <trans-unit id="RefConstraintNotSatisfied" translate="yes" xml:space="preserve">
           <source>The type '{2}' must be a reference type in order to use it as parameter '{1}' in the generic type or method '{0}'</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">型別 '{2}' 必須是參考型別,才能在泛型型別或方法 '{0}' 中做為參數 '{1}' 使用</target>
           <source>Cannot pass '{0}' as a ref or out argument because it is a '{1}'</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">無法將 '{0}' 當做 ref 或 out 引數傳遞,因為它是 '{1}'</target>
         </trans-unit>
-        <trans-unit id="DelegateOnNullable" translate="yes" xml:space="preserve">
-          <source>Cannot bind delegate to '{0}' because it is a member of 'System.Nullable<it id="1" pos="open">&lt;T&gt;</it>'</source>
-          <target state="needs-review-translation" state-qualifier="mt-suggestion">不能將委託綁定到 '{0}',因為它是 'System.Nullable<it id="1" pos="open">&lt;T&gt;</it>' 成員</target>
-        </trans-unit>
         <trans-unit id="BadCtorArgCount" translate="yes" xml:space="preserve">
           <source>'{0}' does not contain a constructor that takes '{1}' arguments</source>
           <target state="needs-review-translation" state-qualifier="tm-suggestion">'{0}' 不包含接受 '{1}' 個引數的建構函式</target>
index e0e6a6b..aa1cee3 100644 (file)
   <data name="NoConstructors" xml:space="preserve">
     <value>Für den {0}-Typ sind keine Konstruktoren definiert.</value>
   </data>
-  <data name="BadDelegateConstructor" xml:space="preserve">
-    <value>Der Delegat "{0}" enthält keinen gültigen Konstruktor.</value>
-  </data>
   <data name="PropertyLacksGet" xml:space="preserve">
     <value>Die Eigenschaft oder der Indexer "{0}" kann in diesem Kontext nicht verwendet werden, weil der get-Accessor fehlt.</value>
   </data>
   <data name="TypeVarCantBeNull" xml:space="preserve">
     <value>NULL kann nicht in den {0}-Typparameter konvertiert werden, da dieser Werttyp möglicherweise nicht auf NULL festgelegt werden kann. Verwenden Sie stattdessen ggf. default({0}).</value>
   </data>
-  <data name="BadRetType" xml:space="preserve">
-    <value>Der Rückgabetyp von {1} {0} ist falsch.</value>
-  </data>
   <data name="CantInferMethTypeArgs" xml:space="preserve">
     <value>Die Typargumente der {0}-Methode können nicht per Rückschluss aus der Syntax abgeleitet werden. Geben Sie die Typargumente explizit an.</value>
   </data>
-  <data name="MethGrpToNonDel" xml:space="preserve">
-    <value>Die {0}-Methodengruppe kann nicht in den Nichtdelegattyp "{1}" konvertiert werden. Wollten Sie die Methode aufrufen?</value>
-  </data>
   <data name="RefConstraintNotSatisfied" xml:space="preserve">
     <value>Der {2}-Typ muss ein Referenztyp sein, damit er als {1}-Parameter im generischen Typ oder in der generischen {0}-Methode verwendet werden kann.</value>
   </data>
   <data name="RefReadonlyLocalCause" xml:space="preserve">
     <value>{0} ist ein(e) {1} und kann daher nicht als ref- oder out-Argument übergeben werden.</value>
   </data>
-  <data name="DelegateOnNullable" xml:space="preserve">
-    <value>Kann Delegaten "{0}" keine Bindung an weil es ein Mitglied von "System.Nullable&lt;T&gt;ist"</value>
-  </data>
   <data name="BadCtorArgCount" xml:space="preserve">
     <value>"{0}" enthält keinen Konstruktor, der {1}-Argumente akzeptiert.</value>
   </data>
index 144b611..f79029e 100644 (file)
   <data name="NoConstructors" xml:space="preserve">
     <value>El tipo '{0}' no tiene constructores definidos.</value>
   </data>
-  <data name="BadDelegateConstructor" xml:space="preserve">
-    <value>El delegado '{0}' no tiene un constructor válido</value>
-  </data>
   <data name="PropertyLacksGet" xml:space="preserve">
     <value>La propiedad o el indizador '{0}' no se puede usar en este contexto porque carece del descriptor de acceso get.</value>
   </data>
   <data name="TypeVarCantBeNull" xml:space="preserve">
     <value>No se puede convertir NULL en el parámetro de tipo '{0}' porque podría ser un tipo de valor que no acepta valores NULL. Use 'default({0})' en su lugar.</value>
   </data>
-  <data name="BadRetType" xml:space="preserve">
-    <value>'{1} {0}' es un tipo de valor devuelto equivocado</value>
-  </data>
   <data name="CantInferMethTypeArgs" xml:space="preserve">
     <value>Los argumentos de tipo para el método '{0}' no se pueden inferir a partir del uso. Intente especificar los argumentos de tipo explícitamente.</value>
   </data>
-  <data name="MethGrpToNonDel" xml:space="preserve">
-    <value>No se puede convertir el grupo de métodos '{0}' en tipo no delegado '{1}'. ¿Intentó invocar el método?</value>
-  </data>
   <data name="RefConstraintNotSatisfied" xml:space="preserve">
     <value>El tipo '{2}' debe ser un tipo de referencia para poder usarlo como parámetro '{1}' en el tipo o método genérico '{0}'.</value>
   </data>
   <data name="RefReadonlyLocalCause" xml:space="preserve">
     <value>No se puede pasar '{0}' como argumento out o ref porque es '{1}'.</value>
   </data>
-  <data name="DelegateOnNullable" xml:space="preserve">
-    <value>No se puede enlazar el delegado para '{0}' porque es un miembro de 'System.Nullable&lt;T&gt;'</value>
-  </data>
   <data name="BadCtorArgCount" xml:space="preserve">
     <value>'{0}' no contiene un constructor que tome '{1}' argumentos</value>
   </data>
index 9e39369..730b032 100644 (file)
   <data name="NoConstructors" xml:space="preserve">
     <value>Aucun constructeur n'est défini pour le type '{0}'</value>
   </data>
-  <data name="BadDelegateConstructor" xml:space="preserve">
-    <value>Le délégué '{0}' n'a pas de constructeur valide</value>
-  </data>
   <data name="PropertyLacksGet" xml:space="preserve">
     <value>Impossible d'utiliser la propriété ou l'indexeur '{0}' dans ce contexte, car il lui manque l'accesseur get</value>
   </data>
   <data name="TypeVarCantBeNull" xml:space="preserve">
     <value>Impossible de convertir null en paramètre de type '{0}' car il peut s'agir d'un type valeur qui n'autorise pas les valeurs null. Utilisez 'default({0})' à la place.</value>
   </data>
-  <data name="BadRetType" xml:space="preserve">
-    <value>'{1} {0}' n'a pas le type de retour correct</value>
-  </data>
   <data name="CantInferMethTypeArgs" xml:space="preserve">
     <value>Impossible de déduire les arguments de type pour la méthode '{0}' à partir de l'utilisation. Essayez de spécifier les arguments de type de façon explicite.</value>
   </data>
-  <data name="MethGrpToNonDel" xml:space="preserve">
-    <value>Impossible de convertir le groupe de méthodes '{0}' en type non-délégué '{1}'. Souhaitiez-vous appeler la méthode ?</value>
-  </data>
   <data name="RefConstraintNotSatisfied" xml:space="preserve">
     <value>Le type '{2}' doit être un type référence afin d'être utilisé comme paramètre '{1}' dans le type ou la méthode générique '{0}'</value>
   </data>
   <data name="RefReadonlyLocalCause" xml:space="preserve">
     <value>Impossible de passer '{0}' en tant qu'argument ref ou out, car il s'agit d'un '{1}'</value>
   </data>
-  <data name="DelegateOnNullable" xml:space="preserve">
-    <value>Impossible de lier délégué à « {0} » parce que c'est un membre de « System.Nullable&lt;T&gt;»</value>
-  </data>
   <data name="BadCtorArgCount" xml:space="preserve">
     <value>'{0}' ne contient pas de constructeur qui accepte des arguments '{1}'</value>
   </data>
index db60875..aa73c78 100644 (file)
   <data name="NoConstructors" xml:space="preserve">
     <value>Per il tipo '{0}' non sono definiti costruttori</value>
   </data>
-  <data name="BadDelegateConstructor" xml:space="preserve">
-    <value>Il delegato '{0}' non presenta un costruttore valido</value>
-  </data>
   <data name="PropertyLacksGet" xml:space="preserve">
     <value>Impossibile utilizzare la proprietà o l'indicizzatore '{0}' in questo contesto perché manca la funzione di accesso get.</value>
   </data>
   <data name="TypeVarCantBeNull" xml:space="preserve">
     <value>Impossibile convertire il valore Null nel parametro di tipo '{0}' perché potrebbe essere un tipo di valore non nullable. Si consiglia di utilizzare 'default({0})'.</value>
   </data>
-  <data name="BadRetType" xml:space="preserve">
-    <value>Il tipo restituito di '{1} {0}' è errato</value>
-  </data>
   <data name="CantInferMethTypeArgs" xml:space="preserve">
     <value>Impossibile dedurre gli argomenti di tipo per il metodo '{0}' dall'utilizzo. Provare a specificare gli argomenti di tipo in modo esplicito.</value>
   </data>
-  <data name="MethGrpToNonDel" xml:space="preserve">
-    <value>Impossibile convertire il gruppo di metodi '{0}' nel tipo non delegato '{1}'. Si desiderava richiamare il metodo?</value>
-  </data>
   <data name="RefConstraintNotSatisfied" xml:space="preserve">
     <value>È necessario che il tipo '{2}' sia un tipo di riferimento per essere utilizzato come parametro '{1}' nel tipo generico o nel metodo '{0}'</value>
   </data>
   <data name="RefReadonlyLocalCause" xml:space="preserve">
     <value>Impossibile passare '{0}' come argomento ref o out perché è '{1}'</value>
   </data>
-  <data name="DelegateOnNullable" xml:space="preserve">
-    <value>Non è possibile associare il delegato a '{0}' perché è un membro di 'System. Nullable&lt;T&gt;'</value>
-  </data>
   <data name="BadCtorArgCount" xml:space="preserve">
     <value>'{0}' non contiene un costruttore che accetta argomenti '{1}'</value>
   </data>
index 8078052..7783f19 100644 (file)
   <data name="NoConstructors" xml:space="preserve">
     <value>型 '{0}' のコンストラクターが定義されていません</value>
   </data>
-  <data name="BadDelegateConstructor" xml:space="preserve">
-    <value>デリゲート '{0}' には有効なコンストラクターがありません</value>
-  </data>
   <data name="PropertyLacksGet" xml:space="preserve">
     <value>get アクセサーがないため、プロパティまたはインデクサー '{0}' をこのコンテキストで使用することはできません</value>
   </data>
   <data name="TypeVarCantBeNull" xml:space="preserve">
     <value>Null 非許容の値型である可能性があるため、Null を型パラメーター '{0}' に変換できません。'default({0})' を使用してください。</value>
   </data>
-  <data name="BadRetType" xml:space="preserve">
-    <value>'{1} {0}' には、不適切な戻り値の型が指定されています</value>
-  </data>
   <data name="CantInferMethTypeArgs" xml:space="preserve">
     <value>メソッド '{0}' の型引数を使い方から推論することはできません。型引数を明示的に指定してください。</value>
   </data>
-  <data name="MethGrpToNonDel" xml:space="preserve">
-    <value>メソッド グループ '{0}' を非デリゲート型 '{1}' に変換することはできません。このメソッドを呼び出しますか?</value>
-  </data>
   <data name="RefConstraintNotSatisfied" xml:space="preserve">
     <value>型 '{2}' は、ジェネリック型のパラメーター '{1}'、またはメソッド '{0}' として使用するために、参照型でなければなりません</value>
   </data>
   <data name="RefReadonlyLocalCause" xml:space="preserve">
     <value>'{1}' であるため、'{0}' は ref または out 引数として渡せません</value>
   </data>
-  <data name="DelegateOnNullable" xml:space="preserve">
-    <value>'System.Nullable&lt;T&gt;' のメンバーであるために、'{0}' のデリゲートをバインドできません。</value>
-  </data>
   <data name="BadCtorArgCount" xml:space="preserve">
     <value>'{0}' に、引数を '{1}' 個指定できるコンストラクターがありません</value>
   </data>
index 63d0d03..1c42c74 100644 (file)
   <data name="NoConstructors" xml:space="preserve">
     <value>'{0}' 형식에 정의된 생성자가 없습니다.</value>
   </data>
-  <data name="BadDelegateConstructor" xml:space="preserve">
-    <value>'{0}' 대리자에 올바른 생성자가 없습니다.</value>
-  </data>
   <data name="PropertyLacksGet" xml:space="preserve">
     <value>'{0}' 속성 또는 인덱서는 get 접근자가 없으므로 이 컨텍스트에서 사용할 수 없습니다.</value>
   </data>
   <data name="TypeVarCantBeNull" xml:space="preserve">
     <value>null을 허용하지 않는 값 형식일 수 있으므로 null을 형식 매개 변수 '{0}'(으)로 변환할 수 없습니다. 대신 'default({0})'를 사용하십시오.</value>
   </data>
-  <data name="BadRetType" xml:space="preserve">
-    <value>'{1} {0}'에 잘못된 반환 형식이 있습니다.</value>
-  </data>
   <data name="CantInferMethTypeArgs" xml:space="preserve">
     <value>'{0}' 메서드의 형식 인수를 유추할 수 없습니다. 형식 인수를 명시적으로 지정하십시오.</value>
   </data>
-  <data name="MethGrpToNonDel" xml:space="preserve">
-    <value>'{0}' 메서드 그룹을 비대리자 형식 '{1}'(으)로 변환할 수 없습니다. 메서드를 호출하시겠습니까?</value>
-  </data>
   <data name="RefConstraintNotSatisfied" xml:space="preserve">
     <value>제네릭 형식 또는 메서드 '{0}'에서 '{2}' 형식을 '{1}' 매개 변수로 사용하려면 해당 형식이 참조 형식이어야 합니다.</value>
   </data>
   <data name="RefReadonlyLocalCause" xml:space="preserve">
     <value>'{0}'은(는) '{1}'이므로 ref 또는 out 인수로 전달할 수 없습니다.</value>
   </data>
-  <data name="DelegateOnNullable" xml:space="preserve">
-    <value>그것 'System.Nullable&lt;T&gt;'의 멤버 이므로 ' (0) '에 대리자를 바인딩할 수 없습니다.</value>
-  </data>
   <data name="BadCtorArgCount" xml:space="preserve">
     <value>'{0}'에 '{1}'개의 인수를 사용하는 생성자가 없습니다.</value>
   </data>
index eb31f47..5ad03c7 100644 (file)
   <data name="NoConstructors" xml:space="preserve">
     <value>The type '{0}' has no constructors defined</value>
   </data>
-  <data name="BadDelegateConstructor" xml:space="preserve">
-    <value>The delegate '{0}' does not have a valid constructor</value>
-  </data>
   <data name="PropertyLacksGet" xml:space="preserve">
     <value>The property or indexer '{0}' cannot be used in this context because it lacks the get accessor</value>
   </data>
   <data name="TypeVarCantBeNull" xml:space="preserve">
     <value>Cannot convert null to type parameter '{0}' because it could be a non-nullable value type. Consider using 'default({0})' instead.</value>
   </data>
-  <data name="BadRetType" xml:space="preserve">
-    <value>'{1} {0}' has the wrong return type</value>
-  </data>
   <data name="CantInferMethTypeArgs" xml:space="preserve">
     <value>The type arguments for method '{0}' cannot be inferred from the usage. Try specifying the type arguments explicitly.</value>
   </data>
-  <data name="MethGrpToNonDel" xml:space="preserve">
-    <value>Cannot convert method group '{0}' to non-delegate type '{1}'. Did you intend to invoke the method?</value>
-  </data>
   <data name="RefConstraintNotSatisfied" xml:space="preserve">
     <value>The type '{2}' must be a reference type in order to use it as parameter '{1}' in the generic type or method '{0}'</value>
   </data>
   <data name="RefReadonlyLocalCause" xml:space="preserve">
     <value>Cannot pass '{0}' as a ref or out argument because it is a '{1}'</value>
   </data>
-  <data name="DelegateOnNullable" xml:space="preserve">
-    <value>Cannot bind delegate to '{0}' because it is a member of 'System.Nullable&lt;T&gt;'</value>
-  </data>
   <data name="BadCtorArgCount" xml:space="preserve">
     <value>'{0}' does not contain a constructor that takes '{1}' arguments</value>
   </data>
index aacb470..8a2e9bb 100644 (file)
   <data name="NoConstructors" xml:space="preserve">
     <value>Для типа "{0}" нет определенных конструкторов</value>
   </data>
-  <data name="BadDelegateConstructor" xml:space="preserve">
-    <value>Делегат "{0}" не имеет допустимого конструктора</value>
-  </data>
   <data name="PropertyLacksGet" xml:space="preserve">
     <value>The property or indexer "{0}" cannot be used in this context because it lacks the get accessor</value>
   </data>
   <data name="TypeVarCantBeNull" xml:space="preserve">
     <value>Cannot convert null to type parameter "{0}" because it could be a non-nullable value type. Вместо этого рекомендуется использовать "default({0})".</value>
   </data>
-  <data name="BadRetType" xml:space="preserve">
-    <value>"{1} {0}" имеет неправильный возвращаемый тип</value>
-  </data>
   <data name="CantInferMethTypeArgs" xml:space="preserve">
     <value>The type arguments for method "{0}" cannot be inferred from the usage. Попытайтесь явно определить аргументы-типы.</value>
   </data>
-  <data name="MethGrpToNonDel" xml:space="preserve">
-    <value>Не удается преобразовать группу методов "{0}" в тип, не являющийся делегатом "{1}". Предполагается ли вызывать этот метод?</value>
-  </data>
   <data name="RefConstraintNotSatisfied" xml:space="preserve">
     <value>Для использования в качестве параметра "{1}" в универсальном типе или методе "{0}" тип "{2}" должен быть ссылочным типом</value>
   </data>
   <data name="RefReadonlyLocalCause" xml:space="preserve">
     <value>Не удалось передать "{0}" как ссылку или аргумент out, так как это "{1}"</value>
   </data>
-  <data name="DelegateOnNullable" xml:space="preserve">
-    <value>Не удается привязать делегат '{0}', потому что он является членом «System.Nullable&lt;T&gt;»</value>
-  </data>
   <data name="BadCtorArgCount" xml:space="preserve">
     <value>"{0}" не содержит конструктор, принимающий аргументов: {1}</value>
   </data>
index 55e6ecb..0787825 100644 (file)
   <data name="NoConstructors" xml:space="preserve">
     <value>类型“{0}”未定义构造函数</value>
   </data>
-  <data name="BadDelegateConstructor" xml:space="preserve">
-    <value>委托“{0}”没有有效的构造函数</value>
-  </data>
   <data name="PropertyLacksGet" xml:space="preserve">
     <value>属性或索引器“{0}”不能用在此上下文中,因为它缺少 get 访问器</value>
   </data>
   <data name="TypeVarCantBeNull" xml:space="preserve">
     <value>无法将 null 转换为类型参数“{0}”,因为它可能是不可以为 null 的值类型。请考虑改用“default({0})”。</value>
   </data>
-  <data name="BadRetType" xml:space="preserve">
-    <value>“{1} {0}”的返回类型错误</value>
-  </data>
   <data name="CantInferMethTypeArgs" xml:space="preserve">
     <value>无法从用法中推断出方法“{0}”的类型参数。请尝试显式指定类型参数。</value>
   </data>
-  <data name="MethGrpToNonDel" xml:space="preserve">
-    <value>无法将方法组“{0}”转换为非委托类型“{1}”。是否希望调用此方法?</value>
-  </data>
   <data name="RefConstraintNotSatisfied" xml:space="preserve">
     <value>类型“{2}”必须是引用类型才能用作泛型类型或方法“{0}”中的参数“{1}”</value>
   </data>
   <data name="RefReadonlyLocalCause" xml:space="preserve">
     <value>“{0}”是一个“{1}”,无法作为 ref 或 out 参数进行传递</value>
   </data>
-  <data name="DelegateOnNullable" xml:space="preserve">
-    <value>不能将委托绑定到 '{0}',因为它是 'System.Nullable&lt;T&gt;' 成员</value>
-  </data>
   <data name="BadCtorArgCount" xml:space="preserve">
     <value>“{0}”不包含采用“{1}”个参数的构造函数</value>
   </data>
index 579ee7c..ab73e5b 100644 (file)
   <data name="NoConstructors" xml:space="preserve">
     <value>型別 '{0}' 沒有已定義的建構函式</value>
   </data>
-  <data name="BadDelegateConstructor" xml:space="preserve">
-    <value>委派 '{0}' 沒有有效的建構函式</value>
-  </data>
   <data name="PropertyLacksGet" xml:space="preserve">
     <value>無法於此內容中使用屬性或索引子 '{0}',因為其欠缺 get 存取子</value>
   </data>
   <data name="TypeVarCantBeNull" xml:space="preserve">
     <value>無法將 null 轉換成型別參數 '{0}',因為它是不可為 null 的實值型別。請考慮使用 'default({0})' 代替。</value>
   </data>
-  <data name="BadRetType" xml:space="preserve">
-    <value>'{1} {0}' 的傳回型別錯誤</value>
-  </data>
   <data name="CantInferMethTypeArgs" xml:space="preserve">
     <value>方法 '{0}' 的型別引數不能從使用方式推斷。請嘗試明確指定型別引數。</value>
   </data>
-  <data name="MethGrpToNonDel" xml:space="preserve">
-    <value>無法將方法群組 '{0}' 轉換為非委派型別 '{1}'。您是否想要叫用這個方法?</value>
-  </data>
   <data name="RefConstraintNotSatisfied" xml:space="preserve">
     <value>型別 '{2}' 必須是參考型別,才能在泛型型別或方法 '{0}' 中做為參數 '{1}' 使用</value>
   </data>
   <data name="RefReadonlyLocalCause" xml:space="preserve">
     <value>無法將 '{0}' 當做 ref 或 out 引數傳遞,因為它是 '{1}'</value>
   </data>
-  <data name="DelegateOnNullable" xml:space="preserve">
-    <value>不能將委託綁定到 '{0}',因為它是 'System.Nullable&lt;T&gt;' 成員</value>
-  </data>
   <data name="BadCtorArgCount" xml:space="preserve">
     <value>'{0}' 不包含接受 '{1}' 個引數的建構函式</value>
   </data>