From 5165c36ffb84a6ed37f2e5b47eb9960ca5dcf0b3 Mon Sep 17 00:00:00 2001 From: Mike Barnett Date: Wed, 20 May 2020 09:03:10 -0700 Subject: [PATCH 1/2] C# now allows "this" to be passed as a (readonly) reference. --- System.Compiler/Writer.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/System.Compiler/Writer.cs b/System.Compiler/Writer.cs index 11d12cc..06e14a3 100644 --- a/System.Compiler/Writer.cs +++ b/System.Compiler/Writer.cs @@ -2754,9 +2754,10 @@ void VisitAddressOf(UnaryExpression/*!*/ expr) { } this.methodBodyHeap.Write((int)this.GetFieldToken((Field)mb.BoundMember)); return; - case NodeType.Parameter: + case NodeType.Parameter: + case NodeType.This: #if !MinimalReader - ParameterBinding pb = operand as ParameterBinding; + ParameterBinding pb = operand as ParameterBinding; if (pb != null) operand = pb.BoundParameter; #endif int pi = ((Parameter)operand).ArgumentListIndex; From 1399eb69fe803aab12f53b843444e89d29183e56 Mon Sep 17 00:00:00 2001 From: Mike Barnett Date: Wed, 20 May 2020 09:07:43 -0700 Subject: [PATCH 2/2] Fix source formatting. --- System.Compiler/Writer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/System.Compiler/Writer.cs b/System.Compiler/Writer.cs index 06e14a3..40237a0 100644 --- a/System.Compiler/Writer.cs +++ b/System.Compiler/Writer.cs @@ -2757,7 +2757,7 @@ void VisitAddressOf(UnaryExpression/*!*/ expr) { case NodeType.Parameter: case NodeType.This: #if !MinimalReader - ParameterBinding pb = operand as ParameterBinding; + ParameterBinding pb = operand as ParameterBinding; if (pb != null) operand = pb.BoundParameter; #endif int pi = ((Parameter)operand).ArgumentListIndex;