Я наивно полагал, что Nemerle ведеть себя аналогично C# в поисках имен.
Однако это не совсем так.
Это баг или так задумано ?
Nemerle:
namespace A
{
class X{}
namespace B
{
class X{}
class Q
{
x : X;
}
}
}
source.n:9:15:9:16: error: type name `X' is ambiguous, it could be:
source.n:3:4:3:4: hint: possible type: `A.X'
source.n:6:7:6:7: hint: possible type: `A.B.X'
C#
namespace A
{
class X{}
namespace B
{
class X{}
class Q
{
X x;
}
}
}
Здравствуйте, _NN_, Вы писали:
_NN>Я наивно полагал, что Nemerle ведеть себя аналогично C# в поисках имен. _NN>Однако это не совсем так. _NN>Это баг или так задумано ?
Здравствуйте, _NN_, Вы писали:
_NN>Я наивно полагал, что Nemerle ведеть себя аналогично C# в поисках имен.
а{на}логично и ведёт! Из двух равных имён выбирает самое смешное и компилирует.
_NN>source.n:9:15:9:16: error: type name `X' is ambiguous, it could be:
Я придерживаюсь мнения Немерли: ситуация НЕоднозначная.
Здравствуйте, gloomy rocker, Вы писали:
GR>Может стоит сделать как в шарпе? Чтобы расширить подмножество исходников шарпа, которые немерле будет корректно компилировать.
Идея здравая. Осталось только найти время на ее реализацию.
Ни у кого нет желания побороться с этой задачей?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, nikov, Вы писали:
N>Я не о том, какое решение более интуитивно. Напишите это в спецификации, и придерживайтесь на здоровье.
В том и беда, что данная неоднозначность является "халтурой" программиста — подразумеваться могут оба класса с равной вероятностью => нельзя из них выбирать единственный, только по явной указке прогера.
Здравствуйте, matumba, Вы писали:
M>В том и беда, что данная неоднозначность является "халтурой" программиста — подразумеваться могут оба класса с равной вероятностью => нельзя из них выбирать единственный, только по явной указке прогера.
Как по мне, в С# правильный подход: если у тебя в библиотеке свой маленький класс "Tuple" и вдруг микрософт придумывает свою тюплу, я не хочу чтоб моя библиотека вдруг ломалась.
Здравствуйте, VladD2, Вы писали:
VD>В данном случае надо исправлять поведение. С одной стороны оно не критично. Всегда можно задать составное имя. Но раз людям неудобно...
В том и дело что с составным именем получается неудобно.
Эта проблема остро всплывает в генерации (макрос), когда не думаешь о том, что нужно всегда искать полное имя.