public VariableInliningPattern(CodePatternsContext patternsContext, MethodSpecificContext methodContext, IVariablesToNotInlineFinder finder) : base(patternsContext, methodContext.Method.Module.TypeSystem) { this.methodContext = methodContext; this.inliner = new RestrictedVariableInliner(typeSystem); this.finder = finder; }
public InitializationPattern(CodePatternsContext patternsContext, DecompilationContext context) { base(patternsContext, context.get_MethodContext().get_Method().get_Module().get_TypeSystem()); this.typeContext = context.get_TypeContext(); this.method = context.get_MethodContext().get_Method(); return; }
public MultiAssignPattern(CodePatternsContext patternsContext, MethodSpecificContext methodContext) { this.variablesToRemove = new HashSet <VariableDefinition>(); base(patternsContext, methodContext.get_Method().get_Module().get_TypeSystem()); this.methodContext = methodContext; return; }
public CommonPatterns(CodePatternsContext patternsContext, TypeSystem typeSystem) { base(); this.typeSystem = typeSystem; this.patternsContext = patternsContext; return; }
public VariableDefineUseCounter(CodePatternsContext patternContext) { this.bannedVariables = new HashSet <VariableDefinition>(); base(); this.patternContext = patternContext; return; }
public BlockStatement Process(DecompilationContext context, BlockStatement body) { this.context = context; this.typeSystem = context.MethodContext.Method.Module.TypeSystem; this.patternsContext = new CodePatternsContext(body); body = (BlockStatement)Visit(body); return body; }
public VariableInliningPattern(CodePatternsContext patternsContext, MethodSpecificContext methodContext, IVariablesToNotInlineFinder finder) { base(patternsContext, methodContext.get_Method().get_Module().get_TypeSystem()); this.methodContext = methodContext; this.inliner = new RestrictedVariableInliner(this.typeSystem); this.finder = finder; this.dereferencer = new SimpleDereferencer(); return; }
private void ProcessCtorInvocation() { int startIndex, endIndex; bool isBaseCtor; StatementCollection statements = GetStatementsForInvocation(out endIndex, out startIndex, out isBaseCtor); if (statements == null) { return; } this.patternsContext = new CodePatternsContext(statements); List<ICodePattern> patternArray = new List<ICodePattern>(new ICodePattern[] { new NullCoalescingPattern(patternsContext, methodContext), new TernaryConditionPatternAgressive(patternsContext, typeSystem), new ArrayInitialisationPattern(patternsContext, typeSystem), new VariableInliningPatternAggressive(patternsContext, methodContext), new MultiAssignPattern(patternsContext, methodContext)}); if (isBaseCtor) { patternArray.Add(new InitializationPattern(patternsContext, context)); } if (!ProcessStatementCollection(statements, patternArray)) { return; } if (statements[0].CodeNodeType != CodeNodeType.ExpressionStatement) { return; } MethodInvocationExpression theCtorInvokeExpression = (statements[0] as ExpressionStatement).Expression as MethodInvocationExpression; if (theCtorInvokeExpression.CodeNodeType != CodeNodeType.BaseCtorExpression && theCtorInvokeExpression.CodeNodeType != CodeNodeType.ThisCtorExpression) { return; } methodContext.CtorInvokeExpression = theCtorInvokeExpression; }
public VariableDefineUseCounter(CodePatternsContext patternContext) { this.patternContext = patternContext; }
public NullCoalescingPattern(CodePatternsContext patternsContext, MethodSpecificContext methodContext) { base(patternsContext, methodContext.get_Method().get_Module().get_TypeSystem()); this.methodContext = methodContext; return; }
public VariableInliningPatternAggressive(CodePatternsContext patternsContext, Telerik.JustDecompiler.Decompiler.MethodSpecificContext methodContext) : base(patternsContext, methodContext) { }
public BaseInitialisationPattern(CodePatternsContext patternsContext, TypeSystem ts) : base(patternsContext, ts) { }
public ArrayInitialisationPattern(CodePatternsContext patternsContext, TypeSystem ts) { base(patternsContext, ts); return; }
public InitializationPattern(CodePatternsContext patternsContext, DecompilationContext context) : base(patternsContext, context.MethodContext.Method.Module.TypeSystem) { this.typeContext = context.TypeContext; this.method = context.MethodContext.Method; }
public MultiAssignPattern(CodePatternsContext patternsContext, MethodSpecificContext methodContext) : base(patternsContext, methodContext.Method.Module.TypeSystem) { this.methodContext = methodContext; }
public NullCoalescingPattern(CodePatternsContext patternsContext, MethodSpecificContext methodContext) : base(patternsContext, methodContext.Method.Module.TypeSystem) { this.methodContext = methodContext; }
public CommonPatterns(CodePatternsContext patternsContext, TypeSystem typeSystem) { this.typeSystem = typeSystem; this.patternsContext = patternsContext; }
private VariableInliningPattern GetVariableInliningPattern(CodePatternsContext patternsContext) { return isAggressive ? new VariableInliningPatternAggressive(patternsContext, context.MethodContext) : new VariableInliningPattern(patternsContext, context.MethodContext); }
public CollectionInitializationPattern(CodePatternsContext patternsContext, TypeSystem typeSystem) : base(patternsContext, typeSystem) { }
public FieldInitializationPattern(CodePatternsContext patternsContext, DecompilationContext context) : base(patternsContext, context.MethodContext.Method.Module.TypeSystem) { this.typeContext = context.TypeContext; this.method = context.MethodContext.Method; }
private TernaryConditionPattern GetTernaryPattern(CodePatternsContext patternsContext) { return isAggressive || isInFilter ? new TernaryConditionPatternAgressive(patternsContext, typeSystem) : new TernaryConditionPattern(patternsContext, typeSystem); }
public VariableInliningPatternAggressive(CodePatternsContext patternsContext, MethodSpecificContext methodContext, IVariablesToNotInlineFinder finder) { base(patternsContext, methodContext, finder); return; }
public TernaryConditionPattern(CodePatternsContext patternsContext, TypeSystem typeSystem) : base(patternsContext, typeSystem) { }
public TernaryConditionPatternAgressive(CodePatternsContext patternsContext, TypeSystem typeSystem) { base(patternsContext, typeSystem); return; }
public ObjectInitialisationPattern(CodePatternsContext patternsContext, TypeSystem typeSystem) : base(patternsContext, typeSystem) { }
public VariableInliningPatternAggressive(CodePatternsContext patternsContext, Telerik.JustDecompiler.Decompiler.MethodSpecificContext methodContext, IVariablesToNotInlineFinder finder) : base(patternsContext, methodContext, finder) { }
public ObjectInitialisationPattern(CodePatternsContext patternsContext, TypeSystem typeSystem) { base(patternsContext, typeSystem); return; }
public VariableInliningPatternAggressive(CodePatternsContext patternsContext, Telerik.JustDecompiler.Decompiler.MethodSpecificContext methodContext) :base(patternsContext, methodContext) { }