• J
    Handle corrupted default values in metadata · 9ac3e8e0
    Jared Parsons 提交于
    The native compiler handled corrupted default parameter values by
    substituting in default(T).  It's unclear if this was intentional
    behavior in the compiler or not.
    
    Either way though obfuscators took advantage of this behavior and at
    least one prominent one will corrupt default parameter values when the
    value is null.  Enough prominent libraries have shipped using such
    obfuscators that it is a blocker to upgrading.  Hence we need to emulate
    the native compiler behavior here.
    
    This change is a bit large because I needed to update the test resources
    with a corrupted DLL in order to test out the changes.
    
    closes #4196
    9ac3e8e0
MSBuildTaskTests.csproj 6.0 KB