3 instantiations of Result
Microsoft.Maui.Controls.BindingSourceGen (3)
Result.cs (3)
11 return new Result<T>(value, new EquatableArray<DiagnosticInfo>(Array.Empty<DiagnosticInfo>())); 16 return new Result<T>(default, diagnostics); 21 return new Result<T>(default, new EquatableArray<DiagnosticInfo>(new[] { diagnostic }));
73 references to Result
Microsoft.Maui.Controls.BindingSourceGen (73)
BindingSourceGenerator.cs (26)
95 private static Result<BindingInvocationDescription> GetBindingForGeneration(GeneratorSyntaxContext context, CancellationToken t) 103 var interceptedMethodTypeResult = invocationParser.ParseInvocation(invocation, t); 107 return Result<BindingInvocationDescription>.Failure(interceptedMethodTypeResult.Diagnostics); 119 return Result<BindingInvocationDescription>.Failure(DiagnosticsFactory.UnableToResolvePath(invocation.GetLocation())); 122 var lambdaResult = GetLambda(invocation, interceptedMethodTypeResult.Value); 125 return Result<BindingInvocationDescription>.Failure(lambdaResult.Diagnostics); 128 var lambdaParamTypeResult = GetLambdaParameterType(lambdaResult.Value, context.SemanticModel, t); 131 return Result<BindingInvocationDescription>.Failure(lambdaParamTypeResult.Diagnostics); 134 var lambdaReturnTypeResult = GetLambdaReturnType(lambdaResult.Value, context.SemanticModel, t); 137 return Result<BindingInvocationDescription>.Failure(lambdaReturnTypeResult.Diagnostics); 141 var pathParseResult = pathParser.ParsePath(lambdaResult.Value.ExpressionBody); 144 return Result<BindingInvocationDescription>.Failure(pathParseResult.Diagnostics); 156 return Result<BindingInvocationDescription>.Success(binding); 165 private static Result<LambdaExpressionSyntax> GetLambda(InvocationExpressionSyntax invocation, InterceptedMethodType methodType) 177 return Result<LambdaExpressionSyntax>.Failure(DiagnosticsFactory.GetterIsNotLambda(expression.GetLocation())); 183 return Result<LambdaExpressionSyntax>.Failure(DiagnosticsFactory.LambdaIsNotStatic(lambda.GetLocation())); 186 return Result<LambdaExpressionSyntax>.Success(lambda); 189 private static Result<ITypeSymbol> GetLambdaReturnType(LambdaExpressionSyntax lambda, SemanticModel semanticModel, CancellationToken t) 193 return Result<ITypeSymbol>.Failure(DiagnosticsFactory.GetterLambdaBodyIsNotExpression(lambda.Body.GetLocation())); 199 return Result<ITypeSymbol>.Failure(DiagnosticsFactory.LambdaResultCannotBeResolved(lambdaBody.GetLocation())); 202 return Result<ITypeSymbol>.Success(lambdaResultType); 205 private static Result<ITypeSymbol> GetLambdaParameterType(LambdaExpressionSyntax lambda, SemanticModel semanticModel, CancellationToken t) 209 return Result<ITypeSymbol>.Failure(DiagnosticsFactory.GetterIsNotLambda(lambda.GetLocation())); 215 return Result<ITypeSymbol>.Failure(DiagnosticsFactory.LambdaParameterCannotBeResolved(lambda.GetLocation())); 221 return Result<ITypeSymbol>.Failure(DiagnosticsFactory.UnaccessibleTypeUsedAsLambdaParameter(lambda.GetLocation())); 224 return Result<ITypeSymbol>.Success(lambdaParamType);
InvocationParser.cs (11)
21 internal Result<InterceptedMethodType> ParseInvocation(InvocationExpressionSyntax invocationSyntax, CancellationToken t) 31 private Result<InterceptedMethodType> VerifyCorrectOverloadBindingCreate(InvocationExpressionSyntax invocation, CancellationToken t) 42 return Result<InterceptedMethodType>.Failure(DiagnosticsFactory.SuboptimalSetBindingOverload(invocation.GetLocation())); 56 return Result<InterceptedMethodType>.Failure(DiagnosticsFactory.GetterIsNotLambda(firstArgument.GetLocation())); 60 return Result<InterceptedMethodType>.Success(InterceptedMethodType.Create); 63 private Result<InterceptedMethodType> VerifyCorrectOverloadSetBinding(InvocationExpressionSyntax invocation, CancellationToken t) 78 return Result<InterceptedMethodType>.Failure(DiagnosticsFactory.SuboptimalSetBindingOverload(invocation.GetLocation())); 91 return Result<InterceptedMethodType>.Failure(DiagnosticsFactory.SuboptimalSetBindingOverload(invocation.GetLocation())); 100 { Name: "Func", ContainingNamespace.Name: "System" } => Result<InterceptedMethodType>.Failure(DiagnosticsFactory.GetterIsNotLambda(secondArgument.GetLocation())), 101 _ => Result<InterceptedMethodType>.Failure(DiagnosticsFactory.SuboptimalSetBindingOverload(secondArgument.GetLocation())), 106 return Result<InterceptedMethodType>.Success(InterceptedMethodType.SetBinding);
PathParser.cs (33)
18 internal Result<List<IPathPart>> ParsePath(CSharpSyntaxNode? expressionSyntax) 22 IdentifierNameSyntax _ => Result<List<IPathPart>>.Success(new List<IPathPart>()), 35 private Result<List<IPathPart>> HandleMemberAccessExpression(MemberAccessExpressionSyntax memberAccess) 37 var result = ParsePath(memberAccess.Expression); 49 return Result<List<IPathPart>>.Failure(DiagnosticsFactory.UnableToResolvePath(memberAccess.GetLocation())); 62 return Result<List<IPathPart>>.Success(result.Value); 65 private Result<List<IPathPart>> HandleElementAccessExpression(ElementAccessExpressionSyntax elementAccess) 67 var result = ParsePath(elementAccess.Expression); 76 var elementAccessResult = CreateIndexAccess(elementAccessSymbol, elementType, elementAccess.ArgumentList.Arguments, elementAccess.GetLocation()); 83 return Result<List<IPathPart>>.Success(result.Value); 86 private Result<List<IPathPart>> HandleConditionalAccessExpression(ConditionalAccessExpressionSyntax conditionalAccess) 88 var expressionResult = ParsePath(conditionalAccess.Expression); 94 var whenNotNullResult = ParsePath(conditionalAccess.WhenNotNull); 102 return Result<List<IPathPart>>.Success(expressionResult.Value); 105 private Result<List<IPathPart>> HandleMemberBindingExpression(MemberBindingExpressionSyntax memberBinding) 113 return Result<List<IPathPart>>.Success(new List<IPathPart>([part])); 116 private Result<List<IPathPart>> HandleElementBindingExpression(ElementBindingExpressionSyntax elementBinding) 121 var elementAccessResult = CreateIndexAccess(elementAccessSymbol, elementType, elementBinding.ArgumentList.Arguments, elementBinding.GetLocation()); 129 return Result<List<IPathPart>>.Success(elementAccessResult.Value); 132 private Result<List<IPathPart>> HandleBinaryExpression(BinaryExpressionSyntax asExpression) 134 var leftResult = ParsePath(asExpression.Left); 144 return Result<List<IPathPart>>.Failure(DiagnosticsFactory.UnableToResolvePath(castTo.GetLocation())); 149 return Result<List<IPathPart>>.Success(leftResult.Value); 152 private Result<List<IPathPart>> HandleCastExpression(CastExpressionSyntax castExpression) 154 var result = ParsePath(castExpression.Expression); 163 return Result<List<IPathPart>>.Failure(DiagnosticsFactory.UnableToResolvePath(castExpression.GetLocation())); 168 return Result<List<IPathPart>>.Success(result.Value); 171 private Result<List<IPathPart>> HandleDefaultCase() 173 return Result<List<IPathPart>>.Failure(DiagnosticsFactory.UnableToResolvePath(_context.Node.GetLocation())); 176 private Result<List<IPathPart>> CreateIndexAccess(ISymbol? elementAccessSymbol, ITypeSymbol? typeSymbol, SeparatedSyntaxList<ArgumentSyntax> argumentList, Location location) 180 return Result<List<IPathPart>>.Failure(DiagnosticsFactory.UnableToResolvePath(location)); 187 return Result<List<IPathPart>>.Failure(DiagnosticsFactory.UnableToResolvePath(indexExpression.GetLocation())); 194 return Result<List<IPathPart>>.Success(new List<IPathPart>([part]));
Result.cs (3)
9 public static Result<T> Success(T value) 14 public static Result<T> Failure(EquatableArray<DiagnosticInfo> diagnostics) 19 public static Result<T> Failure(DiagnosticInfo diagnostic)