例えばこんなミスがあるから
動的型付け言語では、C1テストが必要になる。

var obj; // 本来はAと互換性があるものしか入れてはいけない。
if(cond) {
 obj = new A();
} else {
 obj = new B();
}

//AとBに互換性はない。

foo(obj); //fooの引数はAと互換性があるものしか想定していない。