Неиспользуемые переменные и функции
От: Ka3a4oK  
Дата: 08.12.10 08:50
Оценка: +1
Нельзя ли сделать так, что если функция не используется, то компилятор не выдает сообщения об ошибках типизации, а только предупреждение, что функция не используется.

Например:

def min(a, b)
{
 if(a<b)
  a
 else 
  b
}

def c=min(1, 2);


Далее, во время отладки, если я закомментирую использование функции min, то нарушится компиляция программы до тех пор пока, я не закомментирую использование самой функции min. Очень неудобно.
Re: Неиспользуемые переменные и функции
От: hardcase Пират http://nemerle.org
Дата: 08.12.10 09:13
Оценка:
Здравствуйте, Ka3a4oK, Вы писали:

KK>Далее, во время отладки, если я закомментирую использование функции min, то нарушится компиляция программы до тех пор пока, я не закомментирую использование самой функции min. Очень неудобно.


Разве вот это не подходит?
// 1
ignore(min);

// 2
_ = min;
/* иЗвиНите зА неРовнЫй поЧерК */
Re[2]: Неиспользуемые переменные и функции
От: WolfHound  
Дата: 08.12.10 09:26
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Разве вот это не подходит?

Там типы нельзя вывести...
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[2]: Неиспользуемые переменные и функции
От: Ka3a4oK  
Дата: 08.12.10 09:27
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Здравствуйте, Ka3a4oK, Вы писали:


KK>>Далее, во время отладки, если я закомментирую использование функции min, то нарушится компиляция программы до тех пор пока, я не закомментирую использование самой функции min. Очень неудобно.


H>Разве вот это не подходит?

H>
H>// 1
H>ignore(min);

H>// 2
H>_ = min;
H>


Не знал про ignore. Что это? Не помого, кстати.
Re[3]: Неиспользуемые переменные и функции
От: WolfHound  
Дата: 08.12.10 09:47
Оценка: +1
Здравствуйте, Ka3a4oK, Вы писали:

KK>Не знал про ignore. Что это?

Совершенно не нужная и не интуитивная хрень.
Сделано для того чтобы проигнорировать возврощаемое значение функции (иначе компилятор предупреждения дает).
Но глядя на эту хрень можно подумать о чем угодно кроме этого.

Предлагаю нахрен заобсолетить.
Ибо _ = ... куда понятнее.

KK>Не помого, кстати.

Я бы очень удивился если бы помогло.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[3]: Неиспользуемые переменные и функции
От: hardcase Пират http://nemerle.org
Дата: 08.12.10 10:20
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, hardcase, Вы писали:


H>>Разве вот это не подходит?

WH>Там типы нельзя вывести...

Действительно. Не сообразил.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[4]: Неиспользуемые переменные и функции
От: hardcase Пират http://nemerle.org
Дата: 08.12.10 10:21
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Предлагаю нахрен заобсолетить.

WH>Ибо _ = ... куда понятнее.

+1
/* иЗвиНите зА неРовнЫй поЧерК */
Re: Неиспользуемые переменные и функции
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.12.10 15:20
Оценка:
Здравствуйте, Ka3a4oK, Вы писали:

KK>Далее, во время отладки, если я закомментирую использование функции min, то нарушится компиляция программы до тех пор пока, я не закомментирую использование самой функции min. Очень неудобно.


Есть два резона не делать этого:
1. Алгоритм типизации на сегодня написан так, что сначала все типизирует, а потом уже выявляет использование или не использование. Для локальных фукнций в принципе это можно было бы изменить, так как они не поддерживают перегрузки. Но для методов не выйдет, так как для них перегрузка есть. Так что такая переделка потребует сильного изменения алгоритмов работы компиляции. До релиза это сделать будет невозможно.

2. Такое решение будет провоцировать оставлять грязь в коде. На сегодня ты вынужден будешь хотя бы закомментировать саму не используемую функцию. А так ты можешь наплевать на ворнинги и засрать код. Что на мой взгляд плохо.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Неиспользуемые переменные и функции
От: Ka3a4oK  
Дата: 08.12.10 15:33
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Ka3a4oK, Вы писали:


KK>>Далее, во время отладки, если я закомментирую использование функции min, то нарушится компиляция программы до тех пор пока, я не закомментирую использование самой функции min. Очень неудобно.


VD>Есть два резона не делать этого:

VD>1. Алгоритм типизации на сегодня написан так, что сначала все типизирует, а потом уже выявляет использование или не использование. Для локальных фукнций в принципе это можно было бы изменить, так как они не поддерживают перегрузки. Но для методов не выйдет, так как для них перегрузка есть. Так что такая переделка потребует сильного изменения алгоритмов работы компиляции. До релиза это сделать будет невозможно.

Для методов, мне кажется, эта проблема не актуальна, т.к. для них пользователь обязан указывать типы аргументов и возвращаемого значения.

VD>2. Такое решение будет провоцировать оставлять грязь в коде. На сегодня ты вынужден будешь хотя бы закомментировать саму не используемую функцию. А так ты можешь наплевать на ворнинги и засрать код. Что на мой взгляд плохо.


Спорный аргумент, т.к. захламить код можно другими способами — неиспользованными переменными, а удобства при отладке/прототипировании дает большие. Такая идея на будущее: добавить кнопку — закомментить весь мусор в проекте/в текущем файле/блоке.
Re[3]: Неиспользуемые переменные и функции
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.12.10 15:42
Оценка:
Здравствуйте, Ka3a4oK, Вы писали:

KK>Для методов, мне кажется, эта проблема не актуальна, т.к. для них пользователь обязан указывать типы аргументов и возвращаемого значения.


Ага. Но алгоритм определения использования един для всех сущностей. И по этому о том что сущность не используется можно узнать только по окончании процесса типизации.

VD>>2. Такое решение будет провоцировать оставлять грязь в коде. На сегодня ты вынужден будешь хотя бы закомментировать саму не используемую функцию. А так ты можешь наплевать на ворнинги и засрать код. Что на мой взгляд плохо.


KK>Спорный аргумент, т.к. захламить код можно другими способами — неиспользованными переменными,


О них будет ворнинг. А тут куча кода и только одно предупреждение о неисползуемости. В прочем, конечно для культурных людей этого достаточно.

KK>а удобства при отладке/прототипировании дает большие. Такая идея на будущее: добавить кнопку — закомментить весь мусор в проекте/в текущем файле/блоке.


Ну, это ты лучше сам и сделай. Я предпочитаю просто не создавать мусор (хотя конечно все бывает). За одно в компиляторе немного разберешься. Сделать такую фичу можно. Надо просто собрать все ворнинги о неиспользуемости и найти АСТ сущностей на которые они были выданы.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.