Skip to content

Fix docs deploy: disable AOT on Playground.Wasm

799676d
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Merged

Fix docs deploy: disable AOT on Playground.Wasm #32

Fix docs deploy: disable AOT on Playground.Wasm
799676d
Select commit
Loading
Failed to load commit list.
GitHub Actions / Test Results succeeded Apr 13, 2026 in 1s

746 passed, 0 failed and 0 skipped

Tests passed successfully

Report Passed Failed Skipped Time
./test-results/ExpressiveSharp.EntityFrameworkCore.IntegrationTests.trx 179✅ 6s
./test-results/ExpressiveSharp.Generator.Tests.trx 359✅ 18s
./test-results/ExpressiveSharp.IntegrationTests.trx 64✅ 796ms
./test-results/ExpressiveSharp.Tests.trx 144✅ 598ms

✅ ./test-results/ExpressiveSharp.EntityFrameworkCore.IntegrationTests.trx

179 tests were completed in 6s with 179 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.AsyncQueryableTests 26✅ 3s
ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.CapturedVariableTests 14✅ 257ms
ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.CommonScenarioTests 52✅ 948ms
ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.ExecuteUpdateTests 5✅ 112ms
ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.ExpressiveDbSetDiscoveryTests 5✅ 196ms
ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.ExpressiveExpansionTests 15✅ 265ms
ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.IncludeTests 7✅ 129ms
ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.QueryFilterTests 6✅ 165ms
ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.StoreQueryTests 9✅ 160ms
ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.TransformerBehaviorTests 4✅ 62ms
ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.UseExpressivesConventionTests 4✅ 44ms
ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.WindowFunctionTests 32✅ 647ms

✅ ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.AsyncQueryableTests

✅ AllAsync_WithPredicate_Executes
✅ AnyAsync_WithPredicate_Executes
✅ AsNoTracking_Where_ToListAsync_ExecutesCorrectly
✅ AverageAsync_WithSelector_Executes
✅ ContainsAsync_WithValue_Executes
✅ CountAsync_WithPredicate_Executes
✅ ElementAtAsync_Executes
✅ ElementAtOrDefaultAsync_OutOfRange_ReturnsNull
✅ FirstAsync_WithPredicate_Executes
✅ FirstOrDefaultAsync_WithPredicate_ReturnsNullWhenNoMatch
✅ GroupBy_WithElementSelector_Executes
✅ GroupJoin_Executes
✅ Include_Where_ToListAsync_LoadsNavigation
✅ Join_Executes
✅ LongCountAsync_WithPredicate_Executes
✅ MaxAsync_WithSelector_Executes
✅ MinAsync_WithSelector_Executes
✅ NullConditional_InFirstOrDefaultAsync_Predicate_ExecutesCorrectly
✅ NullConditional_InWhere_ToListAsync_ExecutesCorrectly
✅ SelectMany_WithCollection_Executes
✅ SelectMany_WithResultSelector_Executes
✅ SingleAsync_WithPredicate_Executes
✅ SingleOrDefaultAsync_WithPredicate_ReturnsNullWhenNoMatch
✅ SumAsync_WithSelector_Executes
✅ TagWith_Where_FirstAsync_ExecutesCorrectly
✅ Take_Skip_Where_ToListAsync_ExecutesCorrectly

✅ ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.CapturedVariableTests

✅ OrderBy_CapturedVariable_InKeySelector
✅ Polyfill_CapturedVariable_ProducesCorrectExpression
✅ Select_CapturedVariable_InProjection
✅ Where_CapturedEnum_TranslatesToSql
✅ Where_CapturedInstanceField_TranslatesToSql
✅ Where_CapturedInstanceField_WithMultipleFields
✅ Where_CapturedInstanceProperty_TranslatesToSql
✅ Where_CapturedLocal_TranslatesToSql
✅ Where_CapturedLoopVariable_TranslatesToSql
✅ Where_CapturedNullableString_TranslatesToSql
✅ Where_CapturedParameter_TranslatesToSql
✅ Where_CapturedVariable_ChainedWithSelect_TranslatesToSql
✅ Where_CapturedVariable_WithNullConditional_InSelect
✅ Where_MultipleCapturedVariables_TranslatesToSql

✅ ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.CommonScenarioTests

✅ GroupBy_GetGrade_CountsCorrectly
✅ GroupBy_StatusDescription_CountsCorrectly
✅ OrderBy_GetGrade_ReturnsSorted
✅ OrderBy_TagLength_NullsAppearFirst
✅ OrderByDescending_GetGrade_ReturnsSortedDescending
✅ OrderByDescending_Total_ReturnsSortedDescending
✅ Polyfill_Arithmetic_ProjectsCorrectly
✅ Polyfill_NullCoalescing_ProjectsCorrectly
✅ Polyfill_NullConditional_ProjectsCorrectly
✅ Polyfill_SimpleCondition_FiltersCorrectly
✅ Select_AllItemsAffordable_ReturnsCorrectFlags
✅ Select_CheckedTotal_ReturnsCorrectValues
✅ Select_ClampedPrice_ReturnsCorrectValues
✅ Select_ConditionalWithComparison_ReturnsCorrectValues
✅ Select_CustomerCity_ViaCustomerExpressive
✅ Select_CustomerCountry_TwoLevelChain
✅ Select_CustomerName_ReturnsCorrectNullableValues
✅ Select_DiscountedPrice_ReturnsCorrectValues
✅ Select_FormattedPrice_UsesToStringWithFormat
✅ Select_GetCategory_ReturnsCorrectValues
✅ Select_GetGrade_ReturnsCorrectValues
✅ Select_HasExpensiveItems_ReturnsCorrectFlags
✅ Select_InlineTuple_ProjectsCorrectly
✅ Select_InstanceMethod_ViaExpressiveFor_ReturnsCorrectValues
✅ Select_InstanceProperty_ViaExpressiveFor_ReturnsConstant
✅ Select_IsPriceQuantityDifferent_ReturnsCorrectValues
✅ Select_IsPriceQuantityMatch_ReturnsCorrectValues
✅ Select_ItemCount_ReturnsCorrectCounts
✅ Select_ItemTotal_ReturnsCorrectTotals
✅ Select_ItemTotalForExpensive_ReturnsCorrectTotals
✅ Select_NestedTernary_ReturnsCorrectValues
✅ Select_OrderDto_ProjectsCorrectly
✅ Select_PriceBreakpoints_ReturnsArrayLiteral
✅ Select_StatusDescription_ReturnsCorrectValues
✅ Select_Summary_ReturnsCorrectValues
✅ Select_SummaryConcat_ReturnsCorrectValues
✅ Select_TagLength_ReturnsCorrectNullableValues
✅ Select_Total_ReturnsCorrectValues
✅ Select_TupleWithExpressiveMember_ProjectsCorrectly
✅ Select_TupleWithNullable_ProjectsCorrectly
✅ Where_CheckedTotalGreaterThan100_FiltersCorrectly
✅ Where_ClampedPriceEquals100_FiltersCorrectly
✅ Where_CompoundCondition_FiltersCorrectly
✅ Where_CustomerCountryEquals_FiltersCorrectly
✅ Where_CustomerNameEquals_FiltersCorrectly
✅ Where_CustomerNameIsNull_FiltersCorrectly
✅ Where_DetailedSummary_ConcatArrayTranslatesToSql
✅ Where_IsPattern_NullCheck
✅ Where_IsPriceQuantityMatch_FiltersCorrectly
✅ Where_NoMatch_ReturnsEmpty
✅ Where_Summary_TranslatesToSql
✅ Where_TotalGreaterThan100_FiltersCorrectly

✅ ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.ExecuteUpdateTests

✅ ExecuteUpdate_BasicConstant_Works
✅ ExecuteUpdate_MultipleProperties_WithModernSyntax
✅ ExecuteUpdate_NullCoalescing_TranslatesToSql
✅ ExecuteUpdate_SwitchExpression_TranslatesToSql
✅ ExecuteUpdateAsync_SwitchExpression_TranslatesToSql

✅ ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.ExpressiveDbSetDiscoveryTests

✅ ExpressiveOnlyContext_EntityIsDiscoveredInModel
✅ ExpressiveOnlyContext_QueryExecutesAgainstDiscoveredTable
✅ ExpressiveOnlyContext_TableNameMatchesPropertyName
✅ ExpressiveOnlyContext_UseExpressivesBeforeProvider_EntityStillDiscovered
✅ MixedContext_DbSetTableNameWinsOverExpressiveDbSet

✅ ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.ExpressiveExpansionTests

✅ CapturedVariable_WithExpressive_InSameQuery
✅ CapturedVariable_WithExpressiveSelect_InChain
✅ ExpressiveConstructor_OrderDto_ProjectsCorrectly
✅ ExpressiveExtensionMethod_InWhere
✅ ExpressiveExtensionMethod_StatusDescription
✅ ExpressiveInWhere_FilterByBlockBodyMethod
✅ ExpressiveInWhere_FilterByGetGrade
✅ ExpressiveInWhere_FilterByTotal
✅ ExpressiveStringInterpolation_Summary
✅ MultipleExpressives_InSingleSelect
✅ NestedExpressive_GetOrderSummaryTuple_ExpandsBothGetGradeAndTotal
✅ NestedExpressive_TotalUsedInGetGrade_ExpandsRecursively
✅ NullConditionalExpressive_CustomerName_InFilter
✅ NullConditionalExpressive_CustomerName_NullResult
✅ NullConditionalExpressive_MultiLevelChain_CustomerCountry

✅ ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.IncludeTests

✅ AsNoTracking_Include_Executes
✅ ChainedModifiers_Include_Execute
✅ IgnoreQueryFilters_Executes
✅ Include_LoadsRelatedCustomer
✅ Include_ThenInclude_LoadsTwoLevelNavigation
✅ Include_ThenWhere_OnNavigationProperty_ExecutesCorrectly
✅ StringInclude_LoadsNavigation

✅ ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.QueryFilterTests

✅ BlockBodyFilter_CountAsync_RespectsFilter
✅ BlockBodyFilter_FiltersOutNullEmails
✅ BlockBodyFilter_IgnoreQueryFilters_ReturnsAll
✅ ExpressionBodyFilter_CountAsync_RespectsFilter
✅ ExpressionBodyFilter_FiltersOutZeroTotals
✅ ExpressionBodyFilter_IgnoreQueryFilters_ReturnsAll

✅ ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.StoreQueryTests

✅ CapturedVariable_PlusExpressive_Total_FiltersCorrectly
✅ ExpressiveFor_Inside_ExpressiveMember_ComposesCorrectly
✅ FilterByCustomerName_ProjectTotal
✅ FilterByStatus_SelectCategory
✅ GroupByStatus_CountOrders
✅ NullConditional_WithExpressiveFor_ComposedInProjection
✅ OrderByGrade_SelectTotal
✅ OrderByGrade_ThenByTotal_CompoundSort
✅ ProjectToOrderDto_ForAllOrders

✅ ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.TransformerBehaviorTests

✅ ConvertLoopsToLinq_EnablesForeachInExpressive
✅ FlattenBlockExpressions_InlinesLocalVariable
✅ FlattenTupleComparisons_RewritesTupleEquality
✅ RemoveNullConditionalPatterns_StripsQuestionDot

✅ ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.UseExpressivesConventionTests

✅ BlockBody_InExpressiveMember_TranslatesCorrectly
✅ ExpressiveDbSet_EntityIsDiscoveredInModel
✅ ExpressiveProperties_AreMarkedUnmapped
✅ NullConditional_InExpressiveMember_TranslatesCorrectly

✅ ExpressiveSharp.EntityFrameworkCore.IntegrationTests.Tests.Sqlite.WindowFunctionTests

✅ Average_IntColumn_ReturnsDouble
✅ Average_WithSlidingWindow_ProducesMovingAverage
✅ Count_Expression_CountsNonNullOnly
✅ Count_Star_WithPartition_ProducesRunningCount
✅ CumeDist_ReturnsBetweenZeroAndOne
✅ DenseRank_WithTies_ReturnsNoGaps
✅ FirstValue_ReturnsFirstPriceInPartition
✅ FirstValue_WithPartition_ReturnsFirstPerGroup
✅ IndexedSelect_ReturnsZeroBasedIndices
✅ Lag_Default_ReturnsPreviousRowPrice
✅ Lag_WithDefault_ReturnsDefaultWhenNoRow
✅ Lag_WithOffset_ReturnsCorrectRow
✅ Lag_WithPartition_ResetsPerGroup
✅ LastValue_WithUnboundedFrame_ReturnsLastPriceInPartition
✅ Lead_Default_ReturnsNextRowPrice
✅ Lead_WithOffsetAndDefault_ReturnsCorrectValues
✅ Lead_WithPartition_ResetsPerGroup
✅ Max_WithRowsFrame_ReturnsRunningMax
✅ Min_WithPartition_ReturnsRunningMin
✅ MultipleAggregates_InSameSelect
✅ MultipleWindowFunctions_InSameSelect
✅ NthValue_ReturnsValueAtPosition
✅ Ntile_DistributesIntoBuckets
✅ PercentRank_ReturnsBetweenZeroAndOne
✅ Rank_WithTies_ReturnsGaps
✅ RowNumber_OverExpressiveTotal_UsesExpandedExpression
✅ RowNumber_ReturnsCorrectSequentialNumbers
✅ RowNumber_WithPartitionBy_ResetsPerGroup
✅ Sum_WithoutFrame_UsesDefaultFrame
✅ Sum_WithPartitionAndFrame_ResetsPerGroup
✅ Sum_WithRangeFrame_ProducesRangeBasedTotal
✅ Sum_WithRowsFrame_ProducesRunningTotal

✅ ./test-results/ExpressiveSharp.Generator.Tests.trx

359 tests were completed in 18s with 359 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ExpressiveSharp.Generator.Tests.CodeFixers.AddExpressiveCodeFixProviderTests 4✅ 1s
ExpressiveSharp.Generator.Tests.CodeFixers.MigrationAnalyzerTests 8✅ 86ms
ExpressiveSharp.Generator.Tests.CodeFixers.MissingExpressiveImportAnalyzerTests 6✅ 98ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.BlockBodyTests 12✅ 750ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.CheckedArithmeticTests 5✅ 141ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.CollectionExpressionTests 7✅ 245ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.ConstructorTests 39✅ 1s
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.DiagnosticTests 9✅ 283ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.EnumTests 6✅ 225ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.ExpressiveForTests 11✅ 263ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.ExtensionMethodTests 4✅ 107ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.GenericTests 5✅ 156ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.GlobalOptionsTests 7✅ 194ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.IndexRangeTests 2✅ 70ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.InterfaceTests 3✅ 90ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.ListPatternTests 2✅ 79ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.LoopTests 20✅ 758ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.MethodTests 28✅ 752ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.MissingExpressiveDiagnosticTests 20✅ 519ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.NullableTests 21✅ 689ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.PositionalPatternTests 4✅ 135ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.PropertyTests 21✅ 520ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.RegistryTests 7✅ 144ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.StringConcatenationTests 3✅ 66ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.SwitchPatternTests 7✅ 168ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.ThrowExpressionTests 3✅ 67ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.TupleTests 7✅ 196ms
ExpressiveSharp.Generator.Tests.ExpressiveGenerator.WithExpressionTests 1✅ 30ms
ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.AnonymousElementTests 6✅ 3s
ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.ComparerOverloadTests 3✅ 194ms
ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.ExecuteUpdateTests 4✅ 436ms
ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.GlobalOptionsTests 3✅ 140ms
ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.GroupByTests 4✅ 254ms
ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.JoinTests 4✅ 253ms
ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.NullConditionalTests 2✅ 95ms
ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.OrderByTests 2✅ 105ms
ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.PolyfillTargetTests 2✅ 96ms
ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.PolyfillTests 4✅ 76ms
ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.ScalarMethodTests 34✅ 2s
ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.SelectManyTests 2✅ 114ms
ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.SelectTests 3✅ 144ms
ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.SetOperationTests 3✅ 135ms
ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.SingleLambdaQueryableTests 5✅ 254ms
ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.WhereTests 5✅ 279ms
ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.ZipTests 1✅ 52ms

✅ ExpressiveSharp.Generator.Tests.CodeFixers.AddExpressiveCodeFixProviderTests

✅ AddsExpressiveAttribute_ToMethodDeclaration
✅ AddsExpressiveAttribute_ToPropertyDeclaration
✅ AddsUsingDirective_WhenMissing
✅ DoesNotAddDuplicateUsing_WhenAlreadyPresent

✅ ExpressiveSharp.Generator.Tests.CodeFixers.MigrationAnalyzerTests

✅ CodeFix_ReplacesExtensionsNamespace
✅ CodeFix_ReplacesProjectablesNamespace
✅ CodeFix_ReplacesProjectableWithExpressive
✅ CodeFix_ReplacesUseProjectablesWithUseExpressives
✅ DetectsProjectableAttribute
✅ DetectsProjectablesExtensionsUsingDirective
✅ DetectsProjectablesUsingDirective
✅ DetectsUseProjectablesCall

✅ ExpressiveSharp.Generator.Tests.CodeFixers.MissingExpressiveImportAnalyzerTests

✅ Contains_OnPlainQueryable_NoDiagnostic
✅ Contains_WithoutStub_ReportsEXP0022
✅ Take_WithoutUsing_ReportsEXP0021
✅ Where_OnPlainQueryable_NoDiagnostic
✅ Where_WithoutUsing_ReportsEXP0021
✅ Where_WithUsing_NoDiagnostic

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.BlockBodyTests

✅ BlockBodiedMethod_SimpleReturn
✅ BlockBodiedMethod_WithAllowFlag_NoWarning
✅ BlockBodiedMethod_WithIfElse
✅ BlockBodiedMethod_WithLocalVariable
✅ BlockBodiedMethod_WithNestedIfElse
✅ BlockBodiedMethod_WithoutExplicitFlag_StillWorks
✅ BlockBodiedMethod_WithPropertyAccess
✅ BlockBodiedMethod_WithTransitiveLocalVariables
✅ BlockBody_WithAwait_ReportsError
✅ BlockBody_WithoutAllowFlag_ReportsError
✅ BlockBody_WithThrow
✅ BlockBody_WithTryCatch_ReportsWarning

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.CheckedArithmeticTests

✅ CheckedAddition
✅ CheckedConversion
✅ CheckedMultiplication
✅ CheckedNegation
✅ CheckedSubtraction

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.CollectionExpressionTests

✅ CollectionExpression_Array
✅ CollectionExpression_ArrayWithSpread
✅ CollectionExpression_ListWithSpread
✅ CollectionExpression_MultipleSpreads
✅ CollectionExpression_SpreadOnly
✅ CollectionInitializer_DictionaryAdd
✅ CollectionInitializer_ListOfInt

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.ConstructorTests

✅ ProjectableConstructor_BodyAssignments
✅ ProjectableConstructor_Overloads
✅ ProjectableConstructor_ReferencingBasePropertyInDerivedBody
✅ ProjectableConstructor_ReferencingPreviouslyAssignedInBaseCtor
✅ ProjectableConstructor_ReferencingPreviouslyAssignedProperty
✅ ProjectableConstructor_ReferencingStaticConstMember
✅ ProjectableConstructor_ThisInitializer_ChainedThisAndBase
✅ ProjectableConstructor_ThisInitializer_RefPreviouslyAssignedProperty
✅ ProjectableConstructor_ThisInitializer_SimpleOverload
✅ ProjectableConstructor_ThisInitializer_WithBodyAfter
✅ ProjectableConstructor_ThisInitializer_WithIfElseInDelegated
✅ ProjectableConstructor_WithBaseInitializer
✅ ProjectableConstructor_WithBaseInitializer_AndEarlyReturn
✅ ProjectableConstructor_WithBaseInitializer_AndIfElse_InDerivedBody
✅ ProjectableConstructor_WithBaseInitializerAndIfElse
✅ ProjectableConstructor_WithBaseInitializerExpression
✅ ProjectableConstructor_WithClassArgument
✅ ProjectableConstructor_WithDeepNestedIf
✅ ProjectableConstructor_WithEarlyReturn_GuardClause
✅ ProjectableConstructor_WithElseIfChain
✅ ProjectableConstructor_WithExplicitParameterlessConstructor_Succeeds
✅ ProjectableConstructor_WithFullObject
✅ ProjectableConstructor_WithIfElseLogic
✅ ProjectableConstructor_WithIfInsideLocalScope_AndElse
✅ ProjectableConstructor_WithIfNoElse
✅ ProjectableConstructor_WithLocalVariable
✅ ProjectableConstructor_WithLocalVariableUsedInCondition
✅ ProjectableConstructor_WithMultipleClassArguments
✅ ProjectableConstructor_WithMultipleEarlyReturns
✅ ProjectableConstructor_WithMultipleLocalVariables
✅ ProjectableConstructor_WithNestedIfElse
✅ ProjectableConstructor_WithNullableParameter
✅ ProjectableConstructor_WithNullCoalescing
✅ ProjectableConstructor_WithoutParameterlessConstructor_EmitsDiagnostic
✅ ProjectableConstructor_WithSequentialIfs
✅ ProjectableConstructor_WithSwitchExpression
✅ ProjectableConstructor_WithSwitchExpression_AndExtraProperty
✅ ProjectableConstructor_WithTernaryAssignment
✅ ProjectableConstructor_WithThisInitializer_AndElseIfInBody

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.DiagnosticTests

✅ AbstractMethod_NoBody_ReportsEXP0001
✅ AutoProperty_NoBody_ReportsEXP0001
✅ DelegatedConstructor_BaseInBCL_ReportsEXP0003
✅ ExpressiveFor_NonExistentTargetType_ReportsEXP0014
✅ FactoryMethod_ReturningNewContainingType_ReportsEXP0012
✅ NestedObjectInitializer_ReportsEXP0007
✅ PositionalPattern_NoMatchingProperty_ReportsEXP0011
✅ StringInterpolation_AlignmentSpecifier_ReportsEXP0018
✅ UnsignedRightShift_ReportsEXP0009

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.EnumTests

✅ ExpandEnumMethodsReturningBoolean
✅ ExpandEnumMethodsReturningInteger
✅ ExpandEnumMethodsWithDescriptionAttribute
✅ ExpandEnumMethodsWithDisplayAttribute
✅ ExpandEnumMethodsWithNullableEnum
✅ ExpandEnumMethodsWithParameter

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.ExpressiveForTests

✅ ConflictWithExpressive_EXP0019
✅ DuplicateMapping_EXP0020
✅ InstanceMethod
✅ InstanceProperty
✅ MemberNotFound_EXP0015
✅ MixedRegistry
✅ OverloadDisambiguation
✅ ReturnTypeMismatch_EXP0017
✅ StaticMethod
✅ StaticProperty
✅ StubNotStatic_EXP0016

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.ExtensionMethodTests

✅ ExpressiveExtensionMethod
✅ ExpressiveExtensionMethod_CallingAnotherExpressive
✅ ExpressiveExtensionMethod_OnValueType
✅ ExpressiveExtensionMethod_SelfRecursive

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.GenericTests

✅ GenericClassesWithConstraints_AreRewritten
✅ GenericClassesWithTypeConstraints_AreRewritten
✅ GenericMethods_AreRewritten
✅ GenericTypes
✅ GenericTypesWithConstraints

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.GlobalOptionsTests

✅ AttributeDisableEnumMethodExpansion_OverridesDefault
✅ AttributeDisableNullConditional_StillGeneratesFaithfully
✅ BlockBody_AlwaysAllowed_NoDiagnostics
✅ EnumMethodExpansion_EnabledByDefault_ExpandsWithoutAttributeFlag
✅ GlobalNullConditionalMode_Rewrite_AllowsNullConditionals
✅ MalformedGlobalOption_IsTreatedAsNotSet
✅ NoGlobalOptions_HardCodedDefaultsApply_BlockBodyWorks

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.IndexRangeTests

✅ IndexFromEnd_WorksAsExpression
✅ Range_WorksAsExpression

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.InterfaceTests

✅ DefaultInterfaceMember
✅ ExplicitInterfaceImplementation
✅ ExplicitInterfaceMember

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.ListPatternTests

✅ ListPattern_FixedLength
✅ ListPattern_WithSlice

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.LoopTests

✅ ForEach_Aggregate
✅ ForEach_All
✅ ForEach_Any
✅ ForEach_ConditionalAggregate
✅ ForEach_ConditionalMinWithMemberAccess
✅ ForEach_ConditionalSelectWithMethodCall
✅ ForEach_ConditionalSum
✅ ForEach_CountAll
✅ ForEach_CountWithPredicate
✅ ForEach_EnabledByDefault_NoDiagnostics
✅ ForEach_InstanceMethodInBody
✅ ForEach_Min
✅ ForEach_SelectWithMethodCall
✅ ForEach_Sum
✅ ForEach_SumWithChainedMemberAccess
✅ ForEach_SumWithMethodCall
✅ ForEach_SumWithSelector
✅ ForEach_WithLoopDisableFlag_StillEmitsLoop
✅ ForLoop_ArraySum
✅ WhileLoop_EmitsBlockExpression

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.MethodTests

✅ BaseMemberExplicitReference
✅ BaseMemberImplicitReference
✅ BaseMethodExplicitReference
✅ Cast
✅ ConstMember
✅ DeclarationTypeNamesAreGettingFullyQualified
✅ DefaultValuesGetRemoved
✅ ExpressiveComputedMethodWithMultipleArguments
✅ ExpressiveComputedMethodWithSingleArgument
✅ InheritedMembers
✅ IsOperator
✅ MethodOverloads_WithDifferentParameterCounts
✅ MethodOverloads_WithDifferentParameterTypes
✅ ParamsModifierGetsRemoved
✅ RequiredNamespace
✅ SimpleExpressiveMethod
✅ StaticMembers
✅ StaticMembers2
✅ StaticMethodWithNoParameters
✅ StaticMethodWithParameters
✅ StringInterpolation_Empty
✅ StringInterpolation_FormatSpecifier
✅ StringInterpolation_LiteralOnly
✅ StringInterpolation_MultiplePartsWithNullCoalescing
✅ StringInterpolation_MultipleSegments
✅ StringInterpolation_SimpleIntProperty
✅ StringInterpolationWithStaticCall_IsBeingRewritten
✅ TypesInBodyGetsFullyQualified

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.MissingExpressiveDiagnosticTests

✅ EXP0013_HasAdditionalLocation_PointingToDeclaration
✅ ExpressiveQueryable_MethodGroup_WithNonExpressiveMethod_WarnsEXP0013
✅ ExpressiveQueryable_Select_WithNonExpressiveExtensionMethod_WarnsEXP0013
✅ ExpressiveQueryable_Select_WithNonExpressiveProperty_WarnsEXP0013
✅ ExpressiveQueryable_Where_WithNonExpressiveInstanceMethod_WarnsEXP0013
✅ ExpressiveQueryable_WithAutoProperty_NoWarning
✅ ExpressiveQueryable_WithBclMethod_NoWarning
✅ ExpressiveQueryable_WithEnumExtensionMethod_NoWarning
✅ ExpressiveQueryable_WithExpressiveMethod_NoWarning
✅ ExtensionMethod_OnEnumReceiver_NoWarning
✅ ExtensionMethod_OnNonEnumReceiver_WarnsEXP0013
✅ MethodCall_ToBclMethod_NoWarning
✅ MethodCall_ToBlockBodyMethod_WarnsEXP0013
✅ MethodCall_ToMethodWithExpressive_NoWarning
✅ MethodCall_ToSourceMethodWithExpressionBody_WarnsEXP0013
✅ PropertyAccess_ToAutoProperty_NoWarning
✅ PropertyAccess_ToExpressiveProperty_NoWarning
✅ PropertyAccess_ToSourcePropertyWithBlockGetter_WarnsEXP0013
✅ PropertyAccess_ToSourcePropertyWithExpressionBody_WarnsEXP0013
✅ PropertyWithoutExpressive_ReferencedInExpressive_WarnsEXP0013

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.NullableTests

✅ BooleanSimpleTernary_WithRewriteSupport_IsBeingRewritten
✅ GenericNullableReferenceTypesAreBeingEliminated
✅ MultiLevelNullableMemberBinding_DefaultMode_UsesRewrite
✅ NullableElementAndMemberBinding_WithIgnoreSupport_IsBeingRewritten
✅ NullableElementAndMemberBinding_WithRewriteSupport_IsBeingRewritten
✅ NullableElementBinding_WithIgnoreSupport_IsBeingRewritten
✅ NullableElementBinding_WithRewriteSupport_IsBeingRewritten
✅ NullableMemberBinding_DefaultMode_UsesRewrite
✅ NullableMemberBinding_WithDisableFlag_StillGenerates
✅ NullableMemberBinding_WithIgnoreSupport_IsBeingRewritten
✅ NullableMemberBinding_WithRewriteSupport_IsBeingRewritten
✅ NullableParameters_WithRewriteSupport_IsBeingRewritten
✅ NullableReferenceTypeCastOperatorGetsEliminated
✅ NullableReferenceTypesAreBeingEliminated
✅ NullableSimpleElementBinding_WithIgnoreSupport_IsBeingRewritten
✅ NullableSimpleElementBinding_WithRewriteSupport_IsBeingRewritten
✅ NullableValueCastOperatorsPersist
✅ NullableValueType_MemberAccess_WithIgnoreSupport_IsBeingRewritten
✅ NullableValueType_MemberAccess_WithRewriteSupport_IsBeingRewritten
✅ NullableValueType_MemberAccessWithCoalesce_WithRewriteSupport_IsBeingRewritten
✅ NullConditionalNullCoalesceTypeConversion

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.PositionalPatternTests

✅ IsExpression_PositionalPatternWithRelationalSubPatterns
✅ IsExpression_RecordPositionalPattern
✅ IsExpression_RecordStructPositionalPattern
✅ SwitchExpression_RecordPositionalPattern

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.PropertyTests

✅ EmptyCode_Noop
✅ ExpressiveComputedPropertyMethod
✅ ExpressiveComputedPropertyUsingThis
✅ ExpressiveComputedPropertyWithExplicitBlockGetter
✅ ExpressiveComputedPropertyWithExplicitExpressionGetter
✅ ExpressivePropertyToNavigationalProperty
✅ ExpressivePropertyWithExplicitBlockGetter
✅ ExpressivePropertyWithExplicitBlockGetter_AlwaysAllowed
✅ ExpressivePropertyWithExplicitBlockGetterAndMethodCall
✅ ExpressivePropertyWithExplicitBlockGetterUsingThis
✅ ExpressivePropertyWithExplicitExpressionGetter
✅ FooOrBar
✅ MinimalExpressiveComputedProperty
✅ MoreComplexExpressiveComputedProperty
✅ NavigationProperties
✅ PropertyWithCustomTransformers
✅ RelationalProperty
✅ SimpleExpressiveComputedInNestedClassProperty
✅ SimpleExpressiveComputedProperty
✅ SimpleExpressiveComputedPropertyWithSetter
✅ SimpleExpressiveProperty

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.RegistryTests

✅ GenericClass_GetsEditorBrowsableAttribute
✅ GenericClass_NotIncludedInRegistry
✅ MethodOverloads_BothRegistered
✅ MultipleExpressives_AllRegistered
✅ NoExpressives_NoRegistry
✅ SingleMethod_RegistryContainsEntry
✅ SingleProperty_RegistryContainsEntry

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.StringConcatenationTests

✅ IntPlusString
✅ SingleStringConcat
✅ StringPlusString

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.SwitchPatternTests

✅ ExpressionBodied_IsPattern_WithAndPattern
✅ ExpressionBodied_IsPattern_WithNotNullPattern
✅ ExpressionBodied_IsPattern_WithOrPattern
✅ SwitchExpression_WithRelationalPattern
✅ SwitchExpression_WithRelationalPattern_OnExtensionMethod
✅ SwitchExpressionWithConstantPattern
✅ SwitchExpressionWithTypePattern

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.ThrowExpressionTests

✅ ThrowInConditional
✅ ThrowInNullCoalescing
✅ ThrowInSwitchArm

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.TupleTests

✅ NestedTupleLiteral
✅ TupleBinary_Equality
✅ TupleBinary_Inequality
✅ TupleLiteralInMethod
✅ TupleLiteralWith8Elements
✅ TupleLiteralWithNamedElements
✅ TupleLiteralWithParameters

✅ ExpressiveSharp.Generator.Tests.ExpressiveGenerator.WithExpressionTests

✅ WithExpression_OnRecord

✅ ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.AnonymousElementTests

✅ Count_AfterAnonymousSelect_GeneratesScalarInterceptor
✅ DistinctBy_AfterAnonymousSelect_GeneratesInterceptor
✅ GroupBy_AfterAnonymousSelect_GeneratesInterceptor
✅ OrderByDescending_AfterAnonymousSelect_GeneratesInterceptor
✅ Select_AfterAnonymousSelect_GeneratesInterceptor
✅ Where_AfterAnonymousSelect_GeneratesInterceptor

✅ ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.ComparerOverloadTests

✅ DistinctBy_WithComparer_GeneratesInterceptor
✅ GroupBy_WithComparer_GeneratesInterceptor
✅ OrderBy_WithComparer_GeneratesInterceptor

✅ ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.ExecuteUpdateTests

✅ ExecuteUpdate_SetProperty_ConstantValue
✅ ExecuteUpdate_SetProperty_WithNullConditional
✅ ExecuteUpdate_SetProperty_WithSwitchExpression
✅ ExecuteUpdateAsync_GeneratesInterceptor

✅ ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.GlobalOptionsTests

✅ Polyfill_GlobalNullConditionalIgnore_UsesIgnoreMode
✅ Where_GlobalNullConditionalRewrite_AppliesWithoutPerCallOverride
✅ Where_PerCallOverridesGlobal

✅ ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.GroupByTests

✅ GroupBy_GeneratesGroupingReturnType
✅ GroupBy_WithElementAndResultSelector_GeneratesInterceptor
✅ GroupBy_WithElementSelector_GeneratesInterceptor
✅ GroupBy_WithResultSelector_GeneratesInterceptor

✅ ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.JoinTests

✅ GroupJoin_AnonymousResultSelector_GeneratesGenericInterceptor
✅ GroupJoin_GeneratesInterceptor
✅ Join_AnonymousResultSelector_GeneratesGenericInterceptor
✅ Join_GeneratesInterceptor

✅ ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.NullConditionalTests

✅ CustomReceiverType_NotIntercepted
✅ NullConditionalRewrite_ExpandsInWhereBody

✅ ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.OrderByTests

✅ OrderBy_GeneratesInterceptor
✅ ThenBy_CastsToIOrderedQueryable

✅ ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.PolyfillTargetTests

✅ PolyfillTarget_RoutesToSpecifiedType
✅ PolyfillTarget_WithoutAttribute_DefaultsToQueryable

✅ ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.PolyfillTests

✅ Polyfill_CapturedVariable_GeneratesClosureAccess
✅ Polyfill_InferredTypeArgument_GeneratesExpression
✅ Polyfill_NullConditional_RewritesOperator
✅ Polyfill_SimpleLambda_GeneratesExpression

✅ ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.ScalarMethodTests

✅ All_GeneratesScalarInterceptor
✅ Any_GeneratesScalarInterceptor
✅ Average_DecimalSelector_GeneratesScalarInterceptor
✅ Average_DoubleSelector_GeneratesScalarInterceptor
✅ Average_FloatSelector_GeneratesScalarInterceptor
✅ Average_IntSelector_GeneratesScalarInterceptor
✅ Average_LongSelector_GeneratesScalarInterceptor
✅ Average_NullableDecimalSelector_GeneratesScalarInterceptor
✅ Average_NullableDoubleSelector_GeneratesScalarInterceptor
✅ Average_NullableFloatSelector_GeneratesScalarInterceptor
✅ Average_NullableIntSelector_GeneratesScalarInterceptor
✅ Average_NullableLongSelector_GeneratesScalarInterceptor
✅ Count_GeneratesScalarInterceptor
✅ First_GeneratesScalarInterceptor
✅ FirstOrDefault_GeneratesScalarInterceptor
✅ Last_GeneratesScalarInterceptor
✅ LastOrDefault_GeneratesScalarInterceptor
✅ LongCount_GeneratesScalarInterceptor
✅ Max_GenericSelector_GeneratesScalarInterceptor
✅ MaxBy_GeneratesScalarInterceptor
✅ Min_GenericSelector_GeneratesScalarInterceptor
✅ MinBy_GeneratesScalarInterceptor
✅ Single_GeneratesScalarInterceptor
✅ SingleOrDefault_GeneratesScalarInterceptor
✅ Sum_DecimalSelector_GeneratesScalarInterceptor
✅ Sum_DoubleSelector_GeneratesScalarInterceptor
✅ Sum_FloatSelector_GeneratesScalarInterceptor
✅ Sum_IntSelector_GeneratesScalarInterceptor
✅ Sum_LongSelector_GeneratesScalarInterceptor
✅ Sum_NullableDecimalSelector_GeneratesScalarInterceptor
✅ Sum_NullableDoubleSelector_GeneratesScalarInterceptor
✅ Sum_NullableFloatSelector_GeneratesScalarInterceptor
✅ Sum_NullableIntSelector_GeneratesScalarInterceptor
✅ Sum_NullableLongSelector_GeneratesScalarInterceptor

✅ ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.SelectManyTests

✅ SelectMany_CollectionSelector_GeneratesInterceptor
✅ SelectMany_WithResultSelector_GeneratesInterceptor

✅ ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.SelectTests

✅ Select_AnonymousType_GeneratesGenericInterceptor
✅ Select_AnonymousType_WithComputedExpression_GeneratesCorrectly
✅ Select_NamedType_GeneratesConcreteInterceptor

✅ ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.SetOperationTests

✅ ExceptBy_GeneratesInterceptor
✅ IntersectBy_GeneratesInterceptor
✅ UnionBy_GeneratesInterceptor

✅ ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.SingleLambdaQueryableTests

✅ DistinctBy_GeneratesInterceptor
✅ OrderByDescending_GeneratesInterceptor
✅ SkipWhile_GeneratesInterceptor
✅ TakeWhile_GeneratesInterceptor
✅ ThenByDescending_GeneratesInterceptor

✅ ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.WhereTests

✅ ChainedWhereAndSelect_GeneratesTwoInterceptors
✅ Where_CapturedInstanceField_GeneratesClosureAccess
✅ Where_CapturedVariable_GeneratesClosureAccess
✅ Where_PlainIQueryable_NotIntercepted
✅ Where_SimpleCondition_GeneratesInterceptor

✅ ExpressiveSharp.Generator.Tests.PolyfillInterceptorGenerator.ZipTests

✅ Zip_WithResultSelector_GeneratesInterceptor

✅ ./test-results/ExpressiveSharp.IntegrationTests.trx

64 tests were completed in 796ms with 64 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ExpressiveSharp.IntegrationTests.Tests.AnonymousTypeInterceptorTests 5✅ 130ms
ExpressiveSharp.IntegrationTests.Tests.CommonScenarioTests 50✅ 152ms
ExpressiveSharp.IntegrationTests.Tests.MultiLambdaInterceptorTests 3✅ 18ms
ExpressiveSharp.IntegrationTests.Tests.StoreQueryTests 6✅ 26ms

✅ ExpressiveSharp.IntegrationTests.Tests.AnonymousTypeInterceptorTests

✅ Join_AnonymousResultSelector_CompilesAndRuns
✅ Select_AnonymousType_ThenDistinctBy_CompilesAndRuns
✅ Select_AnonymousType_ThenOrderByDescending_CompilesAndRuns
✅ Select_AnonymousType_ThenSelectConcrete_CompilesAndRuns
✅ Select_AnonymousType_ThenWhere_CompilesAndRuns

✅ ExpressiveSharp.IntegrationTests.Tests.CommonScenarioTests

✅ GroupBy_GetGrade_CountsCorrectly
✅ GroupBy_StatusDescription_CountsCorrectly
✅ OrderBy_GetGrade_ReturnsSorted
✅ OrderBy_TagLength_NullsAppearFirst
✅ OrderByDescending_GetGrade_ReturnsSortedDescending
✅ OrderByDescending_Total_ReturnsSortedDescending
✅ Polyfill_Arithmetic_ProjectsCorrectly
✅ Polyfill_NullCoalescing_ProjectsCorrectly
✅ Polyfill_NullConditional_ProjectsCorrectly
✅ Polyfill_SimpleCondition_FiltersCorrectly
✅ Select_AllItemsAffordable_ReturnsCorrectFlags
✅ Select_CheckedTotal_ReturnsCorrectValues
✅ Select_ClampedPrice_ReturnsCorrectValues
✅ Select_ConditionalWithComparison_ReturnsCorrectValues
✅ Select_CustomerCity_ViaCustomerExpressive
✅ Select_CustomerCountry_TwoLevelChain
✅ Select_CustomerName_ReturnsCorrectNullableValues
✅ Select_DiscountedPrice_ReturnsCorrectValues
✅ Select_GetCategory_ReturnsCorrectValues
✅ Select_GetGrade_ReturnsCorrectValues
✅ Select_HasExpensiveItems_ReturnsCorrectFlags
✅ Select_InlineTuple_ProjectsCorrectly
✅ Select_InstanceMethod_ViaExpressiveFor_ReturnsCorrectValues
✅ Select_InstanceProperty_ViaExpressiveFor_ReturnsConstant
✅ Select_IsPriceQuantityDifferent_ReturnsCorrectValues
✅ Select_IsPriceQuantityMatch_ReturnsCorrectValues
✅ Select_ItemCount_ReturnsCorrectCounts
✅ Select_ItemTotal_ReturnsCorrectTotals
✅ Select_ItemTotalForExpensive_ReturnsCorrectTotals
✅ Select_NestedTernary_ReturnsCorrectValues
✅ Select_OrderDto_ProjectsCorrectly
✅ Select_PriceBreakpoints_ReturnsArrayLiteral
✅ Select_StatusDescription_ReturnsCorrectValues
✅ Select_Summary_ReturnsCorrectValues
✅ Select_SummaryConcat_ReturnsCorrectValues
✅ Select_TagLength_ReturnsCorrectNullableValues
✅ Select_Total_ReturnsCorrectValues
✅ Select_TupleWithExpressiveMember_ProjectsCorrectly
✅ Select_TupleWithNullable_ProjectsCorrectly
✅ Where_CheckedTotalGreaterThan100_FiltersCorrectly
✅ Where_ClampedPriceEquals100_FiltersCorrectly
✅ Where_CompoundCondition_FiltersCorrectly
✅ Where_CustomerCountryEquals_FiltersCorrectly
✅ Where_CustomerNameEquals_FiltersCorrectly
✅ Where_CustomerNameIsNull_FiltersCorrectly
✅ Where_IsPattern_NullCheck
✅ Where_IsPriceQuantityMatch_FiltersCorrectly
✅ Where_NoMatch_ReturnsEmpty
✅ Where_TotalGreaterThan100_FiltersCorrectly
✅ WithExpression_OnRecord_ReturnsModifiedInstance

✅ ExpressiveSharp.IntegrationTests.Tests.MultiLambdaInterceptorTests

✅ Join_NullableOuterKey_NonNullableInnerKey_CompilesAndRuns
✅ Join_ThreeLambdas_CompilesAndRuns
✅ SelectMany_WithResultSelector_SharedParamName_CompilesAndRuns

✅ ExpressiveSharp.IntegrationTests.Tests.StoreQueryTests

✅ FilterByCustomerName_ProjectTotal
✅ FilterByStatus_SelectCategory
✅ GroupByStatus_CountOrders
✅ OrderByGrade_SelectTotal
✅ OrderByGrade_ThenByTotal_CompoundSort
✅ ProjectToOrderDto_ForAllOrders

✅ ./test-results/ExpressiveSharp.Tests.trx

144 tests were completed in 598ms with 144 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ExpressiveSharp.Tests.Extensions.ExpressionExtensionsTests 4✅ 2ms
ExpressiveSharp.Tests.Extensions.ExpressiveQueryableExtensionsTests 3✅ 20ms
ExpressiveSharp.Tests.Extensions.ExpressiveQueryableLinqExtensionsTests 12✅ 7ms
ExpressiveSharp.Tests.RelationalExtensions.WindowFrameBoundSqlExpressionTests 3✅ 91ms
ExpressiveSharp.Tests.RelationalExtensions.WindowFunctionSqlExpressionFrameTests 8✅ 11ms
ExpressiveSharp.Tests.RelationalExtensions.WindowSpecSqlExpressionFrameTests 6✅ 5ms
ExpressiveSharp.Tests.Services.ExpressionArgumentReplacerTests 3✅ 1ms
ExpressiveSharp.Tests.Services.ExpressionClassNameGeneratorTests 21✅ 6ms
ExpressiveSharp.Tests.Services.ExpressiveOptionsTests 4✅ 2ms
ExpressiveSharp.Tests.Services.ExpressiveReplacerTests 8✅ 14ms
ExpressiveSharp.Tests.Services.ExpressiveResolverTests 7✅ 3ms
ExpressiveSharp.Tests.Transformers.ConvertLoopsToLinqTests 12✅ 53ms
ExpressiveSharp.Tests.Transformers.FlattenBlockExpressionsTests 11✅ 7ms
ExpressiveSharp.Tests.Transformers.FlattenConcatArrayCallsTests 9✅ 6ms
ExpressiveSharp.Tests.Transformers.FlattenTupleComparisonsTests 5✅ 2ms
ExpressiveSharp.Tests.Transformers.RemoveNullConditionalPatternsTests 11✅ 5ms
ExpressiveSharp.Tests.Transformers.ReplaceThrowWithDefaultTests 6✅ 3ms
TypeExtensionsTests 11✅ 19ms

✅ ExpressiveSharp.Tests.Extensions.ExpressionExtensionsTests

✅ ExpandExpressives_ExplicitTransformers_AppliedInOrder
✅ ExpandExpressives_ExplicitTransformers_OverrideOptions
✅ ExpandExpressives_NoTransformers_ExpandsExpressiveMembers
✅ ExpandExpressives_OptionsTransformers_UsedWhenProvided

✅ ExpressiveSharp.Tests.Extensions.ExpressiveQueryableExtensionsTests

✅ AsExpressive_DelegatesProperties
✅ AsExpressive_NullSource_ThrowsArgumentNullException
✅ AsExpressive_WrapsAsExpressiveQueryable

✅ ExpressiveSharp.Tests.Extensions.ExpressiveQueryableLinqExtensionsTests

✅ ChainedPassthrough_PreservesExpressiveQueryable
✅ Concat_PreservesExpressiveQueryable
✅ DefaultIfEmpty_PreservesExpressiveQueryable
✅ DefaultIfEmpty_WithValue_PreservesExpressiveQueryable
✅ Distinct_PreservesExpressiveQueryable
✅ Except_PreservesExpressiveQueryable
✅ Index_PreservesExpressiveQueryable
✅ Intersect_PreservesExpressiveQueryable
✅ Reverse_PreservesExpressiveQueryable
✅ Skip_PreservesExpressiveQueryable
✅ Take_PreservesExpressiveQueryable
✅ Union_PreservesExpressiveQueryable

✅ ExpressiveSharp.Tests.RelationalExtensions.WindowFrameBoundSqlExpressionTests

✅ BoundInfo_PropertyRoundtrips
✅ Equals_ComparesBoundInfo
✅ ToSqlFragment_FormatsEachBoundKindCorrectly

✅ ExpressiveSharp.Tests.RelationalExtensions.WindowFunctionSqlExpressionFrameTests

✅ Equals_IncludesFrameFields
✅ Print_MinWithNumericOffsets
✅ Print_NoFrame_OmitsFrameClause
✅ Print_RangeBetweenUnboundedPrecedingAndCurrentRow
✅ Print_RowsBetweenNumericPrecedingAndFollowing
✅ Print_RowsBetweenUnboundedPrecedingAndCurrentRow
✅ Print_RowsBetweenUnboundedPrecedingAndUnboundedFollowing
✅ Print_WithPartitionOrderAndFrame

✅ ExpressiveSharp.Tests.RelationalExtensions.WindowSpecSqlExpressionFrameTests

✅ Constructor_DefaultsFrameFieldsToNull
✅ Equals_IncludesFrameFields
✅ WithFrame_PreservesPartitionsAndOrderings
✅ WithFrame_ReturnsNewInstance
✅ WithOrdering_PreservesFrame
✅ WithPartition_PreservesFrame

✅ ExpressiveSharp.Tests.Services.ExpressionArgumentReplacerTests

✅ Visit_ComplexExpression_ReplacesAllMappedParameters
✅ Visit_ParameterInMapping_ReplacesWithMappedExpression
✅ Visit_ParameterNotInMapping_ReturnsOriginal

✅ ExpressiveSharp.Tests.Services.ExpressionClassNameGeneratorTests

✅ GenerateClassFullName_PrependsNamespace
✅ GenerateClassName_DottedNamespace
✅ GenerateClassName_GenericClassWithArity
✅ GenerateClassName_NestedClasses
✅ GenerateClassName_NullNamespace
✅ GenerateClassName_SimpleNamespaceAndClass
✅ GenerateFullName_PrependsNamespace
✅ GenerateMethodSuffix_ExplicitInterface
✅ GenerateMethodSuffix_GlobalPrefixStripped
✅ GenerateMethodSuffix_MultipleParameters
✅ GenerateMethodSuffix_SimpleMember
✅ GenerateMethodSuffix_WithParameters
✅ GenerateName_ExplicitInterfaceMember
✅ GenerateName_GenericClassWithArity
✅ GenerateName_NestedClassHierarchy
✅ GenerateName_NullNamespace
✅ GenerateName_ParameterTypeWithGlobalPrefix
✅ GenerateName_ParameterTypeWithInvalidChars
✅ GenerateName_SimpleNamespaceAndMember
✅ GenerateName_WithParameterTypes
✅ Namespace_ConstantIsCorrect

✅ ExpressiveSharp.Tests.Services.ExpressiveOptionsTests

✅ AddAndClear_ConcurrentAccess_NoExceptions
✅ AddTransformers_RegistersTransformers
✅ ClearTransformers_RemovesAll
✅ GetTransformers_ReturnsSnapshot_NotLiveReference

✅ ExpressiveSharp.Tests.Services.ExpressiveReplacerTests

✅ Replace_ExpressiveMethod_InlinesExpression
✅ Replace_ExpressiveProperty_InlinesExpression
✅ Replace_ExpressiveProperty_SubstitutesReceiver
✅ Replace_InterfaceCastOnProperty_UnwrapsConvert
✅ Replace_LambdaWithExpressiveProperty_ExpandsInBody
✅ Replace_NonExpressiveMember_PassesThrough
✅ Replace_WithMockResolver_NonDecoratedMember_PassesThrough
✅ Replace_WithMockResolver_PropertyInlined

✅ ExpressiveSharp.Tests.Services.ExpressiveResolverTests

✅ FindGeneratedExpression_MethodWithExpressive_ReturnsLambdaExpression
✅ FindGeneratedExpression_NonExpressiveMember_ThrowsInvalidOperationException
✅ FindGeneratedExpression_PropertyBody_ContainsMultiply
✅ FindGeneratedExpression_PropertyWithExpressive_ReturnsLambdaExpression
✅ FindGeneratedExpression_SameMember_ReturnsCachedResult
✅ FindGeneratedExpressionViaReflection_KnownMember_ReturnsExpression
✅ FindGeneratedExpressionViaReflection_UnknownMember_ReturnsNull

✅ ExpressiveSharp.Tests.Transformers.ConvertLoopsToLinqTests

✅ ForEach_All_RewritesToLinqAll
✅ ForEach_Any_RewritesToLinqAny
✅ ForEach_ConditionalSum_RewritesToWhereAndSum
✅ ForEach_Count_RewritesToLinqCount
✅ ForEach_Max_RewritesToLinqMax
✅ ForEach_Min_ExecutesCorrectly
✅ ForEach_Min_RewritesToLinqMin
✅ ForEach_Select_ExecutesCorrectly
✅ ForEach_Select_RewritesToLinqSelectToList
✅ ForEach_Sum_ExecutesCorrectly
✅ ForEach_Sum_RewritesToLinqSum
✅ ForEach_UnrecognizedPattern_Throws

✅ ExpressiveSharp.Tests.Transformers.FlattenBlockExpressionsTests

✅ BlockInsideLambda_FlattensBody
✅ ImplementsIExpressionTreeTransformer
✅ MultipleAssignmentsSameVariable_ReturnsBlockUnchanged
✅ NestedBlocks_RecursivelyFlattened
✅ NonBlockExpression_PassesThrough
✅ NoVariables_MultipleExpressions_ReturnsBlock
✅ NoVariables_SingleExpression_ReturnsThatExpression
✅ SingleVariableAssignment_Inlines
✅ ThreeChainedDependencies_FullyInlines
✅ TransitiveDependencies_FullyResolves
✅ VariableWithoutAssignment_ReturnsBlockUnchanged

✅ ExpressiveSharp.Tests.Transformers.FlattenConcatArrayCallsTests

✅ EmptyArray_ReturnsEmptyConstant
✅ FiveElements_ChainsConcat4ThenConcat2
✅ FourElements_UsesConcat4
✅ NonArrayArgument_NotTransformed
✅ ProducesCorrectValue_WhenCompiled
✅ SevenElements_ChainsConcat4ThenConcat4
✅ SingleElement_ReturnsThatElement
✅ ThreeElements_UsesConcat3
✅ TwoElements_UsesConcat2

✅ ExpressiveSharp.Tests.Transformers.FlattenTupleComparisonsTests

✅ FieldAccessItem2_ReplacedWithSecondArgument
✅ FieldAccessOnNewValueTuple_ReplacedWithArgument
✅ FieldAccessOnNonNewExpression_LeftUnchanged
✅ NonTupleExpression_LeftUnchanged
✅ TupleEqualityComparison_SimplifiesToElementWise

✅ ExpressiveSharp.Tests.Transformers.RemoveNullConditionalPatternsTests

✅ ChainedNullConditional_RemovesNestedTernaries
✅ ChainedNullConditional_WithInnerMethodCall_KeepsOuterNullCheck
✅ ConvertWrappingMethodCall_KeepsNullCheck
✅ DefaultExpressionAsFalseBranch_Matches
✅ ImplementsIExpressionTreeTransformer
✅ MethodCallOnReceiver_KeepsNullCheck
✅ NonDefaultFalseBranch_NoTransform
✅ NonMatchingConditional_NoTransform
✅ SimpleNullCheck_MemberAccess_RemovesPattern
✅ TrueBranchDoesNotAccessReceiver_NoTransform
✅ WithConvertWrapping_KeepsConvertWhenTypesDontMatch

✅ ExpressiveSharp.Tests.Transformers.ReplaceThrowWithDefaultTests

✅ CoalesceWithThrow_CompilesCorrectly
✅ CoalesceWithThrow_ReplacesThrowWithDefault
✅ ConditionalWithThrowInFalse_ReplacesThrowWithDefault
✅ ConditionalWithThrowInTrue_ReplacesThrowWithDefault
✅ NonThrowCoalesce_Unchanged
✅ StandaloneThrow_BecomesDefault

✅ TypeExtensionsTests

✅ GetConcreteMethod_InterfaceMethod_ReturnsImplementation
✅ GetConcreteMethod_NonVirtualMethod_ReturnsOriginal
✅ GetConcreteMethod_SameDeclaringType_ReturnsOriginal
✅ GetConcreteMethod_StaticMethod_ReturnsOriginal
✅ GetConcreteMethod_VirtualOverride_ReturnsDerivedMethod
✅ GetConcreteProperty_InterfaceProperty_ReturnsImplementation
✅ GetConcreteProperty_SameDeclaringType_ReturnsOriginal
✅ GetConcreteProperty_VirtualOverride_ReturnsDerivedProperty
✅ GetNestedTypePath_DeepNesting_ReturnsFullPath
✅ GetNestedTypePath_NonNestedType_ReturnsSingleElement
✅ GetNestedTypePath_SingleLevelNesting_ReturnsTwoElements