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); }
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); }
private static bool TryGetDefinitionReturnType(SemanticModel semanticModel, ActivityFunctionDefinition functionDefinition, out ITypeSymbol definitionReturnType) { var definitionReturnNode = functionDefinition.ReturnTypeNode; return(SyntaxNodeUtils.TryGetITypeSymbol(semanticModel, definitionReturnNode, out definitionReturnType)); }
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)); }
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")); }