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