diff options
| author | ACGNnsj <ootopoo@vip.qq.com> | 2023-03-28 20:59:43 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-28 14:59:43 +0200 |
| commit | 460f96967de6f5cb729ed57baaa4dad2178c8cb6 (patch) | |
| tree | 9cb4ef2daa0e712d3b449572ab018e9fdab74179 /Ryujinx.Horizon.Kernel.Generators/Kernel/SyscallGenerator.cs | |
| parent | 7ca779a26d76a3ad1edd94ba6c1cfd7466d73314 (diff) | |
Slight Code Refactoring (#4373)
* Simplify return statements by using ternary expressions
* Remove a redundant type conversion
* Reduce nesting by inverting "if" statements
* Try to improve code readability by using LINQ and inverting "if" statements
* Try to improve code readability by using LINQ, using ternary expressions, and inverting "if" statements
* Add line breaks to long LINQ
* Add line breaks to long LINQ
Diffstat (limited to 'Ryujinx.Horizon.Kernel.Generators/Kernel/SyscallGenerator.cs')
| -rw-r--r-- | Ryujinx.Horizon.Kernel.Generators/Kernel/SyscallGenerator.cs | 48 |
1 files changed, 13 insertions, 35 deletions
diff --git a/Ryujinx.Horizon.Kernel.Generators/Kernel/SyscallGenerator.cs b/Ryujinx.Horizon.Kernel.Generators/Kernel/SyscallGenerator.cs index 8bc0800c..51da2187 100644 --- a/Ryujinx.Horizon.Kernel.Generators/Kernel/SyscallGenerator.cs +++ b/Ryujinx.Horizon.Kernel.Generators/Kernel/SyscallGenerator.cs @@ -4,6 +4,7 @@ using Microsoft.CodeAnalysis.CSharp.Syntax; using System; using System.Collections.Generic; using System.Diagnostics; +using System.Linq; namespace Ryujinx.Horizon.Generators.Kernel { @@ -151,24 +152,15 @@ namespace Ryujinx.Horizon.Generators.Kernel GenerateMethod32(generator, context.Compilation, method); GenerateMethod64(generator, context.Compilation, method); - foreach (var attributeList in method.AttributeLists) + foreach (AttributeSyntax attribute in method.AttributeLists.SelectMany(attributeList => + attributeList.Attributes.Where(attribute => + GetCanonicalTypeName(context.Compilation, attribute) == TypeSvcAttribute))) { - foreach (var attribute in attributeList.Attributes) - { - if (GetCanonicalTypeName(context.Compilation, attribute) != TypeSvcAttribute) - { - continue; - } - - foreach (var attributeArg in attribute.ArgumentList.Arguments) - { - if (attributeArg.Expression.Kind() == SyntaxKind.NumericLiteralExpression) - { - LiteralExpressionSyntax numericLiteral = (LiteralExpressionSyntax)attributeArg.Expression; - syscalls.Add(new SyscallIdAndName((int)numericLiteral.Token.Value, method.Identifier.Text)); - } - } - } + syscalls.AddRange(from attributeArg in attribute.ArgumentList.Arguments + where attributeArg.Expression.Kind() == SyntaxKind.NumericLiteralExpression + select (LiteralExpressionSyntax)attributeArg.Expression + into numericLiteral + select new SyscallIdAndName((int)numericLiteral.Token.Value, method.Identifier.Text)); } } @@ -510,28 +502,14 @@ namespace Ryujinx.Horizon.Generators.Kernel private static string GenerateCastFromUInt64(string value, string canonicalTargetTypeName, string targetTypeName) { - if (canonicalTargetTypeName == TypeSystemBoolean) - { - return $"({value} & 1) != 0"; - } - - return $"({targetTypeName}){value}"; + return canonicalTargetTypeName == TypeSystemBoolean ? $"({value} & 1) != 0" : $"({targetTypeName}){value}"; } private static bool IsPointerSized(Compilation compilation, ParameterSyntax parameterSyntax) { - foreach (var attributeList in parameterSyntax.AttributeLists) - { - foreach (var attribute in attributeList.Attributes) - { - if (GetCanonicalTypeName(compilation, attribute) == TypePointerSizedAttribute) - { - return true; - } - } - } - - return false; + return parameterSyntax.AttributeLists.Any(attributeList => + attributeList.Attributes.Any(attribute => + GetCanonicalTypeName(compilation, attribute) == TypePointerSizedAttribute)); } public void Initialize(GeneratorInitializationContext context) |
