JetBrains / JetBrains.Annotations

Annotations to increase the accuracy of JetBrains ReSharper/Rider code inspections
https://www.jetbrains.com/help/resharper/Code_Analysis__Code_Annotations.html
MIT License
34 stars 18 forks source link

Update the Lambdajs.Signed dependency to the latest version to support UsedImplicitly flags #7

Closed Mike-Logit closed 7 months ago

Mike-Logit commented 2 years ago

I decided to open up a new issue and reference the closed issue now that some progress has been made on the Lambdajs.Signed dependency.

I think that by updating to the latest version, developers should no longer need to explicitly install the Lambdajs.Signed dependency of JetBrains.Annotations to resolve the conflict issue mentioned in my previous issue with regards to the use of JetBrains's UsedImplicitly attribute:

See previous issue for more details: https://github.com/JetBrains/JetBrains.Annotations/issues/4

I don't directly use Lambdajs.Signed. I just needed to install it to fix the ambiguity conflict which ideally should not be required, especially since it makes the documentation on the JetBrains website slightly misleading because you cannot use these flags on the attribute out of the box without first doing this unnecessary step.

controlflow commented 1 year ago

Hi.

This package is not dependent on any other packages, especially on Lambdajs.Signed. I don not understand why you mention this 3rd party library as a "dependency of JetBrainsAnnotations". We don't have such dependency, this package is a trivial set of C# attributes, it do not contains any executable code - why would we depend on some JavaScript related library?

The Lambdajs.Signed had the full source code of JetBrains.Annotations package embedded inside. We have no control over this source code.

The documentations is not misleading - our users usually can use those flags, we have no any other reports on similar issues. Those conflicts you've experienced are caused by your particular solution configuration and other dependencies. There is nothing we can do in this package to solve your issues.

Mike-Logit commented 1 year ago

@controlflow I don't even have Lambdajs.Signed installed. I only have JetBrains.Annotations (v2022.1.0) and I cannot use the ImplicitUseTargetFlags attributes because of this error:

image

And as mentioned in my previous issue:

The type 'ImplicitUseTargetFlags' exists in both 'JetBrains.Annotations, Version=2021.2.0.0, ...' and 'Lambda2Js.Signed, Version=3.1.3.0, ...',

but JetBrains.Annotations has a dependency on .NetStandard v1.0, and .NetStandard v1.0 has a dependency on that Lambda2Js.Signed package, so I cannot fix the dependency problem myself.

So it's a transitive dependency if I'm not mistaken? The only way to fix this was to explicitly install Lambda2Js.Signed, which seemed inconvenient just to be able to use a feature from the JetBrains.Annotations package I actually want to be using.

Mike-Logit commented 1 year ago

I haven't checked this issue in a long time so I went digging again. I have another NuGet package that has .NETStandard as a dependency which causes this conflict.