Skip to content

Commit 0da4e35

Browse files
committed
fix: adds comment on arrow expressions
1 parent 083e737 commit 0da4e35

File tree

7 files changed

+18
-4
lines changed

7 files changed

+18
-4
lines changed

Cecilifier.Core.Tests/Tests/Unit/GenericTests.cs

+1
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,7 @@ static TestCaseData[] Scenarios()
601601
\s+cls_inner_\d+.Methods.Add\(\k<overload>\);
602602
\s+\k<overload>.Body.InitLocals = true;
603603
\s+var il_M_7 = \k<overload>.Body.GetILProcessor\(\);
604+
\s+//M<T>\(\)
604605
\s+il_M_7.Emit\(OpCodes.Ldarg_0\);
605606
\s+var (?<gen_method>gi_M_\d+) = new GenericInstanceMethod\(\k<overload>\);
606607
\s+\k<gen_method>.GenericArguments.Add\(gp_T_6\);

Cecilifier.Core.Tests/Tests/Unit/MappingTests.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,15 @@ public void Test_ClassAndMethod_InSingleLine()
3636
Assert.That(cecilifiedResult.Mappings[0].Source.End.Column, Is.EqualTo(46), message);
3737

3838
Assert.That(cecilifiedResult.Mappings[0].Cecilified.Begin.Line, Is.EqualTo(25), message);
39-
Assert.That(cecilifiedResult.Mappings[0].Cecilified.End.Line, Is.EqualTo(54), message);
39+
Assert.That(cecilifiedResult.Mappings[0].Cecilified.End.Line, Is.EqualTo(55), message);
4040

4141
// => int Sum(int i, int j) => i + j;
4242
Assert.That(cecilifiedResult.Mappings[1].Source.Begin.Line, Is.EqualTo(1), message);
4343
Assert.That(cecilifiedResult.Mappings[1].Source.Begin.Column, Is.EqualTo(13), message);
4444
Assert.That(cecilifiedResult.Mappings[1].Source.End.Column, Is.EqualTo(44), message);
4545

4646
Assert.That(cecilifiedResult.Mappings[1].Cecilified.Begin.Line, Is.EqualTo(30), message);
47-
Assert.That(cecilifiedResult.Mappings[1].Cecilified.End.Line, Is.EqualTo(46), message);
47+
Assert.That(cecilifiedResult.Mappings[1].Cecilified.End.Line, Is.EqualTo(47), message);
4848

4949
// parameter i
5050
Assert.That(cecilifiedResult.Mappings[2].Source.Begin.Line, Is.EqualTo(1), message);
@@ -67,7 +67,7 @@ public void Test_ClassAndMethod_InSingleLine()
6767
Assert.That(cecilifiedResult.Mappings[4].Source.Begin.Column, Is.EqualTo(35), message);
6868

6969
Assert.That(cecilifiedResult.Mappings[4].Cecilified.Begin.Line, Is.EqualTo(42), message);
70-
Assert.That(cecilifiedResult.Mappings[4].Cecilified.End.Line, Is.EqualTo(45), message);
70+
Assert.That(cecilifiedResult.Mappings[4].Cecilified.End.Line, Is.EqualTo(46), message);
7171
}
7272

7373
[Test]

Cecilifier.Core.Tests/Tests/Unit/MemberAccessTests.cs

+6
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public void TestRefTarget_Class(string target)
2323
//Parameters of 'string C<T>\(T t\) where T : struct => t.ToString\(\);'
2424
\s+var (p_t_\d+) = new ParameterDefinition\("t", ParameterAttributes.None, (gp_T_\d+)\);
2525
\s+m_C_10.Parameters.Add\(\1\);
26+
\s+//t\.ToString\(\)
2627
(\s+il_C_\d+\.Emit\(OpCodes\.)Ldarga, \1\);
2728
\3Constrained, \2\);
2829
\3Callvirt, .+ImportReference\(.+ResolveMethod\(typeof\(System.Object\), "ToString",.+\)\)\);
@@ -33,6 +34,7 @@ public void TestRefTarget_Class(string target)
3334
//Parameters of 'string C<T>\(T t\) where T : IFoo => t.Get\(\);'
3435
\s+var (p_t_\d+) = new ParameterDefinition\("t", ParameterAttributes.None, (gp_T_\d+)\);
3536
\s+m_C_10.Parameters.Add\(\1\);
37+
\s+//t\.Get\(\)
3638
(\s+il_C_\d+\.Emit\(OpCodes\.)Ldarga, \1\);
3739
\3Constrained, \2\);
3840
\3Callvirt, m_get_1\);
@@ -43,6 +45,7 @@ public void TestRefTarget_Class(string target)
4345
//Parameters of 'string C<T>\(T t\) where T : IFoo => t.ToString\(\);'
4446
\s+var (p_t_\d+) = new ParameterDefinition\("t", ParameterAttributes.None, (gp_T_\d+)\);
4547
\s+m_C_10.Parameters.Add\(\1\);
48+
\s+//t\.ToString\(\)
4649
(\s+il_C_\d+\.Emit\(OpCodes\.)Ldarga, \1\);
4750
\3Constrained, \2\);
4851
\3Callvirt, .+ImportReference\(.+ResolveMethod\(typeof\(System.Object\), "ToString",.+\)\)\);
@@ -53,6 +56,7 @@ public void TestRefTarget_Class(string target)
5356
//Parameters of 'string C<T>\(T t\) => t.ToString\(\);'
5457
\s+var (p_t_\d+) = new ParameterDefinition\("t", ParameterAttributes.None, (gp_T_\d+)\);
5558
\s+m_C_10.Parameters.Add\(\1\);
59+
\s+//t\.ToString\(\)
5660
(\s+il_C_\d+\.Emit\(OpCodes\.)Ldarga, \1\);
5761
\3Constrained, \2\);
5862
\3Callvirt, .+ImportReference\(.+ResolveMethod\(typeof\(System.Object\), "ToString",.+\)\)\);
@@ -63,6 +67,7 @@ public void TestRefTarget_Class(string target)
6367
//Parameters of 'string C<T>\(T t\) where T : class => t.ToString\(\);'
6468
\s+var (p_t_\d+) = new ParameterDefinition\("t", ParameterAttributes.None, (gp_T_\d+)\);
6569
\s+m_C_10.Parameters.Add\(\1\);
70+
\s+//t\.ToString\(\)
6671
(\s+il_C_\d+\.Emit\(OpCodes\.)Ldarg_1\);
6772
\3Box, \2\);
6873
\3Callvirt, .+ImportReference\(.+ResolveMethod\(typeof\(System.Object\), "ToString",.+\)\)\);
@@ -73,6 +78,7 @@ public void TestRefTarget_Class(string target)
7378
//Parameters of 'string C<T>\(T t\) where T : Foo => t.ToString\(\);'
7479
\s+var (p_t_\d+) = new ParameterDefinition\("t", ParameterAttributes.None, (gp_T_\d+)\);
7580
\s+m_C_10.Parameters.Add\(\1\);
81+
\s+//t.ToString\(\)
7682
(\s+il_C_\d+\.Emit\(OpCodes\.)Ldarg_1\);
7783
\3Box, \2\);
7884
\3Callvirt, .+ImportReference\(.+ResolveMethod\(typeof\(System.Object\), "ToString",.+\)\)\);

Cecilifier.Core.Tests/Tests/Unit/MethodTests.cs

+2
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ class Derived : Base
7070
\s+cls_derived_5.Methods.Add\(\1\);
7171
\s+\1\.Body\.InitLocals = true;
7272
\s+var (il_callOverloadedInType_\d+) = \1\.Body\.GetILProcessor\(\);
73+
\s+//FromBase\(\)
7374
\s+(\2\.Emit\(OpCodes\.)Ldarg_0\);
7475
\s+\3Callvirt, m_fromBase_\d+\);
7576
\s+\3Ret\);
@@ -84,6 +85,7 @@ class Derived : Base
8485
\s+cls_derived_5.Methods.Add\(m_callBase_\d+\);
8586
\s+m_callBase_\d+.Body.InitLocals = true;
8687
\s+var (il_callBase_\d+) = m_callBase_8.Body.GetILProcessor\(\);
88+
\s+//GetType\(\).FullName
8789
\s+(\1\.Emit\(OpCodes\.)Ldarg_0\);
8890
\s+\2Call, .+"GetType".+\);
8991
\s+\2Callvirt,.+"get_FullName".+\);

Cecilifier.Core.Tests/Tests/Unit/OperatorsTests.cs

+3
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ public void TestNullConditionalOperatorOnComplexTargets(string target, string ex
239239
"""
240240
var (p_o_\d+) = new ParameterDefinition\("o", ParameterAttributes.None, assembly.MainModule.TypeSystem.Object\);
241241
\s+m_foo_\d+.Parameters.Add\(\1\);
242+
\s+//o != null
242243
(\s+il_foo_\d+\.Emit\(OpCodes\.)Ldarg_1\);
243244
\2Ldnull\);
244245
\2Ceq\);
@@ -252,6 +253,7 @@ public void TestNullConditionalOperatorOnComplexTargets(string target, string ex
252253
"""
253254
var (p_o_\d+) = new ParameterDefinition\("o", ParameterAttributes.None, assembly.MainModule.TypeSystem.Object\);
254255
\s+m_foo_\d+.Parameters.Add\(\1\);
256+
\s+//o == null
255257
(\s+il_foo_\d+\.Emit\(OpCodes\.)Ldarg_1\);
256258
\2Ldnull\);
257259
\2Ceq\);
@@ -262,6 +264,7 @@ public void TestNullConditionalOperatorOnComplexTargets(string target, string ex
262264
"""
263265
var (p_o_\d+) = new ParameterDefinition\("o", ParameterAttributes.None, gp_T_7\);
264266
\s+m_foo_\d+.Parameters.Add\(\1\);
267+
\s+//o == null
265268
(\s+il_foo_\d+\.Emit\(OpCodes\.)Ldarg_1\);
266269
\2Box, gp_T_7\);
267270
\2Ldnull\);

Cecilifier.Core.Tests/Tests/Unit/StructSpecificTests.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ System.IDisposable M() {{body}}
168168
var cecilifiedCode = result.GeneratedCode.ReadToEnd();
169169
Assert.That(cecilifiedCode, Does.Match(
170170
"""
171-
(?://return new Test\(\))?;
171+
\s+//(?:return )?new Test\(\);?
172172
.+var (l_vt_\d+) = new VariableDefinition\((st_test_\d+)\);
173173
.+m_M_3.Body.Variables.Add\(\1\);
174174
(.+il_M_\d+.Emit\(OpCodes\.)Ldloca_S, \1\);
@@ -220,6 +220,7 @@ class Foo
220220
//Parameters of 'S TernaryOperators\(int i\) => i == 2 \? new S\(\): new S\(\);'
221221
\s+var p_i_4 = new ParameterDefinition\("i", ParameterAttributes.None, assembly.MainModule.TypeSystem.Int32\);
222222
\s+m_ternaryOperators_2.Parameters.Add\(p_i_4\);
223+
\s+//i == 2 \? new S\(\): new S\(\)
223224
\s+var lbl_conditionEnd_5 = il_ternaryOperators_3.Create\(OpCodes.Nop\);
224225
\s+var lbl_whenFalse_6 = il_ternaryOperators_3.Create\(OpCodes.Nop\);
225226
(\s+il_ternaryOperators_\d+\.Emit\(OpCodes\.)Ldarg_1\);

Cecilifier.Core/AST/ExpressionVisitor.cs

+1
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ public override void VisitReturnStatement(ReturnStatementSyntax node)
166166
public override void VisitArrowExpressionClause(ArrowExpressionClauseSyntax node)
167167
{
168168
using var _ = LineInformationTracker.Track(Context, node);
169+
Context.WriteComment(node.Expression.ToString());
169170
node.Expression.Accept(this);
170171
InjectRequiredConversions(node.Expression);
171172
}

0 commit comments

Comments
 (0)