Please do the checklist before filing an issue:
Describe the bug
Reserved keywords, such as private are not escaped when they are used as parameter labels, such as constructor parameters
Repro
A link to a repro Gist or GitHub repository or a link to a Mapperly fork with a failing test.
Declaration code
using Riok.Mapperly.Abstractions;
namespace MapperlyReservedPropertynameBug;
[Mapper(RequiredMappingStrategy = RequiredMappingStrategy.Source)]
public partial class Mapper
{
public partial TargetObject Map(SourceObject source);
}
public class SourceObject
{
public bool Private { get; set; }
}
public class TargetObject
{
public TargetObject(string? remark = null, bool @private = false)
{
Remark = remark;
Private = @private;
}
public bool Private { get; set; }
public string? Remark { get; set; }
}
Actual relevant generated code
// <auto-generated />
#nullable enable
namespace MapperlyReservedPropertynameBug
{
public partial class Mapper
{
[global::System.CodeDom.Compiler.GeneratedCode("Riok.Mapperly", "4.3.1.0")]
public partial global::MapperlyReservedPropertynameBug.TargetObject Map(global::MapperlyReservedPropertynameBug.SourceObject source)
{
var target = new global::MapperlyReservedPropertynameBug.TargetObject(private: source.Private);
return target;
}
}
}
Expected relevant generated code
// <auto-generated />
#nullable enable
namespace MapperlyReservedPropertynameBug
{
public partial class Mapper
{
[global::System.CodeDom.Compiler.GeneratedCode("Riok.Mapperly", "4.3.1.0")]
public partial global::MapperlyReservedPropertynameBug.TargetObject Map(global::MapperlyReservedPropertynameBug.SourceObject source)
{
var target = new global::MapperlyReservedPropertynameBug.TargetObject(@private: source.Private);
return target;
}
}
}
Reported relevant diagnostics
- N/A as it's a compile error
Environment (please complete the following information):
- Mapperly Version: 4.3.1
- Nullable reference types: enabled
- .NET Version: 10.0.102
- Target Framework: net10.0
- Compiler Version: 5.0.0-2.25612.105 (44525024)
- C# Language Version: 14.0
- OS: macOS 15.7.3 (24G419), Windows 11 25H2 (26200.7623)
Please do the checklist before filing an issue:
Describe the bug
Reserved keywords, such as
privateare not escaped when they are used as parameter labels, such as constructor parametersRepro
A link to a repro Gist or GitHub repository or a link to a Mapperly fork with a failing test.
Declaration code
Actual relevant generated code
Expected relevant generated code
Reported relevant diagnostics
Environment (please complete the following information):