Skip to content

Commit d8074dc

Browse files
committed
clean up literals
1 parent debbad3 commit d8074dc

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

src/Hyperbee.Expressions/Transformation/StateMachineBuilder.cs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,8 @@ FieldInfo[] fields
438438
return [jumpTable, MergeNodeExpressions( firstScope.Nodes )];
439439

440440
// Merge all node expressions into a single block
441+
// This reduces the number of blocks in the final state-machine
442+
441443
static BlockExpression MergeNodeExpressions( List<NodeExpression> nodes )
442444
{
443445
var mergedExpressions = new List<Expression>( 32 );
@@ -497,21 +499,24 @@ public static class StateMachineBuilder
497499
private static readonly ModuleBuilder ModuleBuilder;
498500
private static int __id;
499501

502+
const string RuntimeAssemblyName = "RuntimeStateMachineAssembly";
503+
const string RuntimeModuleName = "RuntimeStateMachineModule";
504+
const string StateMachineTypeName = "StateMachine";
505+
500506
static StateMachineBuilder()
501507
{
502508
BuildStateMachineMethod = typeof( StateMachineBuilder )
503509
.GetMethods( BindingFlags.NonPublic | BindingFlags.Static )
504510
.First( method => method.Name == nameof( Create ) && method.IsGenericMethod );
505511

506512
// Create the state machine module
507-
var assemblyName = new AssemblyName( "RuntimeStateMachineAssembly" );
513+
var assemblyName = new AssemblyName( RuntimeAssemblyName );
508514
var assemblyBuilder = AssemblyBuilder.DefineDynamicAssembly( assemblyName, AssemblyBuilderAccess.Run );
509-
ModuleBuilder = assemblyBuilder.DefineDynamicModule( "RuntimeStateMachineModule" );
515+
ModuleBuilder = assemblyBuilder.DefineDynamicModule( RuntimeModuleName );
510516
}
511517

512518
internal static Expression Create( Type resultType, LoweringResult source )
513519
{
514-
// If the result type is void, use the internal IVoidResult type
515520
if ( resultType == typeof( void ) )
516521
resultType = typeof( IVoidResult );
517522

@@ -522,7 +527,8 @@ internal static Expression Create( Type resultType, LoweringResult source )
522527

523528
internal static Expression Create<TResult>( LoweringResult source )
524529
{
525-
var typeName = $"StateMachine{Interlocked.Increment( ref __id )}";
530+
var typeId = Interlocked.Increment( ref __id );
531+
var typeName = $"{StateMachineTypeName}{typeId}";
526532

527533
var stateMachineBuilder = new StateMachineBuilder<TResult>( ModuleBuilder, typeName );
528534
var stateMachineExpression = stateMachineBuilder.CreateStateMachine( source, __id );

0 commit comments

Comments
 (0)