почему дротик не выбрасывает исключение во время компиляции. времени выполнения? - PullRequest
0 голосов
/ 14 марта 2020

Рассмотрим этот пример кода:

void main() {

  List<int> array = <int>[];

  for (int i = 0; i < 5; i++) {
    array.add(i);
  }

  Iterable<int> newList = array.where( (value) =>  value % 2 == 0 );

  printFunction(array);
  printFunction(newList);
}

void printFunction(List<int> list) {
 print(list); 
}

Этот код успешно компилируется, но, конечно, выдает исключение во время выполнения, потому что он не может выполнить код для printFunction(newList), если только не вызвать toList() перед передачей newList

Почему компилятор не выдал исключение в этом случае ???

1 Ответ

1 голос
/ 14 марта 2020

Этот тип проверки можно включить с помощью настройки анализатора дротиков (analysis_options.yaml), как показано ниже:

analyzer:
  strong-mode:
    implicit-casts: false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...