Всем доброго времени суток!
Возник вопрос, почему при использовании одинаковых названий, содержащихся в разных enum'ах ошибки нет, а при использовании переменной, название которой есть хотя бы в одном из них, вызывает предупреждение?
enum MyEnum { foo, bar } enum AnotherEnum { foo, bar } stock test() { new foo; } stock test2(foo) { }
Возникает warning 219: local variable "foo" shadows a variable at a preceding level
Обнаружил данную особенность для себя только сейчас, вероятно потому, что ранее во всех enum'ах использовал какие-то префиксы, а тут решил без них.
Нет ли каких-то возможных вариантов решения? Порядком поднадоели повсеместные префиксы, и хочется использовать простые названия внутри enum'ов вроде ID, name и т.п., но в таком случае я теряю их во всех остальных местах.
При этом в аргументах функции также нельзя использовать данное имя, однако, например, тот же name с native'ом GetPlayerName не конфликтует (вероятно, по той же причине, что и forward сам по себе не конфликтует, если не писать сам public)