Files
codeql/csharp/ql/test/query-tests/Language Abuse/UselessNullCoalescingExpression/UselessNullCoalescingExpression.cs
2018-08-02 17:53:23 +01:00

47 lines
932 B
C#

using System;
class Tests
{
void Main(int? param)
{
int? a = 5, b;
a = a ?? a; // BAD
a = a ?? (b = a); // BAD
a = Prop ?? Prop; // BAD
a = param ?? param; // BAD
a = a ?? use(a); // BAD
a = Field ?? this.Field; // BAD
a = a ?? cache(ref a); // GOOD
a = a ?? store(out a); // GOOD
a = a ?? (a = 2); // GOOD
a = Prop ?? use(Prop = 2); // GOOD
a = Field ??
store(out Field); // GOOD
a = a ?? use(a = Field)
?? a; // GOOD
a = a ?? store(out a)
?? a; // GOOD
}
int? cache(ref int? a)
{
return a = 5;
}
int? store(out int? a)
{
return a = 5;
}
int? use(int? a)
{
return a;
}
int? Prop { get; set; }
int? Field;
}