Skip to main content

avoid-unrelated-type-casts

added in: 1.0.0
preset: recommended

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) {}
}
}