class Animal {
String name;
Animal(this.name);
}
class Cat extends Animal {
Cat(String name) : super(name);
}
List<Animal> animals = [];
List<Cat> cats = animals;
Почему дарт не ловит данную ошибку на этапе компиляции? Даже тайпскрипт с таким справляется.
Знаю, что можно запретить неявные касты в конфиге анализатора, но это же работает просто на уровне IDE, код также продолжает компилировать. А если я вдруг не замечу эти ошибки? Можно ли вынести эту ошибку на уровень компилятора?
Почему было выбрано такое поведение? Когда это может быть нужно? Планируется ли исправлять это в будущем?