неадекват или правильно
От: _Claus_  
Дата: 11.03.12 18:41
Оценка:
  public X       
      
    f(x: int): string

      def g(i)
        | 0 => ("","","","")
        | 1 => null
        
      ""


error : Cannot implicitly convert type 'object+' to '(string- * string- * string- * string-)-'.

слышал, что при tuple.arg_count > 3 должен быть reference type. или тут что-то глубже?
Re: неадекват или правильно
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.03.12 21:11
Оценка:
Здравствуйте, _Claus_, Вы писали:

_C_>слышал, что при tuple.arg_count > 3 должен быть reference type. или тут что-то глубже?


Тут дело в другом. К обжекту приводится все. По этому любая ошибка будет тупо давать обжект на выходе. Чтобы защитить программистов от таких ошибок компилятор требует явного указания object.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: неадекват или правильно
От: _Claus_  
Дата: 11.03.12 21:34
Оценка:
_C_>>слышал, что при tuple.arg_count > 3 должен быть reference type. или тут что-то глубже?

VD>К обжекту приводится все.


непонятно зачем value приводить к object. противоречит моему миропониманию.

VD>По этому любая ошибка будет тупо давать обжект на выходе. Чтобы защитить программистов от таких ошибок компилятор требует явного указания object.


защиты не почувствовал. скорее наоборот. спасибо!
Re[2]: неадекват или правильно
От: _Claus_  
Дата: 11.03.12 23:12
Оценка:
Здравствуйте, VladD2, Вы писали:

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


_C_>>слышал, что при tuple.arg_count > 3 должен быть reference type. или тут что-то глубже?


меня смущает предупреждение, когда я пытаюсь 4-элементный тупл сравнивать с null

when (null != type_info)

особенно слова value type

warning : N10011: comparing a value type (string * Nemerle.Compiler.TypeBuilder * Nemerle.Compiler.Parsetree.ClassMember.TypeDeclaration * Nemerle.Compiler.Parsetree.PExpr) to System.Object (a `null' literal?) with reference equality

он таки value? и что тогда собирается сравнивать компилятор, боюсь представить..
Re[3]: неадекват или правильно
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.03.12 23:59
Оценка:
Здравствуйте, _Claus_, Вы писали:

_C_>непонятно зачем value приводить к object. противоречит моему миропониманию.


Оно у тебя особенное

_C_>защиты не почувствовал. скорее наоборот. спасибо!


А ты подумай что будет, если при любой опечатке вместо сообщения все будет к обжекту приводиться.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: неадекват или правильно
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.03.12 00:01
Оценка:
Здравствуйте, _Claus_, Вы писали:

_C_>меня смущает предупреждение, когда я пытаюсь 4-элементный тупл сравнивать с null

_C_>особенно слова value type

_C_>warning : N10011: comparing a value type (string * Nemerle.Compiler.TypeBuilder * Nemerle.Compiler.Parsetree.ClassMember.TypeDeclaration * Nemerle.Compiler.Parsetree.PExpr) to System.Object (a `null' literal?) with reference equality


Это у поляков такое понимание английского было. Надо добавить of. Имелось в виду "value of type".
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: неадекват или правильно
От: _Claus_  
Дата: 12.03.12 00:19
Оценка:
_C_>>защиты не почувствовал. скорее наоборот. спасибо!

VD>А ты подумай что будет, если при любой опечатке вместо сообщения все будет к обжекту приводиться.


если б пример, где я опечатаюсь, а оно поможет, я бы понял, а так чего-то никак.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.