X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fmcs%2Fparameter.cs;h=2bd2a498a919444a5862a395038f7d42e5500862;hb=098e88f3a87205d92516a1fe912b6f84164d0a59;hp=275f1013e8b9dfb533215ddeaeb466e4d4a8faf9;hpb=aea57f09d430ae672e03d96729d447c814ec867c;p=mono.git diff --git a/mcs/mcs/parameter.cs b/mcs/mcs/parameter.cs index 275f1013e8b..2bd2a498a91 100644 --- a/mcs/mcs/parameter.cs +++ b/mcs/mcs/parameter.cs @@ -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); + } } }