Exemplo n.º 1
0
 private void InferClosureSignature(BlockExpression node)
 {
     ClosureSignatureInferrer inferrer = new ClosureSignatureInferrer(node);
     ICallableType inferredCallableType = inferrer.InferCallableType();
     BindExpressionType(node, inferredCallableType);
     AddInferredClosureParameterTypes(node, inferredCallableType);
 }
Exemplo n.º 2
0
 private bool InferClosureSignature(BlockExpression node)
 {
     ClosureSignatureInferrer inferrer = new ClosureSignatureInferrer(node);
     ICallableType inferredCallableType = inferrer.InferCallableType();
     BindExpressionType(node, inferredCallableType);
     AddInferredClosureParameterTypes(node, inferredCallableType);
     if (inferrer.IsExpression && inferredCallableType != null)
     {
         if (!(inferredCallableType.GetSignature().ReturnType is IGenericParameter))
         {
             node.ReturnType = CodeBuilder.CreateTypeReference(inferredCallableType.GetSignature().ReturnType);
         }
     }
     return inferrer.IsExpression;
 }