История изменений
Исправление
Crocodoom,
(текущая версия)
:
Такое ветвление сводится к комбинаторике из двух значений: true и false (т.е. N = 2) в степени количества ветвлений. Это худший случай. В процессе компилятор может еще довести, что некоторые выражения будут перманентно true или false. А также импликацию (зависимости) условий между собой.
Ещё раз. Ветвление идёт в динамике. Компилятору может казаться, что возможен случай, когда все ветви, которые содержат return, не выстрелят. Хотя в рантайме этого никогда не произойдёт, и всегда сработает хотя бы один return. Это может быть очевидно программисту, и совершенно не очевидно компилятору.
Исходная версия
Crocodoom,
:
Такое ветвление сводится к комбинаторике из двух значений: true и false (т.е. N = 2) в степени количества ветвлений. Это худший случай. В процессе компилятор может еще довести, что некоторые выражения будут перманентно true или false. А также импликацию (зависимости) условий между собой.
Ещё раз. Ветвление идёт в динамике. Компилятору может казаться, что возможен случай, когда все ветви, которые содержат return, не выстрелят. Хотя в рантайме этого никогда не произойдёт, и всегда сработает хотя бы один return. Это может быть очевидно программисту, и совершенно не очевидно компилятору.