1 write to FindOptimizations
System.Text.RegularExpressions.Generator (1)
parent\src\System\Text\RegularExpressions\RegexTree.cs (1)
80FindOptimizations = RegexFindOptimizations.Create(root, options);
38 references to FindOptimizations
System.Text.RegularExpressions.Generator (38)
RegexGenerator.Emitter.cs (38)
788else if (rm.Tree.FindOptimizations.FindMode is 810rm.Tree.FindOptimizations.FindMode != FindNextStartingPositionMode.NoSearch || 811rm.Tree.FindOptimizations.MinRequiredLength != 0 || 812rm.Tree.FindOptimizations.LeadingAnchor != RegexNodeKind.Unknown || 813rm.Tree.FindOptimizations.TrailingAnchor != RegexNodeKind.Unknown; 863int minRequiredLength = rm.Tree.FindOptimizations.MinRequiredLength; 887switch (regexTree.FindOptimizations.FindMode) 918Debug.Fail($"Unexpected mode: {regexTree.FindOptimizations.FindMode}"); 955switch (regexTree.FindOptimizations.FindMode) 961regexTree.Root.ComputeMaxLength() == regexTree.FindOptimizations.MinRequiredLength) 963int minRequiredLength = regexTree.FindOptimizations.MinRequiredLength; 984if (regexTree.FindOptimizations.FindMode == FindNextStartingPositionMode.LeadingAnchor_RightToLeft_Start) 1057writer.WriteLine($"// The pattern has a trailing end (\\Z) anchor, and any possible match is exactly {regexTree.FindOptimizations.MinRequiredLength} characters."); 1058using (EmitBlock(writer, $"if (pos < inputSpan.Length - {regexTree.FindOptimizations.MinRequiredLength + 1})")) 1060writer.WriteLine($"base.runtextpos = inputSpan.Length - {regexTree.FindOptimizations.MinRequiredLength + 1};"); 1068writer.WriteLine($"// The pattern has a trailing end (\\z) anchor, and any possible match is exactly {regexTree.FindOptimizations.MinRequiredLength} characters."); 1069using (EmitBlock(writer, $"if (pos < inputSpan.Length - {regexTree.FindOptimizations.MinRequiredLength})")) 1071writer.WriteLine($"base.runtextpos = inputSpan.Length - {regexTree.FindOptimizations.MinRequiredLength};"); 1080switch (regexTree.FindOptimizations.LeadingAnchor) 1116switch (regexTree.FindOptimizations.TrailingAnchor) 1118case RegexNodeKind.End when regexTree.FindOptimizations.MaxPossibleLength is int maxLength: 1127case RegexNodeKind.EndZ when regexTree.FindOptimizations.MaxPossibleLength is int maxLength: 1143RegexFindOptimizations opts = regexTree.FindOptimizations; 1150substring = regexTree.FindOptimizations.LeadingPrefix; 1156substring = regexTree.FindOptimizations.LeadingPrefix; 1163Debug.Assert(!string.IsNullOrEmpty(regexTree.FindOptimizations.FixedDistanceLiteral.String)); 1164substring = regexTree.FindOptimizations.FixedDistanceLiteral.String; 1165if (regexTree.FindOptimizations.FixedDistanceLiteral is { Distance: > 0 } literal) 1231RegexFindOptimizations opts = regexTree.FindOptimizations; 1262string prefix = regexTree.FindOptimizations.LeadingPrefix; 1278Debug.Assert(regexTree.FindOptimizations.FixedDistanceSets is { Count: > 0 }); 1280List<RegexFindOptimizations.FixedDistanceSet>? sets = regexTree.FindOptimizations.FixedDistanceSets; 1466Debug.Assert(regexTree.FindOptimizations.FixedDistanceSets is { Count: > 0 }); 1468RegexFindOptimizations.FixedDistanceSet set = regexTree.FindOptimizations.FixedDistanceSets![0]; 1500Debug.Assert(regexTree.FindOptimizations.LiteralAfterLoop is not null); 1501(RegexNode LoopNode, (char Char, string? String, StringComparison StringComparison, char[]? Chars) Literal) target = regexTree.FindOptimizations.LiteralAfterLoop.Value; 2860if (rm.Tree.FindOptimizations.FindMode == FindNextStartingPositionMode.LiteralAfterLoop_LeftToRight && 2861rm.Tree.FindOptimizations.LiteralAfterLoop?.LoopNode == node)