Compile
```
class AA {
protected void Fun() {}
}
class BB : AA {
override void Fun() {}
}
class Repro {
void Fun() {
AA a = new AA();
BB b = new BB();
AA upcasted = (AA)b;
a.Fun();
b.Fun();
upcasted.Fun();
}
}
As said in the description, the below code crashes the workbench.
```
class AA {
protected void Fun() {} // removing protected prevents the crash.
}
class BB : AA {
override void Fun() {}
}
void Fun() {
AA a = new AA();
BB b = new BB();
AA upcasted = (AA)b;
a.Fun();
b.Fun();
upcasted.Fun();
}
```