Changes properties to use automatic property initializers

This commit is contained in:
Kamron Batman 2018-09-14 15:23:29 -07:00
parent f0a48ad431
commit 06fa31a7bf
623 changed files with 13072 additions and 19304 deletions

View file

@ -56,16 +56,11 @@ namespace Server
public class MethodEmitter
{
private TypeBuilder m_TypeBuilder;
private MethodBuilder m_Builder;
private ILGenerator m_Generator;
private Type[] m_ArgumentTypes;
public TypeBuilder Type => m_TypeBuilder;
public TypeBuilder Type { get; }
public ILGenerator Generator => m_Generator;
public ILGenerator Generator { get; private set; }
private class CallInfo
{
@ -89,11 +84,11 @@ namespace Server
private Dictionary<Type, Queue<LocalBuilder>> m_Temps;
public MethodBuilder Method => m_Builder;
public MethodBuilder Method { get; private set; }
public MethodEmitter( TypeBuilder typeBuilder )
{
m_TypeBuilder = typeBuilder;
Type = typeBuilder;
m_Temps = new Dictionary<Type, Queue<LocalBuilder>>();
@ -103,15 +98,15 @@ namespace Server
public void Define( string name, MethodAttributes attr, Type returnType, Type[] parms )
{
m_Builder = m_TypeBuilder.DefineMethod( name, attr, returnType, parms );
m_Generator = m_Builder.GetILGenerator();
Method = Type.DefineMethod( name, attr, returnType, parms );
Generator = Method.GetILGenerator();
m_ArgumentTypes = parms;
}
public LocalBuilder CreateLocal( Type localType )
{
return m_Generator.DeclareLocal( localType );
return Generator.DeclareLocal( localType );
}
public LocalBuilder AcquireTemp( Type localType )
@ -135,31 +130,31 @@ namespace Server
public void Branch( Label label )
{
m_Generator.Emit( OpCodes.Br, label );
Generator.Emit( OpCodes.Br, label );
}
public void BranchIfFalse( Label label )
{
Pop( typeof( object ) );
m_Generator.Emit( OpCodes.Brfalse, label );
Generator.Emit( OpCodes.Brfalse, label );
}
public void BranchIfTrue( Label label )
{
Pop( typeof( object ) );
m_Generator.Emit( OpCodes.Brtrue, label );
Generator.Emit( OpCodes.Brtrue, label );
}
public Label CreateLabel()
{
return m_Generator.DefineLabel();
return Generator.DefineLabel();
}
public void MarkLabel( Label label )
{
m_Generator.MarkLabel( label );
Generator.MarkLabel( label );
}
public void Pop()
@ -191,10 +186,10 @@ namespace Server
public void Return()
{
if ( m_Stack.Count != ( m_Builder.ReturnType == typeof( void ) ? 0 : 1 ) )
if ( m_Stack.Count != ( Method.ReturnType == typeof( void ) ? 0 : 1 ) )
throw new InvalidOperationException( "Stack return mismatch." );
m_Generator.Emit( OpCodes.Ret );
Generator.Emit( OpCodes.Ret );
}
public void LoadNull()
@ -206,7 +201,7 @@ namespace Server
{
Push( type );
m_Generator.Emit( OpCodes.Ldnull );
Generator.Emit( OpCodes.Ldnull );
}
public void Load( string value )
@ -214,9 +209,9 @@ namespace Server
Push( typeof( string ) );
if ( value != null )
m_Generator.Emit( OpCodes.Ldstr, value );
Generator.Emit( OpCodes.Ldstr, value );
else
m_Generator.Emit( OpCodes.Ldnull );
Generator.Emit( OpCodes.Ldnull );
}
public void Load( Enum value )
@ -232,21 +227,21 @@ namespace Server
{
Push( typeof( long ) );
m_Generator.Emit( OpCodes.Ldc_I8, value );
Generator.Emit( OpCodes.Ldc_I8, value );
}
public void Load( float value )
{
Push( typeof( float ) );
m_Generator.Emit( OpCodes.Ldc_R4, value );
Generator.Emit( OpCodes.Ldc_R4, value );
}
public void Load( double value )
{
Push( typeof( double ) );
m_Generator.Emit( OpCodes.Ldc_R8, value );
Generator.Emit( OpCodes.Ldc_R8, value );
}
public void Load( char value )
@ -262,9 +257,9 @@ namespace Server
Push( typeof( bool ) );
if ( value )
m_Generator.Emit( OpCodes.Ldc_I4_1 );
Generator.Emit( OpCodes.Ldc_I4_1 );
else
m_Generator.Emit( OpCodes.Ldc_I4_0 );
Generator.Emit( OpCodes.Ldc_I4_0 );
}
public void Load( int value )
@ -274,50 +269,50 @@ namespace Server
switch ( value )
{
case -1:
m_Generator.Emit( OpCodes.Ldc_I4_M1 );
Generator.Emit( OpCodes.Ldc_I4_M1 );
break;
case 0:
m_Generator.Emit( OpCodes.Ldc_I4_0 );
Generator.Emit( OpCodes.Ldc_I4_0 );
break;
case 1:
m_Generator.Emit( OpCodes.Ldc_I4_1 );
Generator.Emit( OpCodes.Ldc_I4_1 );
break;
case 2:
m_Generator.Emit( OpCodes.Ldc_I4_2 );
Generator.Emit( OpCodes.Ldc_I4_2 );
break;
case 3:
m_Generator.Emit( OpCodes.Ldc_I4_3 );
Generator.Emit( OpCodes.Ldc_I4_3 );
break;
case 4:
m_Generator.Emit( OpCodes.Ldc_I4_4 );
Generator.Emit( OpCodes.Ldc_I4_4 );
break;
case 5:
m_Generator.Emit( OpCodes.Ldc_I4_5 );
Generator.Emit( OpCodes.Ldc_I4_5 );
break;
case 6:
m_Generator.Emit( OpCodes.Ldc_I4_6 );
Generator.Emit( OpCodes.Ldc_I4_6 );
break;
case 7:
m_Generator.Emit( OpCodes.Ldc_I4_7 );
Generator.Emit( OpCodes.Ldc_I4_7 );
break;
case 8:
m_Generator.Emit( OpCodes.Ldc_I4_8 );
Generator.Emit( OpCodes.Ldc_I4_8 );
break;
default:
if ( value >= sbyte.MinValue && value <= sbyte.MaxValue )
m_Generator.Emit( OpCodes.Ldc_I4_S, (sbyte) value );
Generator.Emit( OpCodes.Ldc_I4_S, (sbyte) value );
else
m_Generator.Emit( OpCodes.Ldc_I4, value );
Generator.Emit( OpCodes.Ldc_I4, value );
break;
}
@ -329,7 +324,7 @@ namespace Server
Push( field.FieldType );
m_Generator.Emit( OpCodes.Ldfld, field );
Generator.Emit( OpCodes.Ldfld, field );
}
public void LoadLocal( LocalBuilder local )
@ -341,26 +336,26 @@ namespace Server
switch ( index )
{
case 0:
m_Generator.Emit( OpCodes.Ldloc_0 );
Generator.Emit( OpCodes.Ldloc_0 );
break;
case 1:
m_Generator.Emit( OpCodes.Ldloc_1 );
Generator.Emit( OpCodes.Ldloc_1 );
break;
case 2:
m_Generator.Emit( OpCodes.Ldloc_2 );
Generator.Emit( OpCodes.Ldloc_2 );
break;
case 3:
m_Generator.Emit( OpCodes.Ldloc_3 );
Generator.Emit( OpCodes.Ldloc_3 );
break;
default:
if ( index >= byte.MinValue && index <= byte.MinValue )
m_Generator.Emit( OpCodes.Ldloc_S, (byte) index );
Generator.Emit( OpCodes.Ldloc_S, (byte) index );
else
m_Generator.Emit( OpCodes.Ldloc, (short) index );
Generator.Emit( OpCodes.Ldloc, (short) index );
break;
}
@ -370,7 +365,7 @@ namespace Server
{
Pop( local.LocalType );
m_Generator.Emit( OpCodes.Stloc, local );
Generator.Emit( OpCodes.Stloc, local );
}
public void LoadArgument( int index )
@ -378,31 +373,31 @@ namespace Server
if ( index > 0 )
Push( m_ArgumentTypes[index - 1] );
else
Push( m_TypeBuilder );
Push( Type );
switch ( index )
{
case 0:
m_Generator.Emit( OpCodes.Ldarg_0 );
Generator.Emit( OpCodes.Ldarg_0 );
break;
case 1:
m_Generator.Emit( OpCodes.Ldarg_1 );
Generator.Emit( OpCodes.Ldarg_1 );
break;
case 2:
m_Generator.Emit( OpCodes.Ldarg_2 );
Generator.Emit( OpCodes.Ldarg_2 );
break;
case 3:
m_Generator.Emit( OpCodes.Ldarg_3 );
Generator.Emit( OpCodes.Ldarg_3 );
break;
default:
if ( index >= byte.MinValue && index <= byte.MaxValue )
m_Generator.Emit( OpCodes.Ldarg_S, (byte) index );
Generator.Emit( OpCodes.Ldarg_S, (byte) index );
else
m_Generator.Emit( OpCodes.Ldarg, (short) index );
Generator.Emit( OpCodes.Ldarg, (short) index );
break;
}
@ -413,7 +408,7 @@ namespace Server
Pop( typeof( object ) );
Push( type );
m_Generator.Emit( OpCodes.Isinst, type );
Generator.Emit( OpCodes.Isinst, type );
}
public void Neg()
@ -422,7 +417,7 @@ namespace Server
Push( typeof( int ) );
m_Generator.Emit( OpCodes.Neg );
Generator.Emit( OpCodes.Neg );
}
public void Compare( OpCode opCode )
@ -432,7 +427,7 @@ namespace Server
Push( typeof( int ) );
m_Generator.Emit( opCode );
Generator.Emit( opCode );
}
public void LogicalNot()
@ -441,8 +436,8 @@ namespace Server
Push( typeof( int ) );
m_Generator.Emit( OpCodes.Ldc_I4_0 );
m_Generator.Emit( OpCodes.Ceq );
Generator.Emit( OpCodes.Ldc_I4_0 );
Generator.Emit( OpCodes.Ceq );
}
public void Xor()
@ -452,7 +447,7 @@ namespace Server
Push( typeof( int ) );
m_Generator.Emit( OpCodes.Xor );
Generator.Emit( OpCodes.Xor );
}
public Type Active => m_Stack.Peek();
@ -662,8 +657,8 @@ namespace Server
{
LocalBuilder temp = AcquireTemp( type );
m_Generator.Emit( OpCodes.Stloc, temp );
m_Generator.Emit( OpCodes.Ldloca, temp );
Generator.Emit( OpCodes.Stloc, temp );
Generator.Emit( OpCodes.Ldloca, temp );
ReleaseTemp( temp );
}
@ -674,12 +669,12 @@ namespace Server
CallInfo call = m_Calls.Pop();
if ( ( call.type.IsValueType || call.type.IsByRef ) && call.method.DeclaringType != call.type )
m_Generator.Emit( OpCodes.Constrained, call.type );
Generator.Emit( OpCodes.Constrained, call.type );
if ( call.method.DeclaringType.IsValueType || call.method.IsStatic )
m_Generator.Emit( OpCodes.Call, call.method );
Generator.Emit( OpCodes.Call, call.method );
else
m_Generator.Emit( OpCodes.Callvirt, call.method );
Generator.Emit( OpCodes.Callvirt, call.method );
for ( int i = call.parms.Length - 1; i >= 0; --i )
Pop( call.parms[i].ParameterType );
@ -703,7 +698,7 @@ namespace Server
throw new InvalidOperationException( "Parameter type mismatch." );
if ( argumentType.IsValueType && !parm.ParameterType.IsValueType )
m_Generator.Emit( OpCodes.Box, argumentType );
Generator.Emit( OpCodes.Box, argumentType );
}
}
}