1 write to FindOptimizations
System.Text.RegularExpressions.Generator (1)
src\libraries\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexTree.cs (1)
80FindOptimizations = RegexFindOptimizations.Create(root, options);
34 references to FindOptimizations
System.Text.RegularExpressions.Generator (34)
RegexGenerator.Emitter.cs (34)
663else if (rm.Tree.FindOptimizations.FindMode is 685rm.Tree.FindOptimizations.FindMode != FindNextStartingPositionMode.NoSearch || 686rm.Tree.FindOptimizations.MinRequiredLength != 0 || 687rm.Tree.FindOptimizations.LeadingAnchor != RegexNodeKind.Unknown || 688rm.Tree.FindOptimizations.TrailingAnchor != RegexNodeKind.Unknown; 738int minRequiredLength = rm.Tree.FindOptimizations.MinRequiredLength; 762switch (regexTree.FindOptimizations.FindMode) 793Debug.Fail($"Unexpected mode: {regexTree.FindOptimizations.FindMode}"); 830switch (regexTree.FindOptimizations.FindMode) 845if (regexTree.FindOptimizations.FindMode == FindNextStartingPositionMode.LeadingAnchor_RightToLeft_Start) 918writer.WriteLine($"// The pattern has a trailing end (\\Z) anchor, and any possible match is exactly {regexTree.FindOptimizations.MinRequiredLength} characters."); 919using (EmitBlock(writer, $"if (pos < inputSpan.Length - {regexTree.FindOptimizations.MinRequiredLength + 1})")) 921writer.WriteLine($"base.runtextpos = inputSpan.Length - {regexTree.FindOptimizations.MinRequiredLength + 1};"); 929writer.WriteLine($"// The pattern has a trailing end (\\z) anchor, and any possible match is exactly {regexTree.FindOptimizations.MinRequiredLength} characters."); 930using (EmitBlock(writer, $"if (pos < inputSpan.Length - {regexTree.FindOptimizations.MinRequiredLength})")) 932writer.WriteLine($"base.runtextpos = inputSpan.Length - {regexTree.FindOptimizations.MinRequiredLength};"); 941switch (regexTree.FindOptimizations.LeadingAnchor) 976switch (regexTree.FindOptimizations.TrailingAnchor) 978case RegexNodeKind.End when regexTree.FindOptimizations.MaxPossibleLength is int maxLength: 987case RegexNodeKind.EndZ when regexTree.FindOptimizations.MaxPossibleLength is int maxLength: 1003RegexFindOptimizations opts = regexTree.FindOptimizations; 1010substring = regexTree.FindOptimizations.LeadingPrefix; 1016substring = regexTree.FindOptimizations.LeadingPrefix; 1023Debug.Assert(!string.IsNullOrEmpty(regexTree.FindOptimizations.FixedDistanceLiteral.String)); 1024substring = regexTree.FindOptimizations.FixedDistanceLiteral.String; 1025if (regexTree.FindOptimizations.FixedDistanceLiteral is { Distance: > 0 } literal) 1091RegexFindOptimizations opts = regexTree.FindOptimizations; 1122string prefix = regexTree.FindOptimizations.LeadingPrefix; 1138Debug.Assert(regexTree.FindOptimizations.FixedDistanceSets is { Count: > 0 }); 1140List<RegexFindOptimizations.FixedDistanceSet>? sets = regexTree.FindOptimizations.FixedDistanceSets; 1326Debug.Assert(regexTree.FindOptimizations.FixedDistanceSets is { Count: > 0 }); 1328RegexFindOptimizations.FixedDistanceSet set = regexTree.FindOptimizations.FixedDistanceSets![0]; 1360Debug.Assert(regexTree.FindOptimizations.LiteralAfterLoop is not null); 1361(RegexNode LoopNode, (char Char, string? String, StringComparison StringComparison, char[]? Chars) Literal) target = regexTree.FindOptimizations.LiteralAfterLoop.Value;