private static bool TryGetDefinitionInputType(SemanticModel semanticModel, ActivityFunctionDefinition functionDefinition, out ITypeSymbol definitionInputType)
        {
            var definitionInput = functionDefinition.ParameterNode;

            if (FunctionParameterIsContext(semanticModel, definitionInput))
            {
                if (!TryGetInputFromDurableContextCall(semanticModel, definitionInput, out definitionInput))
                {
                    definitionInputType = null;
                    return(false);
                }
            }

            definitionInputType = SyntaxNodeUtils.GetSyntaxTreeSemanticModel(semanticModel, definitionInput).GetTypeInfo(definitionInput).Type;

            return(definitionInputType != null);
        }
Exemplo n.º 2
0
        private static bool TryGetDefinitionInputType(SemanticModel semanticModel, ActivityFunctionDefinition functionDefinition, out ITypeSymbol definitionInputType)
        {
            var definitionInput = functionDefinition.ParameterNode;

            if (definitionInput == null)
            {
                definitionInputType = null;
                return(false);
            }

            if (SyntaxNodeUtils.TryGetITypeSymbol(semanticModel, definitionInput, out definitionInputType))
            {
                if (SyntaxNodeUtils.IsDurableActivityContext(definitionInputType))
                {
                    return(TryGetInputTypeFromContext(semanticModel, definitionInput, out definitionInputType));
                }

                return(true);
            }

            definitionInputType = null;
            return(false);
        }
Exemplo n.º 3
0
        private static bool TryGetDefinitionReturnType(SemanticModel semanticModel, ActivityFunctionDefinition functionDefinition, out ITypeSymbol definitionReturnType)
        {
            var definitionReturnNode = functionDefinition.ReturnTypeNode;

            return(SyntaxNodeUtils.TryGetITypeSymbol(semanticModel, definitionReturnNode, out definitionReturnType));
        }
Exemplo n.º 4
0
        private static bool IsValidReturnTypeForDefinition(ActivityFunctionCall invocation, ActivityFunctionDefinition definition)
        {
            var definitionReturnType = definition.ReturnType;

            if (TryGetTaskTypeArgument(definitionReturnType, out ITypeSymbol taskTypeArgument))
            {
                definitionReturnType = taskTypeArgument;
            }

            return(SyntaxNodeUtils.IsMatchingDerivedOrCompatibleType(definitionReturnType, invocation.ReturnType));
        }
Exemplo n.º 5
0
        private static void TryGetDefinitionReturnType(SemanticModel semanticModel, ActivityFunctionDefinition functionDefinition, out ITypeSymbol definitionReturnType)
        {
            var definitionReturnNode = functionDefinition.ReturnTypeNode;

            definitionReturnType = SyntaxNodeUtils.GetSyntaxTreeSemanticModel(semanticModel, definitionReturnNode).GetTypeInfo(definitionReturnNode).Type;
        }
 private static bool IsValidArgumentForDefinition(ActivityFunctionCall invocation, ActivityFunctionDefinition definition)
 {
     return(SyntaxNodeUtils.IsMatchingDerivedOrCompatibleType(invocation.InputType, definition.InputType));
 }
 private static bool DefinitionInputIsNotUsed(ActivityFunctionDefinition definition)
 {
     return(definition.InputType == null);
 }
        private static bool DefinitionInputIsNonNullableValueType(ActivityFunctionDefinition definition)
        {
            var inputType = definition.InputType;

            return(inputType != null && inputType.IsValueType && !inputType.Name.Equals("Nullable"));
        }