@@ -162,7 +162,8 @@ member.Expression is MemberExpression ||
162162 member . Expression is MemberExpression ) )
163163 || expression is MethodCallExpression
164164 || ( expression is UnaryExpression unaryExpression &&
165- unaryExpression . NodeType is ExpressionType . Convert ) ;
165+ unaryExpression . NodeType is ExpressionType . Convert )
166+ || expression . NodeType == ExpressionType . ArrayIndex ;
166167 }
167168
168169 private bool IsMethodCall ( Expression expression )
@@ -460,13 +461,15 @@ private RoutePredicateExpression ParseCondition0(Expression left, Expression rig
460461 return RoutePredicateExpression . Default ;
461462 }
462463
463- private RoutePredicateExpression ParseNamedComparison ( BinaryExpression binaryExpression , MethodCallExpression methodCallExpression )
464+ private RoutePredicateExpression ParseNamedComparison ( BinaryExpression binaryExpression ,
465+ MethodCallExpression methodCallExpression )
464466 {
465467 if ( methodCallExpression . GetComparisonLeftAndRight ( out var result ) )
466468 {
467469 return ParseCompare ( methodCallExpression , result . Left , result . Right ,
468470 binaryExpression . NodeType , ( int ) GetExpressionValue ( binaryExpression . Right ) ) ;
469471 }
472+
470473 return RoutePredicateExpression . Default ;
471474 }
472475
@@ -557,7 +560,8 @@ private RoutePredicateExpression ParsePropertyCondition(BinaryExpression binaryE
557560 {
558561 return ParseConditionOnRight0 ( false , predicateRightResult , binaryExpression . Left ,
559562 binaryExpression . NodeType ) ;
560- } else if ( binaryExpression . IsNamedComparison ( out var methodCallExpression ) )
563+ }
564+ else if ( binaryExpression . IsNamedComparison ( out var methodCallExpression ) )
561565 {
562566 return ParseNamedComparison ( binaryExpression , methodCallExpression ) ;
563567 }
@@ -589,7 +593,7 @@ private RoutePredicateExpression ParsePropertyCondition(BinaryExpression binaryE
589593 }
590594
591595 if ( binaryExpression . Left is UnaryExpression unaryExpression1 &&
592- ( binaryExpression . Right is MemberExpression ) )
596+ ( binaryExpression . Right is MemberExpression ) )
593597 left = Resolve ( unaryExpression1 ) ;
594598 if ( binaryExpression . Right is UnaryExpression unaryExpression2 &&
595599 ( binaryExpression . Left is MemberExpression ) )
0 commit comments