ErrorProne.NET.Structs 0.4.0-beta.1

Analyzers that help avoiding struct and readonly reference performance pitfalls

This is a prerelease version of ErrorProne.NET.Structs.
Install-Package ErrorProne.NET.Structs -Version 0.4.0-beta.1
dotnet add package ErrorProne.NET.Structs --version 0.4.0-beta.1
<PackageReference Include="ErrorProne.NET.Structs" Version="0.4.0-beta.1">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ErrorProne.NET.Structs --version 0.4.0-beta.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: ErrorProne.NET.Structs, 0.4.0-beta.1"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install ErrorProne.NET.Structs as a Cake Addin
#addin nuget:?package=ErrorProne.NET.Structs&version=0.4.0-beta.1&prerelease

// Install ErrorProne.NET.Structs as a Cake Tool
#tool nuget:?package=ErrorProne.NET.Structs&version=0.4.0-beta.1&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

0.4.0
       * Performance improvements and bug fixes
       * Embed pdbs
       0.3.0
       * EPS07: detects that a struct that does not override `Equals` or `GetHashCode` is used as the key in the dictionary or in a hashset.
       * EPS08: detects that the default `ValueType.Equals` or `ValueType.GetHashCode` are used in the implmentation of the `Equals` or `GetHashCode` for a custom struct.
       * EPS09: detects that `in` modifier can be explicitely specified in a method call.
       * EPS10: detects attemps of constructing non-defaultable structs by using `new T`, `default` or similar.
       * EPS11: detects that a non-defaultable struct is embedded in a defaultable struct.
       * Various bug fixes.

       0.2.0
       * EPS01: detects that a struct could be made readonly;
       * EPS02: detects that a struct not suitable for readonly contexts is passed using 'in'-parameter
       * EPS03: detects that a struct not suitable for readonly contexts is returned by ref readonly reference.
       * EPS04: detects that a struct not suitable for readonly contexts is stored in ref readonly local.
       * EPS05: detects that a struct could be passed using 'in'-modifier for performance reasons.
       * EPS06: detects that the compiler emits a defensive copy for a given expression.

Dependencies

This package has no dependencies.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on ErrorProne.NET.Structs:

Package Downloads
Rfm69Transceiver.Wrapper.Net
This library is for controlling an RFM69 Transceiver through .NET. It wraps a native library for this. The only built in library is a Raspberry Pi library.
LetMeSpeak
Package Description

GitHub repositories (5)

Showing the top 5 popular GitHub repositories that depend on ErrorProne.NET.Structs:

Repository Stars
dotnet/orleans
Orleans is a cross-platform framework for building distributed applications with .NET
SergeyTeplyakov/ErrorProne.NET
Set of roslyn-based analyzers for catching common C# errors (inspired by Google's error-prone)
Genbox/VelcroPhysics
High performance 2D collision detection system with realistic physics responses.
RainwayApp/bebop
An extremely simple, fast, efficient, cross-platform serialization format
pamidur/aspect-injector
AOP framework for .NET (c#, vb, etc)

Version History

Version Downloads Last updated
0.4.0-beta.1 68 5/12/2021
0.3.0-beta.0 16,009 5/12/2020
0.2.0-beta.7 12,313 4/9/2019
0.1.2 61,291 11/1/2018
0.1.1.11 457 10/25/2018
0.1.1.10 526 10/3/2018
0.1.1 425 10/2/2018
0.1.0 2,001 5/3/2018