Mono.CSharp.PropertyBasedMember.CheckReservedNameConflict C# (CSharp) Method

CheckReservedNameConflict() protected method

protected CheckReservedNameConflict ( string prefix, MethodSpec accessor ) : void
prefix string
accessor MethodSpec
return void
        protected void CheckReservedNameConflict(string prefix, MethodSpec accessor)
        {
            string name;
            AParametersCollection parameters;
            if (accessor != null) {
                name = accessor.Name;
                parameters = accessor.Parameters;
            } else {
                name = prefix + ShortName;
                if (IsExplicitImpl)
                    name = MemberName.Left + "." + name;

                if (this is Indexer) {
                    parameters = ((Indexer) this).ParameterInfo;
                    if (prefix[0] == 's') {
                        var data = new IParameterData[parameters.Count + 1];
                        Array.Copy (parameters.FixedParameters, data, data.Length - 1);
                        data[data.Length - 1] = new ParameterData ("value", Parameter.Modifier.NONE);
                        var types = new TypeSpec[data.Length];
                        Array.Copy (parameters.Types, types, data.Length - 1);
                        types[data.Length - 1] = member_type;

                        parameters = new ParametersImported (data, types, false);
                    }
                } else {
                    if (prefix[0] == 's')
                        parameters = ParametersCompiled.CreateFullyResolved (new[] { member_type });
                    else
                        parameters = ParametersCompiled.EmptyReadOnlyParameters;
                }
            }

            var conflict = MemberCache.FindMember (Parent.Definition,
                new MemberFilter (name, 0, MemberKind.Method, parameters, null),
                BindingRestriction.DeclaredOnly | BindingRestriction.NoAccessors);

            if (conflict != null) {
                Report.SymbolRelatedToPreviousError (conflict);
                Report.Error (82, Location, "A member `{0}' is already reserved", conflict.GetSignatureForError ());
            }
        }