Skip to content

Bump jetbrains.resharper.globaltools from 2023.3.1 to 2023.3.2; fix new warnings #1428

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"jetbrains.resharper.globaltools": {
"version": "2023.3.1",
"version": "2023.3.2",
"commands": [
"jb"
]
Expand All @@ -27,4 +27,4 @@
]
}
}
}
}
3 changes: 3 additions & 0 deletions JsonApiDotNetCore.sln.DotSettings
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ JsonApiDotNetCore.ArgumentGuard.NotNull($EXPR$);</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceLockStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceUsingStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceWhileStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EntityFramework_002EModelValidation_002EUnlimitedStringLength/@EntryIndexedValue">DO_NOT_SHOW</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EventNeverSubscribedTo_002ELocal/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ExtractCommonPropertyPattern/@EntryIndexedValue">SUGGESTION</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=IntroduceOptionalParameters_002EGlobal/@EntryIndexedValue">HINT</s:String>
Expand Down Expand Up @@ -95,6 +96,7 @@ JsonApiDotNetCore.ArgumentGuard.NotNull($EXPR$);</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UseNegatedPatternMatching/@EntryIndexedValue">SUGGESTION</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UseRawString/@EntryIndexedValue">SUGGESTION</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=VirtualMemberNeverOverridden_002ELocal/@EntryIndexedValue">WARNING</s:String>
<s:Boolean x:Key="/Default/CodeInspection/Highlighting/ReplaceWithPrimaryConstructorParameter/PreserveReadonlyModifier/@EntryValue">True</s:Boolean>
<s:String x:Key="/Default/CodeInspection/Highlighting/UseCollectionExpression/ConvertEmptyCollection/@EntryValue">SUGGESTION</s:String>
<s:String x:Key="/Default/CodeStyle/CodeCleanup/Profiles/=JADNC_0020Full_0020Cleanup/@EntryIndexedValue">&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;Profile name="JADNC Full Cleanup"&gt;&lt;XMLReformatCode&gt;True&lt;/XMLReformatCode&gt;&lt;CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeArgumentsStyle="True" ArrangeCodeBodyStyle="True" ArrangeVarStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" ArrangeNullCheckingPattern="True" /&gt;&lt;CssAlphabetizeProperties&gt;True&lt;/CssAlphabetizeProperties&gt;&lt;JsInsertSemicolon&gt;True&lt;/JsInsertSemicolon&gt;&lt;FormatAttributeQuoteDescriptor&gt;True&lt;/FormatAttributeQuoteDescriptor&gt;&lt;CorrectVariableKindsDescriptor&gt;True&lt;/CorrectVariableKindsDescriptor&gt;&lt;VariablesToInnerScopesDescriptor&gt;True&lt;/VariablesToInnerScopesDescriptor&gt;&lt;StringToTemplatesDescriptor&gt;True&lt;/StringToTemplatesDescriptor&gt;&lt;JsReformatCode&gt;True&lt;/JsReformatCode&gt;&lt;JsFormatDocComments&gt;True&lt;/JsFormatDocComments&gt;&lt;RemoveRedundantQualifiersTs&gt;True&lt;/RemoveRedundantQualifiersTs&gt;&lt;OptimizeImportsTs&gt;True&lt;/OptimizeImportsTs&gt;&lt;OptimizeReferenceCommentsTs&gt;True&lt;/OptimizeReferenceCommentsTs&gt;&lt;PublicModifierStyleTs&gt;True&lt;/PublicModifierStyleTs&gt;&lt;ExplicitAnyTs&gt;True&lt;/ExplicitAnyTs&gt;&lt;TypeAnnotationStyleTs&gt;True&lt;/TypeAnnotationStyleTs&gt;&lt;RelativePathStyleTs&gt;True&lt;/RelativePathStyleTs&gt;&lt;AsInsteadOfCastTs&gt;True&lt;/AsInsteadOfCastTs&gt;&lt;HtmlReformatCode&gt;True&lt;/HtmlReformatCode&gt;&lt;AspOptimizeRegisterDirectives&gt;True&lt;/AspOptimizeRegisterDirectives&gt;&lt;RemoveCodeRedundancies&gt;True&lt;/RemoveCodeRedundancies&gt;&lt;CSUseAutoProperty&gt;True&lt;/CSUseAutoProperty&gt;&lt;CSMakeFieldReadonly&gt;True&lt;/CSMakeFieldReadonly&gt;&lt;CSMakeAutoPropertyGetOnly&gt;True&lt;/CSMakeAutoPropertyGetOnly&gt;&lt;CSArrangeQualifiers&gt;True&lt;/CSArrangeQualifiers&gt;&lt;CSFixBuiltinTypeReferences&gt;True&lt;/CSFixBuiltinTypeReferences&gt;&lt;CssReformatCode&gt;True&lt;/CssReformatCode&gt;&lt;CSOptimizeUsings&gt;&lt;OptimizeUsings&gt;True&lt;/OptimizeUsings&gt;&lt;/CSOptimizeUsings&gt;&lt;CSShortenReferences&gt;True&lt;/CSShortenReferences&gt;&lt;CSReformatCode&gt;True&lt;/CSReformatCode&gt;&lt;CSharpFormatDocComments&gt;True&lt;/CSharpFormatDocComments&gt;&lt;CSReorderTypeMembers&gt;True&lt;/CSReorderTypeMembers&gt;&lt;XAMLCollapseEmptyTags&gt;False&lt;/XAMLCollapseEmptyTags&gt;&lt;CSReformatInactiveBranches&gt;True&lt;/CSReformatInactiveBranches&gt;&lt;/Profile&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/CodeCleanup/SilentCleanupProfile/@EntryValue">JADNC Full Cleanup</s:String>
Expand Down Expand Up @@ -154,6 +156,7 @@ JsonApiDotNetCore.ArgumentGuard.NotNull($EXPR$);</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_MULTIPLE_DECLARATION_STYLE/@EntryValue">WRAP_IF_LONG</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_MULTIPLE_TYPE_PARAMEER_CONSTRAINTS_STYLE/@EntryValue">CHOP_ALWAYS</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_OBJECT_AND_COLLECTION_INITIALIZER_STYLE/@EntryValue">CHOP_ALWAYS</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_PRIMARY_CONSTRUCTOR_PARAMETERS_STYLE/@EntryValue">WRAP_IF_LONG</s:String>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CssFormatter/LINE_FEED_AT_FILE_END/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/HtmlFormatter/LINE_FEED_AT_FILE_END/@EntryValue">True</s:Boolean>
<s:Int64 x:Key="/Default/CodeStyle/CodeFormatting/JavaScriptCodeFormatting/INDENT_SIZE/@EntryValue">2</s:Int64>
Expand Down
2 changes: 2 additions & 0 deletions WarningSeverities.DotSettings
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConvertToConstant_002ELocal/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConvertToLambdaExpression/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConvertToNullCoalescingCompoundAssignment/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConvertToPrimaryConstructor/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConvertToStaticClass/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConvertToUsingDeclaration/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=DoubleNegationInPattern/@EntryIndexedValue">WARNING</s:String>
Expand Down Expand Up @@ -197,6 +198,7 @@
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ReplaceWithOfType_002ESingleOrDefault_002E1/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ReplaceWithOfType_002ESingleOrDefault_002E2/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ReplaceWithOfType_002EWhere/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ReplaceWithPrimaryConstructorParameter/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ReplaceWithSimpleAssignment_002EFalse/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ReplaceWithSimpleAssignment_002ETrue/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ReplaceWithSingleAssignment_002EFalse/@EntryIndexedValue">WARNING</s:String>
Expand Down
5 changes: 2 additions & 3 deletions benchmarks/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,13 @@ internal static class Program
{
private static void Main(string[] args)
{
var switcher = new BenchmarkSwitcher(new[]
{
var switcher = new BenchmarkSwitcher([
typeof(ResourceDeserializationBenchmarks),
typeof(OperationsDeserializationBenchmarks),
typeof(ResourceSerializationBenchmarks),
typeof(OperationsSerializationBenchmarks),
typeof(QueryStringParserBenchmarks)
});
]);

switcher.Run(args);
}
Expand Down
4 changes: 2 additions & 2 deletions cleanupcode.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ if ($revision) {

if ($baseCommitHash -eq $headCommitHash) {
Write-Output "Running code cleanup on staged/unstaged files."
dotnet regitlint -s JsonApiDotNetCore.sln --print-command --skip-tool-check --max-runs=5 --jb --dotnetcoresdk=$(dotnet --version) --jb-profile="JADNC Full Cleanup" --jb --properties:Configuration=Release --jb --properties:RunAnalyzers=false-- jb --verbosity=WARN -f staged,modified
dotnet regitlint -s JsonApiDotNetCore.sln --print-command --skip-tool-check --max-runs=5 --jb --dotnetcoresdk=$(dotnet --version) --jb-profile="JADNC Full Cleanup" --jb --properties:Configuration=Release --jb --properties:RunAnalyzers=false --jb --verbosity=WARN -f staged,modified
VerifySuccessExitCode
}
else {
Write-Output "Running code cleanup on commit range $baseCommitHash..$headCommitHash, including staged/unstaged files."
dotnet regitlint -s JsonApiDotNetCore.sln --print-command --skip-tool-check --max-runs=5 --jb --dotnetcoresdk=$(dotnet --version) --jb-profile="JADNC Full Cleanup" --jb --properties:Configuration=Release --jb --properties:RunAnalyzers=false-- jb --verbosity=WARN -f staged,modified,commits -a $headCommitHash -b $baseCommitHash
dotnet regitlint -s JsonApiDotNetCore.sln --print-command --skip-tool-check --max-runs=5 --jb --dotnetcoresdk=$(dotnet --version) --jb-profile="JADNC Full Cleanup" --jb --properties:Configuration=Release --jb --properties:RunAnalyzers=false --jb --verbosity=WARN -f staged,modified,commits -a $headCommitHash -b $baseCommitHash
VerifySuccessExitCode
}
}
Expand Down
11 changes: 3 additions & 8 deletions src/Examples/DapperExample/Controllers/OperationsController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,6 @@

namespace DapperExample.Controllers;

public sealed class OperationsController : JsonApiOperationsController
{
public OperationsController(IJsonApiOptions options, IResourceGraph resourceGraph, ILoggerFactory loggerFactory, IOperationsProcessor processor,
IJsonApiRequest request, ITargetedFields targetedFields)
: base(options, resourceGraph, loggerFactory, processor, request, targetedFields)
{
}
}
public sealed class OperationsController(
IJsonApiOptions options, IResourceGraph resourceGraph, ILoggerFactory loggerFactory, IOperationsProcessor processor, IJsonApiRequest request,
ITargetedFields targetedFields) : JsonApiOperationsController(options, resourceGraph, loggerFactory, processor, request, targetedFields);
9 changes: 2 additions & 7 deletions src/Examples/DapperExample/Data/RotatingList.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,11 @@ public static RotatingList<T> Create<T>(int count, Func<int, T> createElement)
}
}

internal sealed class RotatingList<T>
internal sealed class RotatingList<T>(IList<T> elements)
{
private int _index = -1;

public IList<T> Elements { get; }

public RotatingList(IList<T> elements)
{
Elements = elements;
}
public IList<T> Elements { get; } = elements;

public T GetNext()
{
Expand Down
9 changes: 2 additions & 7 deletions src/Examples/DapperExample/Repositories/ResultSetMapper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -166,14 +166,9 @@ public IReadOnlyCollection<TResource> GetResources()
return _primaryResourcesInOrder.DistinctBy(resource => resource.Id).ToList();
}

private sealed class IncludeElementWalker
private sealed class IncludeElementWalker(IncludeExpression include)
{
private readonly IncludeExpression _include;

public IncludeElementWalker(IncludeExpression include)
{
_include = include;
}
private readonly IncludeExpression _include = include;

public IEnumerable<IncludeElementExpression> BreadthFirstEnumerate()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,8 @@

namespace DapperExample.TranslationToSql.Builders;

internal sealed class DeleteOneToOneStatementBuilder : StatementBuilder
internal sealed class DeleteOneToOneStatementBuilder(IDataModelService dataModelService) : StatementBuilder(dataModelService)
{
public DeleteOneToOneStatementBuilder(IDataModelService dataModelService)
: base(dataModelService)
{
}

public DeleteNode Build(ResourceType resourceType, string whereColumnName, object? whereValue)
{
ArgumentGuard.NotNull(resourceType);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,8 @@

namespace DapperExample.TranslationToSql.Builders;

internal sealed class DeleteResourceStatementBuilder : StatementBuilder
internal sealed class DeleteResourceStatementBuilder(IDataModelService dataModelService) : StatementBuilder(dataModelService)
{
public DeleteResourceStatementBuilder(IDataModelService dataModelService)
: base(dataModelService)
{
}

public DeleteNode Build(ResourceType resourceType, params object[] idValues)
{
ArgumentGuard.NotNull(resourceType);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,8 @@

namespace DapperExample.TranslationToSql.Builders;

internal sealed class InsertStatementBuilder : StatementBuilder
internal sealed class InsertStatementBuilder(IDataModelService dataModelService) : StatementBuilder(dataModelService)
{
public InsertStatementBuilder(IDataModelService dataModelService)
: base(dataModelService)
{
}

public InsertNode Build(ResourceType resourceType, IReadOnlyDictionary<string, object?> columnsToSet)
{
ArgumentGuard.NotNull(resourceType);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ namespace DapperExample.TranslationToSql.Builders;
/// <summary>
/// Converts <see cref="SqlTreeNode" />s into SQL text.
/// </summary>
internal sealed class SqlQueryBuilder : SqlTreeNodeVisitor<StringBuilder, object?>
internal sealed class SqlQueryBuilder(DatabaseProvider databaseProvider) : SqlTreeNodeVisitor<StringBuilder, object?>
{
private static readonly char[] SpecialCharactersInLikeDefault =
[
Expand All @@ -26,7 +26,7 @@ internal sealed class SqlQueryBuilder : SqlTreeNodeVisitor<StringBuilder, object
']'
];

private readonly DatabaseProvider _databaseProvider;
private readonly DatabaseProvider _databaseProvider = databaseProvider;
private readonly Dictionary<string, ParameterNode> _parametersByName = [];
private int _indentDepth;

Expand All @@ -35,11 +35,6 @@ internal sealed class SqlQueryBuilder : SqlTreeNodeVisitor<StringBuilder, object

public IDictionary<string, object?> Parameters => _parametersByName.Values.ToDictionary(parameter => parameter.Name, parameter => parameter.Value);

public SqlQueryBuilder(DatabaseProvider databaseProvider)
{
_databaseProvider = databaseProvider;
}

public string GetCommand(SqlTreeNode node)
{
ArgumentGuard.NotNull(node);
Expand Down Expand Up @@ -488,14 +483,9 @@ private IDisposable Indent()
return new RevertIndentOnDispose(this);
}

private sealed class RevertIndentOnDispose : IDisposable
private sealed class RevertIndentOnDispose(SqlQueryBuilder owner) : IDisposable
{
private readonly SqlQueryBuilder _owner;

public RevertIndentOnDispose(SqlQueryBuilder owner)
{
_owner = owner;
}
private readonly SqlQueryBuilder _owner = owner;

public void Dispose()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,8 @@

namespace DapperExample.TranslationToSql.Builders;

internal sealed class UpdateClearOneToOneStatementBuilder : StatementBuilder
internal sealed class UpdateClearOneToOneStatementBuilder(IDataModelService dataModelService) : StatementBuilder(dataModelService)
{
public UpdateClearOneToOneStatementBuilder(IDataModelService dataModelService)
: base(dataModelService)
{
}

public UpdateNode Build(ResourceType resourceType, string setColumnName, string whereColumnName, object? whereValue)
{
ArgumentGuard.NotNull(resourceType);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,8 @@

namespace DapperExample.TranslationToSql.Builders;

internal sealed class UpdateResourceStatementBuilder : StatementBuilder
internal sealed class UpdateResourceStatementBuilder(IDataModelService dataModelService) : StatementBuilder(dataModelService)
{
public UpdateResourceStatementBuilder(IDataModelService dataModelService)
: base(dataModelService)
{
}

public UpdateNode Build(ResourceType resourceType, IReadOnlyDictionary<string, object?> columnsToUpdate, params object[] idValues)
{
ArgumentGuard.NotNull(resourceType);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace DapperExample.TranslationToSql.DataModel;
/// <summary>
/// Derives foreign keys and connection strings from an existing Entity Framework Core model.
/// </summary>
public sealed class FromEntitiesDataModelService : BaseDataModelService
public sealed class FromEntitiesDataModelService(IResourceGraph resourceGraph) : BaseDataModelService(resourceGraph)
{
private readonly Dictionary<RelationshipAttribute, RelationshipForeignKey> _foreignKeysByRelationship = [];
private readonly Dictionary<AttrAttribute, bool> _columnNullabilityPerAttribute = [];
Expand All @@ -21,11 +21,6 @@ public sealed class FromEntitiesDataModelService : BaseDataModelService

public override DatabaseProvider DatabaseProvider => AssertHasDatabaseProvider();

public FromEntitiesDataModelService(IResourceGraph resourceGraph)
: base(resourceGraph)
{
}

public void Initialize(DbContext dbContext)
{
_connectionString = dbContext.Database.GetConnectionString();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,5 @@ public void Reset()
_nameGenerator.Reset();
}

private sealed class ParameterNameGenerator : UniqueNameGenerator
{
public ParameterNameGenerator()
: base("@p")
{
}
}
private sealed class ParameterNameGenerator() : UniqueNameGenerator("@p");
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,4 @@ namespace DapperExample.TranslationToSql.Generators;
/// <summary>
/// Generates a SQL table alias with a unique name.
/// </summary>
internal sealed class TableAliasGenerator : UniqueNameGenerator
{
public TableAliasGenerator()
: base("t")
{
}
}
internal sealed class TableAliasGenerator() : UniqueNameGenerator("t");
Original file line number Diff line number Diff line change
Expand Up @@ -290,14 +290,9 @@ private IReadOnlyList<T> VisitList<T>(IEnumerable<T> nodes, ColumnVisitMode mode
return nodes.Select(element => TypedVisit(element, mode)).ToList();
}

private sealed class PopStackOnDispose<T> : IDisposable
private sealed class PopStackOnDispose<T>(Stack<T> stack) : IDisposable
{
private readonly Stack<T> _stack;

public PopStackOnDispose(Stack<T> stack)
{
_stack = stack;
}
private readonly Stack<T> _stack = stack;

public void Dispose()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,13 @@ namespace DapperExample.TranslationToSql.TreeNodes;
/// SELECT t2.Id AS Id0 FROM (SELECT t1.Id FROM Users AS t1) AS t2
/// ]]></code>.
/// </summary>
internal sealed class ColumnInSelectNode : ColumnNode
internal sealed class ColumnInSelectNode(ColumnSelectorNode selector, string? tableAlias) : ColumnNode(GetColumnName(selector), selector.Column.Type,
tableAlias)
{
public ColumnSelectorNode Selector { get; }
public ColumnSelectorNode Selector { get; } = selector;

public bool IsVirtual => Selector.Alias != null || Selector.Column is ColumnInSelectNode { IsVirtual: true };

public ColumnInSelectNode(ColumnSelectorNode selector, string? tableAlias)
: base(GetColumnName(selector), selector.Column.Type, tableAlias)
{
Selector = selector;
}

private static string GetColumnName(ColumnSelectorNode selector)
{
ArgumentGuard.NotNull(selector);
Expand Down
Loading