Ошибки во время выполнения из-за чувствительности к регистру в именах (переменных)

StackOverflow https://stackoverflow.com/questions/1851653

Вопрос

Недавно у нас возникла проблема (ANTLR “Не удается запустить отладчик.Тайм-аут ожидания подключения к удаленному анализатору.”) где произошла ошибка во время выполнения, которая могла быть вызвана чувствительностью к регистру в именах (переменных) и зависела от операционной системы.Это было в ANTLR, но в более общем плане мне интересно, существуют ли распространенные случаи (на любом языке), когда имена отличаются только регистром, программа компилируется, но возникают ошибки во время выполнения из-за коллизий имен.Вероятно ли также, что существует разница между UNIX и Windows?

В качестве возможного примера могу ли я создать два класса Java в одном пакете: Foo в Foo.java и foo в foo.java в UNIX, в то время как я не могу сделать то же самое в Windows?Если нет, то попадает ли это в ловушку компилятора и какое ограничение он накладывает на равенство регистров?И как другие распространенные языки относятся к этой проблеме?

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

Это было полезно?

Решение

По-видимому, это не вызывает большого беспокойства у большинства людей

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top