public BoundInterpolatedStringExpression(InterpolatedStringExpressionSyntax node, string builtStr, BoundExpression[] interpolatedExpressions, BindContext context)
            : base(node)
        {
            ValueType = context.GetTypeSymbol(SpecialType.System_String);

            BuiltStr = new BoundConstantExpression(new ConstantValue <string>(builtStr), ValueType, node);
            InterpolationExpressions = interpolatedExpressions;

            ObjectArr = context.GetTypeSymbol(SpecialType.System_Object).MakeArrayType(context);

            if (interpolatedExpressions.Length > 3)
            {
                StringFormatMethod = ValueType.GetMembers <ExternMethodSymbol>("Format", context).First(e =>
                                                                                                        e.Parameters[0].Type == ValueType && e.Parameters[1].Type == ObjectArr);
            }
            else
            {
                StringFormatMethod = ValueType.GetMembers <ExternMethodSymbol>("Format", context).First(e =>
                                                                                                        e.Parameters[0].Type == ValueType && e.Parameters.Length == interpolatedExpressions.Length + 1);
            }
        }