UdonSharp icon indicating copy to clipboard operation
UdonSharp copied to clipboard

User-defined UdonSharpBehaviour-dervied classes break the null-coalescing (??) operator

Open dustuuvr opened this issue 4 years ago • 1 comments

Attempting to reference an instance of a user-defined UdonSharpBehaviour-dervied class on the left-hand side of the null-coalescing (??) operator causes a U# compiler error.

Example problematic code:

private KaraokeUiBrowser _uiBrowser = null;
public KaraokeUiBrowser UiBrowser
{ get { return _uiBrowser ?? (_uiBrowser = GetComponentInParent<KaraokeUiBrowser>()); } }

(Where KaraokeUiBrowser is a user-defined subclass of UdonSharpBehaviour)

The above code causes the following error to be thrown upon compilation: System.ArgumentException: Cannot implicitly convert type 'KaraokeUiBrowser' to 'UdonBehaviour'

This problem appears to only be triggered when the UdonSharpBehaviour subclass is on the left-hand side of the ?? operator, the right-hand side appears to function as expected.

dustuuvr avatar Oct 29 '21 16:10 dustuuvr

Fixed in 1.0

MerlinVR avatar Oct 29 '21 21:10 MerlinVR