Как корутины с быдлокодом влияют на компиляцию

Ошибки и баги Unity3D

Как корутины с быдлокодом влияют на компиляцию

Сообщение jetyb 29 июл 2016, 08:31

Обнаружил прикольный баг, играясь корутинами. При определенных условиях юнитивский компилятор не пропускает компиляцию.
Итак, есть изначально такая фигня.
Синтаксис:
Используется csharp
void Start()
{
     StartCoroutine(Test());
}
IEnumerator Test()
{
      for (var i = 0; i < 10; i++)
       {
             //null чтобы лишь бы что вернуть
            yield return null;
      }
}
 

Она успешно компилируется и работает.
Дальше. В обстоятельствах разработки мне понадобилось закомментировать этот цикл. Сделал так.
Синтаксис:
Используется csharp
void Start()
{
     StartCoroutine(Test());
}
IEnumerator Test()
{
      for (var i = 0; i < 10 && false; i++)
       {
            yield return null;
       }
       yield break; //эффект одинаков что с, что без этой строчки; возможно она просто отсекается компилятором
}
 

Студия (работаю через нее) успешно это скомпилировала.
Зато unity пишет "All Compiler Error have to be fixed" и выдает первый попавшийся warning в проекте как ошибку.
В моем случае это был "Unreachable code detected" другого скрипта. После исправления этого warning-а юнити кидает следующий warning (но не все warning-и сразу).
То есть из-за строчки кода юнити компилирует твой скрипт, но начинает обращаться с warning-ами проекта как с ошибками.

Использую Unity 5.3 VisualStudio 2015.
jetyb
Адепт
 
Сообщения: 1486
Зарегистрирован: 31 окт 2011, 17:21

Re: Как корутины с быдлокодом влияют на компиляцию

Сообщение samana 01 авг 2016, 10:32

Да, тоже наблюдаю такую штуку. Конечно это не мешает, ведь можно просто нормально закомментировать код, а не добавлять какие-то условия в цикл, но интересно - почему же так получается.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Как корутины с быдлокодом влияют на компиляцию

Сообщение Cr0c 01 авг 2016, 13:51

Синтаксис:
Используется csharp
for (var i = 0; (i < 10) && false; i++)

А если так - ошибка остаётся?
Конечно остаётся. Unreachable code надо исправлять. Обойдите цикл как-то иначе.
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Как корутины с быдлокодом влияют на компиляцию

Сообщение jetyb 01 авг 2016, 14:57

Cr0c
Соль в том, что исключение Unreachable code мне выдавается совершенно в другом скрипте, который я в данном контексте не редактировал.
Да и не только Unreachable code всплывал: выдавались последовательно все существующие warning-и всех типов в проекте.
jetyb
Адепт
 
Сообщения: 1486
Зарегистрирован: 31 окт 2011, 17:21


Вернуться в Глюки

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1