вывод типов не срабатывает
От: _Claus_  
Дата: 23.12.11 00:48
Оценка:
в указанном фрагменте
     def fieldTypes(ty : TypeInfo) // без ": TypeInfo" не работает - ошибка!!
        def fields = match (ty)
          
          | ty is TypeBuilder =>               
            ty.GetParsedMembers().OfType.[ClassMember.Field]().Select(f => typer.BindFixedType(f.ty).TypeInfo)              
                             
          | _ => ty.GetFields(BindingFlags.Public %| BindingFlags.NonPublic %| BindingFlags.Instance)\
                    .Select(x => x.GetMemType().TypeInfo)          
        
        fields.Where(_ != null)
        
      def isPrimitiveValue(ty)                          
        
        ty.IsValueType && (ty.IsPrimitive || fieldTypes(ty).All(isPrimitiveValue)) //ошибку дает здесь - 
            //error : in argument #2 (predicate), needed a System.Func[Nemerle.Compiler.TypeInfo-, bool],
            // got Nemerle.Compiler.TypeBuilder+ -> ?: Nemerle.Compiler.TypeBuilder+ -> ? is not a subtype 
            //of System.Func[Nemerle.Compiler.TypeInfo-, bool] [simple require]

      
      def ti = typer.BindFixedType(fld_type)            
      if (isPrimitiveValue(ti.TypeInfo))       //использую только явно давая TypeInfo
         ...


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