codeowners update
[mono.git] / mcs / mcs / parameter.cs
index 275f1013e8b9dfb533215ddeaeb466e4d4a8faf9..2bd2a498a919444a5862a395038f7d42e5500862 100644 (file)
@@ -142,6 +142,9 @@ namespace Mono.CSharp {
        }
 
        public class ParamsParameter : Parameter {
+
+               bool ParamsAttributeEmit;
+
                public ParamsParameter (FullNamedExpression type, string name, Attributes attrs, Location loc):
                        base (type, name, Parameter.Modifier.PARAMS, attrs, loc)
                {
@@ -158,13 +161,18 @@ namespace Mono.CSharp {
                                return null;
                        }
 
+                       var mc = ec as MemberCore;
+                       ParamsAttributeEmit = mc == null || (mc.ModFlags & Modifiers.OVERRIDE) == 0;
+
                        return parameter_type;
                }
 
                public override void ApplyAttributes (MethodBuilder mb, ConstructorBuilder cb, int index, PredefinedAttributes pa)
                {
                        base.ApplyAttributes (mb, cb, index, pa);
-                       pa.ParamArray.EmitAttribute (builder);
+
+                       if (ParamsAttributeEmit)
+                               pa.ParamArray.EmitAttribute (builder);
                }
        }
 
@@ -718,6 +726,10 @@ namespace Mono.CSharp {
                                } else if (parameter_type.HasDynamicElement) {
                                        pa.Dynamic.EmitAttribute (builder, parameter_type, Location);
                                }
+
+                               if (parameter_type.HasNamedTupleElement) {
+                                       pa.TupleElementNames.EmitAttribute (builder, parameter_type, Location);
+                               }
                        }
                }