avoid-unrelated-type-casts
added in: 1.0.0
warning
Warns about unrelated usages of as
operator.
Example
❌ Bad:
class Animal {}
class HomeAnimal extends Animal {}
class NotAnimal {}
class Example {
final regularString = '';
final myList = <int>[1, 2, 3];
final Animal animal = Animal();
void main() {
final result = regularString as int; // LINT
final result2 = myList as List<String>; // LINT
final result3 = animal as NotAnimal; // LINT
}
void patterns() {
final animal = Animal();
if (animal case Animal() as HomeAnimal) {}
if (animal case Animal() as NotAnimal) {} // LINT
}
}
✅ Good:
class Animal {}
class HomeAnimal extends Animal {}
class Example {
final regularString = '';
final myList = <int>[1, 2, 3];
final Animal animal = Animal();
void main() {
final result = regularString;
final result2 = myList;
final result3 = animal;
}
void patterns() {
final animal = Animal();
if (animal case Animal() as HomeAnimal) {}
}
}