From 100c1040c2e2e62efae5e85fe70b80191a509c49 Mon Sep 17 00:00:00 2001 From: Kevin Thompson Date: Sun, 14 Jul 2024 19:42:01 -0700 Subject: [PATCH] chore: update csharpier --- .config/dotnet-tools.json | 2 +- build/Build.cs | 4 +- .../SyntaxNodeGetChildrenGenerator.cs | 4 +- src/Panther/CodeAnalysis/Binder/Symbol.cs | 30 ++++---- src/Panther/CodeAnalysis/Emit/Emitter.cs | 12 ++-- .../CodeAnalysis/Lowering/ThreeAddressCode.cs | 4 +- .../CodeAnalysis/Symbols/Symbol.NoSymbol.cs | 3 +- .../CodeAnalysis/Symbols/Symbol.RootSymbol.cs | 3 +- .../CodeAnalysis/Symbols/SymbolExtensions.cs | 6 +- .../Syntax/SeparatedSyntaxList.cs | 3 +- .../CodeAnalysis/Syntax/SyntaxFacts.cs | 13 ++-- .../CodeAnalysis/Syntax/SyntaxToken.cs | 3 +- src/Panther/CodeAnalysis/Text/NoSourceFile.cs | 3 +- .../CodeAnalysis/Text/ScriptSourceFile.cs | 3 +- .../Typing/TypedBinaryOperator.cs | 27 ++++---- .../Typing/TypedConditionalGotoStatement.cs | 3 +- .../Typing/TypedErrorExpression.cs | 3 +- .../CodeAnalysis/Typing/TypedGotoStatement.cs | 3 +- .../Typing/TypedLiteralExpression.cs | 3 +- .../CodeAnalysis/Typing/TypedNopStatement.cs | 3 +- src/Panther/CodeAnalysis/Typing/TypedScope.cs | 7 +- src/Panther/CodeAnalysis/Typing/TypedType.cs | 3 +- src/Panther/CodeAnalysis/Typing/Typer.cs | 69 ++++++++++--------- .../CodeAnalysis/Binder/SymbolEnumerator.cs | 12 ++-- .../Lowering/BindingGenerators.cs | 12 ++-- .../Syntax/NonSeparatorTokenTestData.cs | 3 +- .../Syntax/SeparatorTokenTestData.cs | 3 +- .../CodeAnalysis/Syntax/TokenGenerators.cs | 3 +- 28 files changed, 133 insertions(+), 114 deletions(-) diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index fc8ed20..abd8b19 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -9,7 +9,7 @@ ] }, "csharpier": { - "version": "0.18.0", + "version": "0.28.2", "commands": [ "dotnet-csharpier" ] diff --git a/build/Build.cs b/build/Build.cs index 4e7a315..ef2ae19 100644 --- a/build/Build.cs +++ b/build/Build.cs @@ -11,7 +11,6 @@ using Nuke.Common.Tools.NerdbankGitVersioning; using Nuke.Common.Utilities.Collections; using Nuke.Components; - using static Nuke.Common.Tools.ReSharper.ReSharperTasks; [UnsetVisualStudioEnvironmentVariables] @@ -138,5 +137,6 @@ class Build string IPublish.NuGetSource => GitRepository.IsOnMainBranch() ? PublicNuGetSource : GitHubRegistrySource; - T From() where T : INukeBuild => (T)(object)this; + T From() + where T : INukeBuild => (T)(object)this; } diff --git a/src/Panther.Generators/SyntaxNodeGetChildrenGenerator.cs b/src/Panther.Generators/SyntaxNodeGetChildrenGenerator.cs index b43b7f7..1e200f4 100644 --- a/src/Panther.Generators/SyntaxNodeGetChildrenGenerator.cs +++ b/src/Panther.Generators/SyntaxNodeGetChildrenGenerator.cs @@ -39,8 +39,8 @@ public void Execute(SourceGeneratorContext context) "Panther.CodeAnalysis.Syntax.SeparatedSyntaxList`1" ); var allTypes = GetAllTypes(compilation.Assembly); - var syntaxNodeTypes = allTypes.Where( - type => !type.IsAbstract && IsDerivedFrom(type, syntaxNodeType) && IsPartial(type) + var syntaxNodeTypes = allTypes.Where(type => + !type.IsAbstract && IsDerivedFrom(type, syntaxNodeType) && IsPartial(type) ); foreach (var syntaxNode in syntaxNodeTypes) diff --git a/src/Panther/CodeAnalysis/Binder/Symbol.cs b/src/Panther/CodeAnalysis/Binder/Symbol.cs index 33d0ae2..e16a67d 100644 --- a/src/Panther/CodeAnalysis/Binder/Symbol.cs +++ b/src/Panther/CodeAnalysis/Binder/Symbol.cs @@ -26,34 +26,38 @@ public string FullName } } - - public (Symbol, bool existing) DeclareClass(string name, TextLocation location) => + public (Symbol, bool existing) DeclareClass(string name, TextLocation location) => DeclareSymbol(name, SymbolFlags.Class, location); - - public (Symbol, bool existing) DeclareField(string name, TextLocation location) => + + public (Symbol, bool existing) DeclareField(string name, TextLocation location) => DeclareSymbol(name, SymbolFlags.Field, location); - - public (Symbol, bool existing) DeclareMethod(string name, TextLocation location) => + + public (Symbol, bool existing) DeclareMethod(string name, TextLocation location) => DeclareSymbol(name, SymbolFlags.Method, location); - public (Symbol, bool existing) DeclareSymbol(string name, SymbolFlags flags, TextLocation location) + public (Symbol, bool existing) DeclareSymbol( + string name, + SymbolFlags flags, + TextLocation location + ) { _symbols ??= new(); _symbolList ??= new(); var symbol = new Symbol(name, flags, location, this); var existing = !_symbols.TryAdd(name, symbol); - - if(!existing) _symbolList.Add(symbol); - + + if (!existing) + _symbolList.Add(symbol); + return (existing ? _symbols[name] : symbol, existing); } - public Symbol? Lookup(string name, bool includeParents = true) => + public Symbol? Lookup(string name, bool includeParents = true) => _symbols?.GetValueOrDefault(name) ?? this.Parent?.Lookup(name, includeParents); public IEnumerator GetEnumerator() { - if(_symbolList == null) + if (_symbolList == null) yield break; foreach (var symbol in _symbolList) @@ -64,4 +68,4 @@ IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } -} \ No newline at end of file +} diff --git a/src/Panther/CodeAnalysis/Emit/Emitter.cs b/src/Panther/CodeAnalysis/Emit/Emitter.cs index a803ce9..fc26964 100644 --- a/src/Panther/CodeAnalysis/Emit/Emitter.cs +++ b/src/Panther/CodeAnalysis/Emit/Emitter.cs @@ -1,8 +1,8 @@ using System; -using System.Linq; -using Mono.Cecil; using System.Collections.Generic; using System.Collections.Immutable; +using System.Linq; +using Mono.Cecil; using Mono.Cecil.Cil; using Mono.Cecil.Rocks; using Panther.CodeAnalysis.Symbols; @@ -998,8 +998,8 @@ private void EmitCallExpression(ILProcessor ilProcessor, TypedCallExpression nod return method; } - var parameterTypeNames = methodSymbol.Parameters - .Select(p => LookupType(p.Type.Symbol).FullName) + var parameterTypeNames = methodSymbol + .Parameters.Select(p => LookupType(p.Type.Symbol).FullName) .ToArray(); var methodName = methodSymbol.Name; @@ -1286,8 +1286,8 @@ private MethodReference ResolvePropertyGetter(Type type, string propertyName) if (methodDefinition.Parameters.Count != parameterTypeNames.Length) continue; - var matches = methodDefinition.Parameters - .Select(p => p.ParameterType.FullName) + var matches = methodDefinition + .Parameters.Select(p => p.ParameterType.FullName) .Zip( parameterTypeNames, (methodParam, searchParamName) => methodParam == searchParamName diff --git a/src/Panther/CodeAnalysis/Lowering/ThreeAddressCode.cs b/src/Panther/CodeAnalysis/Lowering/ThreeAddressCode.cs index a300c94..b7e3716 100644 --- a/src/Panther/CodeAnalysis/Lowering/ThreeAddressCode.cs +++ b/src/Panther/CodeAnalysis/Lowering/ThreeAddressCode.cs @@ -49,8 +49,8 @@ protected override TypedExpression RewriteCallExpression(TypedCallExpression nod // can get out of order if there are side effects in any of the arguments. In order to prevent this we need // to break out the evaluation of each argument and assign to a temporary variable in the correct order. // we can then access this temp variable later when we call the function - var args = node.Arguments - .Select(RewriteExpression) + var args = node + .Arguments.Select(RewriteExpression) .Select(expr => CreateTemporary(expr, "ctemp")) .ToImmutableArray(); diff --git a/src/Panther/CodeAnalysis/Symbols/Symbol.NoSymbol.cs b/src/Panther/CodeAnalysis/Symbols/Symbol.NoSymbol.cs index ee8de63..f3d0e2c 100644 --- a/src/Panther/CodeAnalysis/Symbols/Symbol.NoSymbol.cs +++ b/src/Panther/CodeAnalysis/Symbols/Symbol.NoSymbol.cs @@ -6,7 +6,8 @@ public abstract partial class Symbol { private sealed class NoSymbol : Symbol { - public NoSymbol() : base(null, TextLocation.None, "") + public NoSymbol() + : base(null, TextLocation.None, "") { this.Type = Type.NoType; } diff --git a/src/Panther/CodeAnalysis/Symbols/Symbol.RootSymbol.cs b/src/Panther/CodeAnalysis/Symbols/Symbol.RootSymbol.cs index 7979ee3..91991b4 100644 --- a/src/Panther/CodeAnalysis/Symbols/Symbol.RootSymbol.cs +++ b/src/Panther/CodeAnalysis/Symbols/Symbol.RootSymbol.cs @@ -9,7 +9,8 @@ private sealed class RootSymbol : Symbol public override Symbol Owner => this; public override bool IsRoot => true; - public RootSymbol() : base(null, TextLocation.None, "global::") + public RootSymbol() + : base(null, TextLocation.None, "global::") { this.Type = Type.NoType; } diff --git a/src/Panther/CodeAnalysis/Symbols/SymbolExtensions.cs b/src/Panther/CodeAnalysis/Symbols/SymbolExtensions.cs index 9e92281..b1a276c 100644 --- a/src/Panther/CodeAnalysis/Symbols/SymbolExtensions.cs +++ b/src/Panther/CodeAnalysis/Symbols/SymbolExtensions.cs @@ -4,13 +4,15 @@ namespace Panther.CodeAnalysis.Symbols; public static class SymbolExtensions { - public static T WithFlags(this T symbol, SymbolFlags flags) where T : Symbol + public static T WithFlags(this T symbol, SymbolFlags flags) + where T : Symbol { symbol.Flags |= flags; return symbol; } - public static T WithType(this T symbol, Type type) where T : Symbol + public static T WithType(this T symbol, Type type) + where T : Symbol { symbol.Type = type; return symbol; diff --git a/src/Panther/CodeAnalysis/Syntax/SeparatedSyntaxList.cs b/src/Panther/CodeAnalysis/Syntax/SeparatedSyntaxList.cs index 86343fd..3af7529 100644 --- a/src/Panther/CodeAnalysis/Syntax/SeparatedSyntaxList.cs +++ b/src/Panther/CodeAnalysis/Syntax/SeparatedSyntaxList.cs @@ -9,7 +9,8 @@ public abstract class SeparatedSyntaxList public abstract ImmutableArray GetWithSeparators(); } -public class SeparatedSyntaxList : SeparatedSyntaxList, IReadOnlyList where T : SyntaxNode +public class SeparatedSyntaxList : SeparatedSyntaxList, IReadOnlyList + where T : SyntaxNode { private readonly ImmutableArray _nodesAndSeparators; diff --git a/src/Panther/CodeAnalysis/Syntax/SyntaxFacts.cs b/src/Panther/CodeAnalysis/Syntax/SyntaxFacts.cs index d413c82..45894b4 100644 --- a/src/Panther/CodeAnalysis/Syntax/SyntaxFacts.cs +++ b/src/Panther/CodeAnalysis/Syntax/SyntaxFacts.cs @@ -165,13 +165,12 @@ public static IEnumerable GetUnaryOperatorKinds() => public static IEnumerable GetBinaryOperatorKinds() => Enum.GetValues(typeof(SyntaxKind)) .Cast() - .Where( - kind => - kind != SyntaxKind.EqualsToken - && kind != SyntaxKind.OpenParenToken - && kind != SyntaxKind.DotToken - && kind != SyntaxKind.OpenBracketToken - && GetBinaryOperatorPrecedence(kind) > 0 + .Where(kind => + kind != SyntaxKind.EqualsToken + && kind != SyntaxKind.OpenParenToken + && kind != SyntaxKind.DotToken + && kind != SyntaxKind.OpenBracketToken + && GetBinaryOperatorPrecedence(kind) > 0 ); public static bool IsTrivia(this SyntaxKind kind) => diff --git a/src/Panther/CodeAnalysis/Syntax/SyntaxToken.cs b/src/Panther/CodeAnalysis/Syntax/SyntaxToken.cs index ee9d41f..43dfdef 100644 --- a/src/Panther/CodeAnalysis/Syntax/SyntaxToken.cs +++ b/src/Panther/CodeAnalysis/Syntax/SyntaxToken.cs @@ -71,7 +71,8 @@ private SyntaxToken( bool isInsertedToken, ImmutableArray leadingTrivia, ImmutableArray trailingTrivia - ) : base(sourceFile) + ) + : base(sourceFile) { Kind = kind; Position = position; diff --git a/src/Panther/CodeAnalysis/Text/NoSourceFile.cs b/src/Panther/CodeAnalysis/Text/NoSourceFile.cs index 3d3e28d..6f9ebe2 100644 --- a/src/Panther/CodeAnalysis/Text/NoSourceFile.cs +++ b/src/Panther/CodeAnalysis/Text/NoSourceFile.cs @@ -12,5 +12,6 @@ public sealed class NoSourceFile : SourceFile public override string ToString() => ""; - internal NoSourceFile() : base("", "") { } + internal NoSourceFile() + : base("", "") { } } diff --git a/src/Panther/CodeAnalysis/Text/ScriptSourceFile.cs b/src/Panther/CodeAnalysis/Text/ScriptSourceFile.cs index c7a2fba..bd6e18c 100644 --- a/src/Panther/CodeAnalysis/Text/ScriptSourceFile.cs +++ b/src/Panther/CodeAnalysis/Text/ScriptSourceFile.cs @@ -7,7 +7,8 @@ public sealed class ScriptSourceFile : SourceFile public override int LineCount => Lines.Count; private IReadOnlyList Lines { get; } - internal ScriptSourceFile(string text, string fileName) : base(fileName, text) + internal ScriptSourceFile(string text, string fileName) + : base(fileName, text) { Lines = ParseLines(this, text); } diff --git a/src/Panther/CodeAnalysis/Typing/TypedBinaryOperator.cs b/src/Panther/CodeAnalysis/Typing/TypedBinaryOperator.cs index 9c2ac92..5759843 100644 --- a/src/Panther/CodeAnalysis/Typing/TypedBinaryOperator.cs +++ b/src/Panther/CodeAnalysis/Typing/TypedBinaryOperator.cs @@ -33,7 +33,8 @@ private TypedBinaryOperator( SyntaxKind syntaxKind, Type type, Type resultType - ) : this(kind, syntaxKind, type, type, resultType) { } + ) + : this(kind, syntaxKind, type, type, resultType) { } private TypedBinaryOperator(TypedBinaryOperatorKind kind, SyntaxKind syntaxKind, Type type) : this(kind, syntaxKind, type, type, type) { } @@ -175,21 +176,17 @@ private TypedBinaryOperator(TypedBinaryOperatorKind kind, SyntaxKind syntaxKind, }; public static TypedBinaryOperator? Bind(SyntaxKind kind, Type leftType, Type rightType) => - _operators.FirstOrDefault( - op => - op.SyntaxKind == kind - && ( - ( - op.LeftType == leftType - || (op.LeftType.IsReferenceType && leftType == Type.Null) - ) - && op.RightType == rightType - || ( - op.RightType == rightType - || (op.RightType.IsReferenceType && rightType == Type.Null) - ) - && op.LeftType == leftType + _operators.FirstOrDefault(op => + op.SyntaxKind == kind + && ( + (op.LeftType == leftType || (op.LeftType.IsReferenceType && leftType == Type.Null)) + && op.RightType == rightType + || ( + op.RightType == rightType + || (op.RightType.IsReferenceType && rightType == Type.Null) ) + && op.LeftType == leftType + ) ); public static TypedBinaryOperator BindOrThrow(SyntaxKind kind, Type leftType, Type rightType) => diff --git a/src/Panther/CodeAnalysis/Typing/TypedConditionalGotoStatement.cs b/src/Panther/CodeAnalysis/Typing/TypedConditionalGotoStatement.cs index d83c580..e0d56ca 100644 --- a/src/Panther/CodeAnalysis/Typing/TypedConditionalGotoStatement.cs +++ b/src/Panther/CodeAnalysis/Typing/TypedConditionalGotoStatement.cs @@ -8,5 +8,6 @@ public TypedConditionalGotoStatement( SyntaxNode syntax, TypedLabel TypedLabel, TypedExpression condition - ) : this(syntax, TypedLabel, condition, false) { } + ) + : this(syntax, TypedLabel, condition, false) { } } diff --git a/src/Panther/CodeAnalysis/Typing/TypedErrorExpression.cs b/src/Panther/CodeAnalysis/Typing/TypedErrorExpression.cs index b92ebd8..141a18a 100644 --- a/src/Panther/CodeAnalysis/Typing/TypedErrorExpression.cs +++ b/src/Panther/CodeAnalysis/Typing/TypedErrorExpression.cs @@ -5,7 +5,8 @@ namespace Panther.CodeAnalysis.Typing; internal sealed record TypedErrorExpression : TypedExpression { - public TypedErrorExpression(SyntaxNode syntax) : base(syntax) { } + public TypedErrorExpression(SyntaxNode syntax) + : base(syntax) { } public override TypedNodeKind Kind => TypedNodeKind.ErrorExpression; diff --git a/src/Panther/CodeAnalysis/Typing/TypedGotoStatement.cs b/src/Panther/CodeAnalysis/Typing/TypedGotoStatement.cs index 514f100..a193790 100644 --- a/src/Panther/CodeAnalysis/Typing/TypedGotoStatement.cs +++ b/src/Panther/CodeAnalysis/Typing/TypedGotoStatement.cs @@ -8,7 +8,8 @@ sealed record TypedGotoStatement : TypedStatement public override TypedNodeKind Kind => TypedNodeKind.GotoStatement; - public TypedGotoStatement(SyntaxNode syntax, TypedLabel boundLabel) : base(syntax) + public TypedGotoStatement(SyntaxNode syntax, TypedLabel boundLabel) + : base(syntax) { TypedLabel = boundLabel; } diff --git a/src/Panther/CodeAnalysis/Typing/TypedLiteralExpression.cs b/src/Panther/CodeAnalysis/Typing/TypedLiteralExpression.cs index ebac1d0..71a4002 100644 --- a/src/Panther/CodeAnalysis/Typing/TypedLiteralExpression.cs +++ b/src/Panther/CodeAnalysis/Typing/TypedLiteralExpression.cs @@ -5,7 +5,8 @@ namespace Panther.CodeAnalysis.Typing; internal sealed record TypedLiteralExpression : TypedExpression { - public TypedLiteralExpression(SyntaxNode syntax, object value) : base(syntax) + public TypedLiteralExpression(SyntaxNode syntax, object value) + : base(syntax) { Value = value; Type = value switch diff --git a/src/Panther/CodeAnalysis/Typing/TypedNopStatement.cs b/src/Panther/CodeAnalysis/Typing/TypedNopStatement.cs index 0b59bb0..1c3ce22 100644 --- a/src/Panther/CodeAnalysis/Typing/TypedNopStatement.cs +++ b/src/Panther/CodeAnalysis/Typing/TypedNopStatement.cs @@ -6,7 +6,8 @@ internal sealed record TypedNopStatement : TypedStatement { public override TypedNodeKind Kind => TypedNodeKind.NopStatement; - public TypedNopStatement(SyntaxNode syntax) : base(syntax) { } + public TypedNopStatement(SyntaxNode syntax) + : base(syntax) { } public override void Accept(TypedNodeVisitor visitor) => visitor.VisitNopStatement(this); diff --git a/src/Panther/CodeAnalysis/Typing/TypedScope.cs b/src/Panther/CodeAnalysis/Typing/TypedScope.cs index 903f84c..e6f6fd6 100644 --- a/src/Panther/CodeAnalysis/Typing/TypedScope.cs +++ b/src/Panther/CodeAnalysis/Typing/TypedScope.cs @@ -12,10 +12,11 @@ internal sealed class TypedScope : SymbolContainer public TypedScope Parent { get; } - public TypedScope(TypedScope parent, string? name = null) : this(parent.Symbol, parent, name) - { } + public TypedScope(TypedScope parent, string? name = null) + : this(parent.Symbol, parent, name) { } - public TypedScope(Symbol symbol, string? name = null) : this(symbol, null, name) { } + public TypedScope(Symbol symbol, string? name = null) + : this(symbol, null, name) { } public TypedScope(TypedScope parent, Symbol symbol, string? name = null) : this(symbol, parent, name) { } diff --git a/src/Panther/CodeAnalysis/Typing/TypedType.cs b/src/Panther/CodeAnalysis/Typing/TypedType.cs index 02063a1..20d3f00 100644 --- a/src/Panther/CodeAnalysis/Typing/TypedType.cs +++ b/src/Panther/CodeAnalysis/Typing/TypedType.cs @@ -5,7 +5,8 @@ namespace Panther.CodeAnalysis.Typing; internal sealed class TypedType : TypeSymbol { - public TypedType(Symbol owner, TextLocation location, string name) : base(owner, location, name) + public TypedType(Symbol owner, TextLocation location, string name) + : base(owner, location, name) { Type = new ClassType(this); } diff --git a/src/Panther/CodeAnalysis/Typing/Typer.cs b/src/Panther/CodeAnalysis/Typing/Typer.cs index c77dbc6..f007be6 100644 --- a/src/Panther/CodeAnalysis/Typing/Typer.cs +++ b/src/Panther/CodeAnalysis/Typing/Typer.cs @@ -140,8 +140,8 @@ private void BindMembers( TypedScope scope ) { - var (objectsAndClasses, rest) = members.Partition( - member => member is ObjectDeclarationSyntax or ClassDeclarationSyntax + var (objectsAndClasses, rest) = members.Partition(member => + member is ObjectDeclarationSyntax or ClassDeclarationSyntax ); var (functions, statements) = rest.Partition(member => member is FunctionDeclarationSyntax); @@ -338,8 +338,8 @@ select firstStatement var main = mainFunction - ?? boundScope.Symbol - .NewMethod(TextLocation.None, "main") + ?? boundScope + .Symbol.NewMethod(TextLocation.None, "main") .WithType(new MethodType(ImmutableArray.Empty, Type.Unit)) .WithFlags(SymbolFlags.Static); @@ -362,8 +362,8 @@ ImmutableArray globalStatements if (!globalStatements.Any()) return null; - var eval = boundScope.Symbol - .NewMethod(TextLocation.None, "$eval") + var eval = boundScope + .Symbol.NewMethod(TextLocation.None, "$eval") .WithType(Type.Any) .WithFlags(SymbolFlags.Static); @@ -426,8 +426,8 @@ ImmutableArray references var thisScope = fileScope; var allTopLevel = compilationUnit.Members.All(IsTopLevelDeclaration); - var allGlobalStatements = compilationUnit.Members.All( - member => member is GlobalStatementSyntax + var allGlobalStatements = compilationUnit.Members.All(member => + member is GlobalStatementSyntax ); if (!allTopLevel || !allGlobalStatements) @@ -450,8 +450,8 @@ ImmutableArray references fileScope.ImportMembers(namespaceOrTypeSymbol); } - var (objectsAndClasses, rest) = compilationUnit.Members.Partition( - member => member is ObjectDeclarationSyntax or ClassDeclarationSyntax + var (objectsAndClasses, rest) = compilationUnit.Members.Partition(member => + member is ObjectDeclarationSyntax or ClassDeclarationSyntax ); var (functions, rest2) = rest.Partition(member => member is FunctionDeclarationSyntax); var theseGlobalStatements = rest2.OfType().ToImmutableArray(); @@ -478,9 +478,8 @@ ImmutableArray references } var statements = globalStatements - .Select( - globalStatementSyntax => - binder.BindGlobalStatement(globalStatementSyntax.Statement, defaultTypeScope!) + .Select(globalStatementSyntax => + binder.BindGlobalStatement(globalStatementSyntax.Statement, defaultTypeScope!) ) .ToImmutableArray(); @@ -885,8 +884,8 @@ TypedScope scope Symbol variable; if (scope.Symbol.IsType) { - variable = scope.Symbol - .NewField(identifier.Location, name, isReadOnly) + variable = scope + .Symbol.NewField(identifier.Location, name, isReadOnly) .WithType(expressionType); if (scope.Symbol.IsObject) @@ -896,8 +895,8 @@ TypedScope scope } else { - variable = scope.Symbol - .NewLocal(identifier.Location, name, isReadOnly) + variable = scope + .Symbol.NewLocal(identifier.Location, name, isReadOnly) .WithType(expressionType); } @@ -997,9 +996,9 @@ TypedScope scope ); } - var convertedArgs = syntax.Initializer.Arguments - .Select( - arg => BindConversion(arg.Location, BindExpression(arg, scope), typeSymbol.Type) + var convertedArgs = syntax + .Initializer.Arguments.Select(arg => + BindConversion(arg.Location, BindExpression(arg, scope), typeSymbol.Type) ) .ToImmutableArray(); @@ -1014,8 +1013,8 @@ TypedScope scope private TypedExpression BindNewExpression(NewExpressionSyntax syntax, TypedScope scope) { - var boundArguments = syntax.Arguments - .Select(argument => BindExpression(argument, scope)) + var boundArguments = syntax + .Arguments.Select(argument => BindExpression(argument, scope)) .ToImmutableArray(); var type = BindTypeSymbol(syntax.Type, scope); @@ -1026,8 +1025,10 @@ private TypedExpression BindNewExpression(NewExpressionSyntax syntax, TypedScope return new TypedErrorExpression(syntax); // find constructor from type that matches the arguments: - var filteredSymbols = type.Constructors - .Where(sym => (sym.IsMethod && sym.Parameters.Length == boundArguments.Length)) + var filteredSymbols = type + .Constructors.Where(sym => + (sym.IsMethod && sym.Parameters.Length == boundArguments.Length) + ) .ToImmutableArray(); switch (filteredSymbols.Length) @@ -1342,8 +1343,8 @@ private TypedExpression BindCallExpression(CallExpressionSyntax syntax, TypedSco { // TODO: we should be able to refactor this a bit by extracting all of the IdentifierNameSyntax steps - var boundArguments = syntax.Arguments - .Select(argument => BindExpression(argument, scope)) + var boundArguments = syntax + .Arguments.Select(argument => BindExpression(argument, scope)) .ToImmutableArray(); if (boundArguments.Any(arg => arg is TypedErrorExpression)) @@ -1367,8 +1368,8 @@ private TypedExpression BindCallExpression(CallExpressionSyntax syntax, TypedSco if (expression is TypedMethodExpression boundMethodExpression) { - var methods = boundMethodExpression.Methods - .Where(x => x.Parameters.Length == boundArguments.Length) + var methods = boundMethodExpression + .Methods.Where(x => x.Parameters.Length == boundArguments.Length) .ToImmutableArray(); if (methods.Length == 0) @@ -1762,8 +1763,8 @@ private TypedExpression BindUnitExpression(UnitExpressionSyntax syntax) => private TypedExpression BindBlockExpression(BlockExpressionSyntax syntax, TypedScope scope) { var blockScope = new TypedScope(scope); - var stmts = syntax.Statements - .Select(stmt => BindStatement(stmt, blockScope)) + var stmts = syntax + .Statements.Select(stmt => BindStatement(stmt, blockScope)) .ToImmutableArray(); var expr = BindExpression(syntax.Expression, blockScope); @@ -2017,11 +2018,11 @@ private TypedExpression BindIndexExpression(IndexExpressionSyntax syntax, TypedS // HACK: add find by `get_` prefix since string has a different name for the default index operator // TODO: once we support attributes we would need to look for the type with the DefaultMember attribute var getters = symbol.Members.Where(m => m.IsMethod && m.Name.StartsWith("get_")); - var getter = getters.FirstOrDefault( - m => m.Parameters.Length == 1 && m.Parameters[0].Type == index.Type + var getter = getters.FirstOrDefault(m => + m.Parameters.Length == 1 && m.Parameters[0].Type == index.Type ); - var setter = symbol.Members - .Where(m => m.IsMethod && m.Name.StartsWith("set_")) + var setter = symbol + .Members.Where(m => m.IsMethod && m.Name.StartsWith("set_")) .FirstOrDefault(m => m.Parameters.Length == 2 && m.Parameters[0].Type == index.Type); if (getter == null && setter == null) diff --git a/tests/Panther.Tests/CodeAnalysis/Binder/SymbolEnumerator.cs b/tests/Panther.Tests/CodeAnalysis/Binder/SymbolEnumerator.cs index 3b67069..22fe58e 100644 --- a/tests/Panther.Tests/CodeAnalysis/Binder/SymbolEnumerator.cs +++ b/tests/Panther.Tests/CodeAnalysis/Binder/SymbolEnumerator.cs @@ -7,7 +7,8 @@ namespace Panther.Tests.CodeAnalysis.Binder; class SymbolEnumerator(Symbol root) : IDisposable { - private readonly IEnumerator _enumerator = EnumerateSymbols(root, false).GetEnumerator(); + private readonly IEnumerator _enumerator = EnumerateSymbols(root, false) + .GetEnumerator(); private bool _hasErrors; @@ -33,11 +34,14 @@ public void Dispose() { if (!_hasErrors) { - Assert.False(_enumerator.MoveNext(), $"Additional symbols remain: {_enumerator.Current.Name}"); + Assert.False( + _enumerator.MoveNext(), + $"Additional symbols remain: {_enumerator.Current.Name}" + ); } _enumerator.Dispose(); } - + private static IEnumerable EnumerateSymbols(Symbol symbol, bool includeRoot = true) { if (includeRoot) @@ -49,4 +53,4 @@ private static IEnumerable EnumerateSymbols(Symbol symbol, bool includeR yield return s; } } -} \ No newline at end of file +} diff --git a/tests/Panther.Tests/CodeAnalysis/Lowering/BindingGenerators.cs b/tests/Panther.Tests/CodeAnalysis/Lowering/BindingGenerators.cs index 8db8314..3f0e6cb 100644 --- a/tests/Panther.Tests/CodeAnalysis/Lowering/BindingGenerators.cs +++ b/tests/Panther.Tests/CodeAnalysis/Lowering/BindingGenerators.cs @@ -196,14 +196,10 @@ from x in Arb.Generate() public static Arbitrary> ImmutableArray() { - return Gen.Sized( - size => - from n in Gen.Choose(0, size) - from array in Gen.ArrayOf( - n, - Gen.Resize(n == 0 ? 0 : size / n, Arb.Generate()) - ) - select System.Collections.Immutable.ImmutableArray.Create(array) + return Gen.Sized(size => + from n in Gen.Choose(0, size) + from array in Gen.ArrayOf(n, Gen.Resize(n == 0 ? 0 : size / n, Arb.Generate())) + select System.Collections.Immutable.ImmutableArray.Create(array) ) .ToArbitrary(); } diff --git a/tests/Panther.Tests/CodeAnalysis/Syntax/NonSeparatorTokenTestData.cs b/tests/Panther.Tests/CodeAnalysis/Syntax/NonSeparatorTokenTestData.cs index 172d78c..0d47a76 100644 --- a/tests/Panther.Tests/CodeAnalysis/Syntax/NonSeparatorTokenTestData.cs +++ b/tests/Panther.Tests/CodeAnalysis/Syntax/NonSeparatorTokenTestData.cs @@ -4,5 +4,6 @@ namespace Panther.Tests.CodeAnalysis.Syntax; public class NonSeparatorTokenTestData : TokenTestData { - public NonSeparatorTokenTestData(SyntaxKind kind, string text) : base(kind, text) { } + public NonSeparatorTokenTestData(SyntaxKind kind, string text) + : base(kind, text) { } } diff --git a/tests/Panther.Tests/CodeAnalysis/Syntax/SeparatorTokenTestData.cs b/tests/Panther.Tests/CodeAnalysis/Syntax/SeparatorTokenTestData.cs index 649a930..49bfcac 100644 --- a/tests/Panther.Tests/CodeAnalysis/Syntax/SeparatorTokenTestData.cs +++ b/tests/Panther.Tests/CodeAnalysis/Syntax/SeparatorTokenTestData.cs @@ -4,7 +4,8 @@ namespace Panther.Tests.CodeAnalysis.Syntax; public class SeparatorTokenTestData : TokenTestData { - public SeparatorTokenTestData(SyntaxKind kind, string text) : base(kind, text) { } + public SeparatorTokenTestData(SyntaxKind kind, string text) + : base(kind, text) { } public override string ToString() => $"{Kind} - '{Text}'"; } diff --git a/tests/Panther.Tests/CodeAnalysis/Syntax/TokenGenerators.cs b/tests/Panther.Tests/CodeAnalysis/Syntax/TokenGenerators.cs index 9c96993..3bf8a1a 100644 --- a/tests/Panther.Tests/CodeAnalysis/Syntax/TokenGenerators.cs +++ b/tests/Panther.Tests/CodeAnalysis/Syntax/TokenGenerators.cs @@ -106,7 +106,8 @@ private static bool TokensCoalesce(SyntaxKind kind1, SyntaxKind kind2) return true; if ( - (kind1Keyword || kind1 == SyntaxKind.IdentifierToken) && kind2 == SyntaxKind.NumberToken + (kind1Keyword || kind1 == SyntaxKind.IdentifierToken) + && kind2 == SyntaxKind.NumberToken ) return true;