CSharpSourceEmitter.SourceEmitter.PrintNewExpressionWithInitializers C# (CSharp) Method

PrintNewExpressionWithInitializers() private method

private PrintNewExpressionWithInitializers ( IBlockExpression blockExpression ) : void
blockExpression IBlockExpression
return void
    private void PrintNewExpressionWithInitializers(IBlockExpression blockExpression) {

      var i = 0;
      foreach (var s in blockExpression.BlockStatement.Statements) {
        if (i++ == 0) {
          var lds = s as ILocalDeclarationStatement;
          this.Traverse(lds.InitialValue);
          this.sourceEmitterOutput.WriteLine("{");
          this.sourceEmitterOutput.IncreaseIndent();
          continue;
        }
        var expressionStatement = (IExpressionStatement)s;
        this.sourceEmitterOutput.Write("", true);
        var assign = expressionStatement.Expression as IAssignment;
        if (assign != null) {
          var def = assign.Target.Definition;
          PrintBoundExpressionDefinition(null, def, false);
          this.sourceEmitterOutput.Write(" = ");
          this.Traverse(assign.Source);
          this.sourceEmitterOutput.WriteLine(", ");
          continue;
        }

        var methodCall = expressionStatement.Expression as IMethodCall;
        if (methodCall != null) {
          this.PrintMethodReferenceName(methodCall.MethodToCall, NameFormattingOptions.OmitContainingNamespace | NameFormattingOptions.OmitContainingType);
          this.sourceEmitterOutput.Write(" = ");
          foreach (var a in methodCall.Arguments) {
            this.Traverse(a);
            break;
          }
          this.sourceEmitterOutput.WriteLine(", ");
          continue;
        }

        Contract.Assume(false);
      }
      this.sourceEmitterOutput.DecreaseIndent();
      this.sourceEmitterOutput.Write("}", true);
    }
SourceEmitter