resharper-unity icon indicating copy to clipboard operation
resharper-unity copied to clipboard

That new "Implicit check for Unity object lifetime" is nonsense

Open aybe opened this issue 1 year ago • 2 comments

Just noticed that new suggestion after upgrading today.

See by yourself, code was fine but applying either fix makes it worse actually:

New icon:

image

Fixes:

image

After fix 1:

image

After fix 2:

image

JetBrains ReSharper 2024.2.4
Build 242.0.20240905.115624 built on 2024-09-05
dotTrace 2024.2.20240905.115624
ReSharper C++ 2024.2.20240905.115624
ReSharper 2024.2.20240905.115624
JetBrains ForTea 2024.2.1.3 (Compatible)
JetBrains Unity 2024.2.3.166 (Compatible)

ReSharper 2024.2.4 licensed to aybe aybe. Subscription is valid through 1/16/2025. Perpetual for builds released before 1/17/2024.
ReSharper C++ 2024.2.4 licensed to aybe aybe. Subscription is valid through 1/16/2025. Perpetual for builds released before 1/17/2024.
TeamCity Add-in 2024.2.4 disabled by user preferences.

Build Version: 2024.2.4.65536

Visual Studio Enterprise 2022
Version 17.11.2, InstanceId a77197d5.
InstallVersion: 17.11.35222.181
InstallDir: “C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE”
LocalAppData: C:\Users\aybe\AppData\Local\Microsoft\VisualStudio\17.0_a77197d5

Branch: refs/heads/242.21829

Application Packages:
...
JetBrains Unity build 2024.2.3.166 on 0001-01-01

aybe avatar Sep 10 '24 22:09 aybe

First fix is valid. Casting UnityEngine.Object to bool is essentially a null-check, but shorter. Reference

So, in this case, Visual Studio's warning about null-dereferencing is invalid.

The second fix modifies code behavior by only checking the reference for null, ignoring the UnityEngine.Object lifetime.

Both context actions are applicable.

waitxd avatar Oct 25 '24 12:10 waitxd

It is valid, and not nonsense.

StephenHodgson avatar Dec 13 '24 14:12 StephenHodgson