mirror of
https://github.com/github/codeql.git
synced 2026-03-30 12:18:18 +02:00
154 lines
2.6 KiB
C#
154 lines
2.6 KiB
C#
using System;
|
|
|
|
class Switch
|
|
{
|
|
void M1(object o)
|
|
{
|
|
switch (o) { }
|
|
}
|
|
|
|
void M2(object o)
|
|
{
|
|
switch (o)
|
|
{
|
|
case "a":
|
|
return;
|
|
case 0:
|
|
throw new Exception();
|
|
case null:
|
|
goto default;
|
|
case int i:
|
|
if (o == null)
|
|
return;
|
|
goto case 0;
|
|
case string s when s.Length > 0 && s != "a":
|
|
Console.WriteLine(s);
|
|
return;
|
|
case double d when Throw():
|
|
Label:
|
|
return;
|
|
default:
|
|
goto Label;
|
|
}
|
|
}
|
|
|
|
void M3()
|
|
{
|
|
switch (Throw())
|
|
{
|
|
default:
|
|
return;
|
|
}
|
|
}
|
|
|
|
void M4(object o)
|
|
{
|
|
switch (o)
|
|
{
|
|
case int _:
|
|
break;
|
|
case bool _ when o != null:
|
|
break;
|
|
}
|
|
}
|
|
|
|
void M5()
|
|
{
|
|
switch (1 + 2)
|
|
{
|
|
case 2 :
|
|
break;
|
|
case 3 :
|
|
break;
|
|
}
|
|
}
|
|
|
|
void M6(string s)
|
|
{
|
|
switch ((object)s)
|
|
{
|
|
case int _ :
|
|
break;
|
|
case "" :
|
|
break;
|
|
}
|
|
}
|
|
|
|
bool M7(int i, int j)
|
|
{
|
|
switch (i)
|
|
{
|
|
case 1 :
|
|
return true;
|
|
case 2 :
|
|
if (j > 2)
|
|
break;
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool M8(object o)
|
|
{
|
|
switch (o)
|
|
{
|
|
case int _ :
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
int M9(string s)
|
|
{
|
|
switch (s?.Length)
|
|
{
|
|
case 0 : return 0;
|
|
case 1 : return 1;
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
static bool Throw() => throw new Exception();
|
|
|
|
int M10(string s)
|
|
{
|
|
switch (s.Length)
|
|
{
|
|
case 3 when s=="foo" : return 1;
|
|
case 2 when s=="fu" : return 2;
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
void M11(object o)
|
|
{
|
|
if (o switch { bool b => b, _ => false })
|
|
return;
|
|
}
|
|
|
|
string M12(object o)
|
|
{
|
|
return (o switch { string s => s, _ => null })?.ToString();
|
|
}
|
|
|
|
int M13(int i)
|
|
{
|
|
switch (i)
|
|
{
|
|
default: return -1;
|
|
case 1: return 1;
|
|
case 2: return 2;
|
|
}
|
|
}
|
|
|
|
int M14(int i)
|
|
{
|
|
switch (i)
|
|
{
|
|
case 1: return 1;
|
|
default: return -1;
|
|
case 2: return 2;
|
|
}
|
|
}
|
|
}
|