React to CSharpTokenIRNode being removed

This commit is contained in:
Ajay Bhargav Baaskaran 2017-02-17 19:31:33 -08:00
parent 0f5d5ff3b5
commit 11d747fc33
5 changed files with 36 additions and 17 deletions

View File

@ -27,8 +27,9 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host
var expression = new CSharpExpressionIRNode();
var builder = RazorIRBuilder.Create(expression);
builder.Add(new CSharpTokenIRNode()
builder.Add(new RazorIRToken()
{
Kind = RazorIRToken.TokenKind.CSharp,
Content = "ModelExpressionProvider.CreateModelExpression(ViewData, __model => ",
});
@ -40,13 +41,15 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host
// https://github.com/aspnet/Razor/issues/963
var original = ((HtmlContentIRNode)node.Children[0]);
builder.Add(new CSharpTokenIRNode()
builder.Add(new RazorIRToken()
{
Kind = RazorIRToken.TokenKind.CSharp,
Content = "__model."
});
builder.Add(new CSharpTokenIRNode()
builder.Add(new RazorIRToken()
{
Kind = RazorIRToken.TokenKind.CSharp,
Content = original.Content,
Source = original.Source,
});
@ -60,8 +63,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host
{
for (var j = 0; j < nestedExpression.Children.Count; j++)
{
var cSharpToken = nestedExpression.Children[j] as CSharpTokenIRNode;
if (cSharpToken != null)
var cSharpToken = nestedExpression.Children[j] as RazorIRToken;
if (cSharpToken != null && cSharpToken.Kind == RazorIRToken.TokenKind.CSharp)
{
builder.Add(cSharpToken);
}
@ -75,8 +78,9 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host
var html = node.Children[i] as HtmlContentIRNode;
if (html != null)
{
builder.Add(new CSharpTokenIRNode()
builder.Add(new RazorIRToken()
{
Kind = RazorIRToken.TokenKind.CSharp,
Content = html.Content,
Source = html.Source,
});
@ -84,8 +88,9 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host
}
}
builder.Add(new CSharpTokenIRNode()
builder.Add(new RazorIRToken()
{
Kind = RazorIRToken.TokenKind.CSharp,
Content = ")",
});

View File

@ -221,8 +221,11 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host
var builder = new StringBuilder();
for (var i = 0; i < node.Children.Count; i++)
{
var child = node.Children[i] as CSharpTokenIRNode;
builder.Append(child.Content);
var child = node.Children[i] as RazorIRToken;
if (child.Kind == RazorIRToken.TokenKind.CSharp)
{
builder.Append(child.Content);
}
}
return builder.ToString();

View File

@ -204,8 +204,11 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host
var builder = new StringBuilder();
for (var i = 0; i < node.Children.Count; i++)
{
var child = node.Children[i] as CSharpTokenIRNode;
builder.Append(child.Content);
var child = node.Children[i] as RazorIRToken;
if (child.Kind == RazorIRToken.TokenKind.CSharp)
{
builder.Append(child.Content);
}
}
return builder.ToString();

View File

@ -107,7 +107,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host
var expression = Assert.IsType<CSharpExpressionIRNode>(Assert.Single(setProperty.Children));
Assert.Equal("ModelExpressionProvider.CreateModelExpression(ViewData, __model => __model.Bar)", GetCSharpContent(expression));
var originalNode = Assert.IsType<CSharpTokenIRNode>(expression.Children[2]);
var originalNode = Assert.IsType<RazorIRToken>(expression.Children[2]);
Assert.Equal(RazorIRToken.TokenKind.CSharp, originalNode.Kind);
Assert.Equal("Bar", originalNode.Content);
Assert.Equal(new SourceSpan("test.cshtml", 51, 1, 8, 3), originalNode.Source.Value);
}
@ -158,7 +159,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host
var expression = Assert.IsType<CSharpExpressionIRNode>(Assert.Single(setProperty.Children));
Assert.Equal("ModelExpressionProvider.CreateModelExpression(ViewData, __model => Bar)", GetCSharpContent(expression));
var originalNode = Assert.IsType<CSharpTokenIRNode>(expression.Children[1]);
var originalNode = Assert.IsType<RazorIRToken>(expression.Children[1]);
Assert.Equal(RazorIRToken.TokenKind.CSharp, originalNode.Kind);
Assert.Equal("Bar", originalNode.Content);
Assert.Equal(new SourceSpan("test.cshtml", 52, 1, 9, 3), originalNode.Source.Value);
}
@ -212,8 +214,11 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host
var builder = new StringBuilder();
for (var i = 0; i < node.Children.Count; i++)
{
var child = node.Children[i] as CSharpTokenIRNode;
builder.Append(child.Content);
var child = node.Children[i] as RazorIRToken;
if (child.Kind == RazorIRToken.TokenKind.CSharp)
{
builder.Append(child.Content);
}
}
return builder.ToString();

View File

@ -366,8 +366,11 @@ public class __Generated__TagCloudViewComponentTagHelper : Microsoft.AspNetCore.
var builder = new StringBuilder();
for (var i = 0; i < node.Children.Count; i++)
{
var child = node.Children[i] as CSharpTokenIRNode;
builder.Append(child.Content);
var child = node.Children[i] as RazorIRToken;
if (child.Kind == RazorIRToken.TokenKind.CSharp)
{
builder.Append(child.Content);
}
}
return builder.ToString();