提交 7df5a155 编写于 作者: C Cyrus Najmabadi

simplify

上级 680bac65
......@@ -101,7 +101,7 @@ private ImmutableArray<RegexTrivia> ScanLeadingTrivia(bool allowTrivia, RegexOpt
return ImmutableArray<RegexTrivia>.Empty;
}
var result = ArrayBuilder<RegexTrivia>.GetInstance();
using var _ = ArrayBuilder<RegexTrivia>.GetInstance(out var result);
while (Position < Text.Length)
{
......@@ -122,7 +122,7 @@ private ImmutableArray<RegexTrivia> ScanLeadingTrivia(bool allowTrivia, RegexOpt
break;
}
return result.ToImmutableAndFree();
return result.ToImmutable();
}
public RegexTrivia? ScanComment(RegexOptions options)
......
......@@ -171,11 +171,11 @@ private RegexTree ParseTree()
var root = new RegexCompilationUnit(expression, _currentToken);
var seenDiagnostics = new HashSet<EmbeddedDiagnostic>();
var diagnostics = ArrayBuilder<EmbeddedDiagnostic>.GetInstance();
using var _ = ArrayBuilder<EmbeddedDiagnostic>.GetInstance(out var diagnostics);
CollectDiagnostics(root, seenDiagnostics, diagnostics);
return new RegexTree(
_lexer.Text, root, diagnostics.ToImmutableAndFree(),
_lexer.Text, root, diagnostics.ToImmutable(),
_captureNamesToSpan, _captureNumbersToSpan);
}
......@@ -259,7 +259,7 @@ private RegexExpressionNode ParseAlternatingSequencesWorker(bool consumeClosePar
private RegexSequenceNode ParseSequence(bool consumeCloseParen)
{
using var _ = ArrayBuilder<RegexExpressionNode>.GetInstance(out var builder);
using var _1 = ArrayBuilder<RegexExpressionNode>.GetInstance(out var builder);
while (ShouldConsumeSequenceElement(consumeCloseParen))
{
var last = builder.Count == 0 ? null : builder.Last();
......@@ -269,10 +269,10 @@ private RegexSequenceNode ParseSequence(bool consumeCloseParen)
// We wil commonly get tons of text nodes in a row. For example, the
// regex `abc` will be three text nodes in a row. To help save on memory
// try to merge that into one single text node.
var sequence = ArrayBuilder<RegexExpressionNode>.GetInstance();
using var _2 = ArrayBuilder<RegexExpressionNode>.GetInstance(out var sequence);
MergeTextNodes(builder, sequence);
return new RegexSequenceNode(sequence.ToImmutableAndFree());
return new RegexSequenceNode(sequence.ToImmutable());
}
private static void MergeTextNodes(ArrayBuilder<RegexExpressionNode> list, ArrayBuilder<RegexExpressionNode> final)
......@@ -1255,7 +1255,7 @@ private RegexBaseCharacterClassNode ParseCharacterClass()
// We wil commonly get tons of text nodes in a row. For example, the
// regex `[abc]` will be three text nodes in a row. To help save on memory
// try to merge that into one single text node.
var contents = ArrayBuilder<RegexExpressionNode>.GetInstance();
using var _ = ArrayBuilder<RegexExpressionNode>.GetInstance(out var contents);
MergeTextNodes(builder, contents);
if (closeBracketToken.IsMissing)
......@@ -1265,7 +1265,7 @@ private RegexBaseCharacterClassNode ParseCharacterClass()
GetTokenStartPositionSpan(_currentToken)));
}
var components = new RegexSequenceNode(contents.ToImmutableAndFree());
var components = new RegexSequenceNode(contents.ToImmutable());
return caretToken.IsMissing
? (RegexBaseCharacterClassNode)new RegexCharacterClassNode(openBracketToken, components, closeBracketToken)
: new RegexNegatedCharacterClassNode(openBracketToken, caretToken, components, closeBracketToken);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册