提交 9bd67ccc 编写于 作者: M Manish Vasani

Address some more review feedback and fix one more break.

上级 181934d1
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.Collections.Immutable;
using System.Diagnostics;
using System.Linq;
......@@ -113,7 +114,7 @@ private ImmutableArray<IOperation> GetAnonymousObjectCreationInitializers(BoundA
SyntaxNode syntax = value.Syntax?.Parent ?? expression.Syntax;
ITypeSymbol type = target.Type;
Optional<object> constantValue = value.ConstantValue;
var assignment = new AssignmentExpression(target, value, isInvalid, syntax, type, constantValue);
var assignment = new SimpleAssignmentExpression(target, value, isInvalid, syntax, type, constantValue);
builder.Add(assignment);
}
......
......@@ -93,8 +93,8 @@ protected T CompileAndGetModelAndExpression<T>(string program, Func<SemanticMode
var comp = CreateStandardCompilation(program, new[] { LinqAssemblyRef });
var tree = comp.SyntaxTrees[0];
var model = comp.GetSemanticModel(tree);
int start = program.IndexOf(startString, StringComparison.Ordinal) + startString.Length;
int end = program.IndexOf(endString, StringComparison.Ordinal);
int start = program.IndexOf(StartString, StringComparison.Ordinal) + StartString.Length;
int end = program.IndexOf(EndString, StringComparison.Ordinal);
ExpressionSyntax syntaxToBind = null;
foreach (var expr in GetSyntaxNodeList(tree).OfType<ExpressionSyntax>())
{
......@@ -114,8 +114,8 @@ protected T CompileAndGetModelAndStatements<T>(string program, Func<SemanticMode
var comp = CreateStandardCompilation(program, new[] { LinqAssemblyRef });
var tree = comp.SyntaxTrees[0];
var model = comp.GetSemanticModel(tree);
int start = program.IndexOf(startString, StringComparison.Ordinal) + startString.Length;
int end = program.IndexOf(endString, StringComparison.Ordinal);
int start = program.IndexOf(StartString, StringComparison.Ordinal) + StartString.Length;
int end = program.IndexOf(EndString, StringComparison.Ordinal);
StatementSyntax firstStatement = null, lastStatement = null;
foreach (var stmt in GetSyntaxNodeList(tree).OfType<StatementSyntax>())
{
......
......@@ -731,8 +731,8 @@ protected static SyntaxNode GetSyntaxNodeForBinding(List<SyntaxNode> synList)
return GetSyntaxNodeOfTypeForBinding<SyntaxNode>(synList);
}
protected const string startString = "/*<bind>*/";
protected const string endString = "/*</bind>*/";
protected const string StartString = "/*<bind>*/";
protected const string EndString = "/*</bind>*/";
protected static TNode GetSyntaxNodeOfTypeForBinding<TNode>(List<SyntaxNode> synList) where TNode : SyntaxNode
{
......@@ -741,26 +741,42 @@ protected static SyntaxNode GetSyntaxNodeForBinding(List<SyntaxNode> synList)
string exprFullText = node.ToFullString();
exprFullText = exprFullText.Trim();
if (exprFullText.StartsWith(startString, StringComparison.Ordinal))
if (exprFullText.StartsWith(StartString, StringComparison.Ordinal))
{
if (exprFullText.Contains(endString))
if (exprFullText.EndsWith(endString, StringComparison.Ordinal))
if (exprFullText.Contains(EndString))
{
if (exprFullText.EndsWith(EndString, StringComparison.Ordinal))
{
return node;
}
else
{
continue;
}
}
else
{
return node;
}
}
if (exprFullText.EndsWith(endString, StringComparison.Ordinal))
if (exprFullText.EndsWith(EndString, StringComparison.Ordinal))
{
if (exprFullText.Contains(startString))
if (exprFullText.StartsWith(startString, StringComparison.Ordinal))
if (exprFullText.Contains(StartString))
{
if (exprFullText.StartsWith(StartString, StringComparison.Ordinal))
{
return node;
}
else
{
continue;
}
}
else
{
return node;
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册