Nous avons récemment eu un problème (ANTLR “Cannot launch the debugger. Time-out waiting to connect to the remote parser.”) où un bogue d'exécution pouvait être dû à la casse dans les noms (variables) et dépendait du système d'exploitation. C'était dans ANTLR mais je me demande plus généralement s'il y a des cas communs (dans n'importe quelle langue) où les noms diffèrent seulement dans le cas, le programme compile, mais il y a des erreurs d'exécution dues aux collisions de nom. Y a-t-il aussi probablement une différence entre UNIX et Windows?Bogues d'exécution dus à la casse dans les noms (variables)
Comme exemple possible puis-je créer deux classes Java dans le même package: Foo
dans Foo.java
et foo
dans foo.java
sous UNIX alors que je ne peux pas faire la même chose sur Windows? Si non, est-ce que cela est piégé par le compilateur et quelle restriction met-il sur l'égalité des cas? Et comment d'autres langues communes traitent-elles ce problème?
[Bien sûr, je ne veux pas essayer délibérément de le faire, mais à faire des erreurs et je compte beaucoup sur les compilateurs pour les détecter.]