Optimised structs

This commit is contained in:
2024-09-16 20:12:48 +02:00
parent 23324a2b53
commit 74a141277e
47 changed files with 665 additions and 631 deletions

View File

@@ -2,7 +2,7 @@
public abstract partial class Lexer<TToken> where TToken : Enum
{
public struct Token : ISourceLocation
public readonly struct Token : ISourceLocation
{
public string File { get; }
public TToken Type { get; }

View File

@@ -16,7 +16,7 @@ public class VisitorContainer
public class VisitorContainer<T>
{
protected Dictionary<Type, Visitor.Visit<T>> Visitors { get; } = new();
public Visitor.Visit<T> Default { get; set; } = default!;
public Visitor.Visit<T> Default { get; } = default!;
public VisitorContainer<T> Register<TVisitee>(Visitor.Visit<T> visitor)
@@ -31,7 +31,7 @@ public class VisitorContainer<T>
public class VisitorContainer<TIn, TOut>
{
protected Dictionary<Type, Visitor.Visit<TIn, TOut>> Visitors { get; } = new();
public Visitor.Visit<TIn, TOut> Default { get; set; } = default!;
public Visitor.Visit<TIn, TOut> Default { get; } = default!;
public void Register<TVisitee>(Visitor.Visit<TIn, TOut> visitor)
{