dotnet/roslyn

Suggestion to use `obj is SomeConst` instead of safe cast or direct Equals(object) call

Ouverte

#45 232 ouverte le 16 juin 2020

 (5 commentaires) (0 réaction) (0 personne assignée)C# (4 257 forks)batch import
Area-IDEConcept-Continuous Improvementhelp wanted

Métriques du dépôt

Stars
 (20 414 étoiles)
Métriques de merge PR
 (Merge moyen 6j 17h) (256 PRs mergées en 30 j)

Description

obj as string == "x" and "x".Equals(obj) would be replaced with obj is "x".

This could apply to all constant types, so obj as bool? == SomeBoolConstant and SomeBoolConstant.Equals(obj) would be replaced with obj is SomeBoolConstant.

When CS0252 "Possible unintended reference comparison; to get a value comparison, cast the left hand side to type 'string'" is reported, this fix could offer to change obj == "x" to obj is "x".

Happy to implement.

Guide contributeur