Method | Description | |
---|---|---|
AddSizesAndArrayInitializers ( Microsoft.Cci.MutableCodeModel.CreateArray createArray, IFieldDefinition initialValueField ) : void | ||
CollapseOpAssign ( Microsoft.Cci.MutableCodeModel.Assignment assignment ) : IExpression | ||
ComputeFlatIndex ( Microsoft.Cci.MutableCodeModel.ArrayIndexer arrayIndexer, Microsoft.Cci.MutableCodeModel.CreateArray createArray ) : int | ||
ConvertToUlong ( IMetadataConstant c ) : ulong | ||
IsAssignmentToFieldOrProperty ( ILocalDefinition local, IStatement statement ) : bool | ||
IsSetter ( IMethodReference methodReference ) : bool | ||
ObjectInvariant ( ) : void | ||
PatternReplacer ( SourceMethodBody sourceMethodBody, |
||
ReadValue ( PrimitiveTypeCode primitiveTypeCode, |
||
ReplaceArrayInitializerPattern ( |
||
ReplaceArrayInitializerPattern2 ( |
||
ReplaceCompilerGeneratedLocalUsedForInitializersPattern ( |
The source expression "new C(){ f1 = e1, f2 = e2, ... }" (where the f's can be fields or properties) turns into "cgl = new C(); cgl.f1 = e1; cg1.f2 = e2; ...". ("cgl" means "compiler-generated local".) Turn it into a block expression whose Statements are the statements above (but where the first one becomes a local declaration statement), and with an Expression that is just the local, cgl', where cgl' is a freshly created local.
|
|
ReplaceConditionalExpressionPattern ( |
||
ReplaceDupPopPattern ( |
||
ReplacePlusAssignForStringPattern ( |
For a string field, s, the source expression e.s += "" turns into a specific pattern. That pattern here looks like: i: push e i+1: push dup.s i+2: (!= dup (default_value string)) ? goto L2 : empty i+3: L1 i+4: pop i+5: push "" i+6: L2 i+7: pop.s = pop
|
|
ReplacePostBinopPattern ( |
||
ReplacePropertyBinopPattern ( |
||
ReplacePushDupPopPattern ( |
||
ReplacePushDupPushPopPattern ( |
||
ReplacePushPopPattern ( |
||
ReplacePushPushDupPopPopPattern ( |
||
ReplaceReturnViaGoto ( |
||
ReplaceReturnViaGotoInVoidMethods ( |
||
ReplaceSelfAssignment ( |
||
ReplaceShortCircuitAnd ( |
||
ReplaceShortCircuitAnd2 ( |
||
ReplaceShortCircuitAnd3 ( |
||
ReplaceShortCircuitAnd4 ( |
||
ReplaceShortCircuitAnd5 ( |
||
ReplaceShortCircuitAnd6 ( |
||
ReplaceSingleUseCompilerGeneratedLocalPattern ( |
||
ReplacedCompoundAssignmentViaTempPattern ( |
||
TraverseChildren ( IBlockStatement block ) : void |