Skip to content

Moves nullable constraints to comply with older Mono frameworks (e.g. Unity 2017) allowing you to use NRTs.

License

Notifications You must be signed in to change notification settings

Emik03/Divorce.Fody

Repository files navigation

Divorce.Fody

NuGet package License

This is an add-in for Fody which lets you use Nullable Reference Types in older Mono frameworks (e.g. Unity 2017). Named after an antonym of Unity, since this project bends libraries to conform it.

This project has a dependency to Emik.Morsels, if you are building this project, refer to its README first.



Installation

  • Install the NuGet packages Fody and Divorce.Fody. Installing Fody explicitly is needed to enable weaving.

    PM> Install-Package Fody
    PM> Install-Package Divorce.Fody
    
  • Add the PrivateAssets="all" metadata attribute to the <PackageReference /> items of Fody and Divorce.Fody in your project file, so they won't be listed as dependencies.

  • If you already have a FodyWeavers.xml file in the root directory of your project, add the <Divorce /> tag there. This file will be created on the first build if it doesn't exist:

<Weavers>
    <Divorce />
</Weavers>

See Fody usage for general guidelines, and Fody Configuration for additional options.

Example

What you write:

#nullable enable
interface I { }
class C : I { }
class D<T> where T : C { }

What gets compiled:

#nullable enable
interface I { }
class C : 
#nullable disable
    I
#nullable enable
{ }
class D<T> where T :
#nullable disable
    C
#nullable enable
{ }

Contribute

Issues and pull requests are welcome to help this repository be the best it can be.

License

This repository falls under the MPL-2 license.

About

Moves nullable constraints to comply with older Mono frameworks (e.g. Unity 2017) allowing you to use NRTs.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages