Merge branch 'master' into merge/release/3.1-to-master\n\nCommit migrated from f0bc410c4b
This commit is contained in:
commit
b8cd714033
|
|
@ -110,11 +110,11 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X
|
||||||
if (string.Equals(selectedMethod.Name, ViewComponentTypes.AsyncMethodName, StringComparison.Ordinal))
|
if (string.Equals(selectedMethod.Name, ViewComponentTypes.AsyncMethodName, StringComparison.Ordinal))
|
||||||
{
|
{
|
||||||
// Will invoke asynchronously. Method must not return Task or Task<T>.
|
// Will invoke asynchronously. Method must not return Task or Task<T>.
|
||||||
if (Equals(returnType, _taskSymbol))
|
if (SymbolEqualityComparer.Default.Equals(returnType, _taskSymbol))
|
||||||
{
|
{
|
||||||
// This is ok.
|
// This is ok.
|
||||||
}
|
}
|
||||||
else if (returnType.IsGenericType && Equals(returnType.ConstructedFrom, _genericTaskSymbol))
|
else if (returnType.IsGenericType && SymbolEqualityComparer.Default.Equals(returnType.ConstructedFrom, _genericTaskSymbol))
|
||||||
{
|
{
|
||||||
// This is ok.
|
// This is ok.
|
||||||
}
|
}
|
||||||
|
|
@ -134,13 +134,13 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X
|
||||||
method = null;
|
method = null;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else if (Equals(returnType, _taskSymbol))
|
else if (SymbolEqualityComparer.Default.Equals(returnType, _taskSymbol))
|
||||||
{
|
{
|
||||||
diagnostic = RazorExtensionsDiagnosticFactory.CreateViewComponent_SyncMethod_CannotReturnTask(type.ToDisplayString(FullNameTypeDisplayFormat));
|
diagnostic = RazorExtensionsDiagnosticFactory.CreateViewComponent_SyncMethod_CannotReturnTask(type.ToDisplayString(FullNameTypeDisplayFormat));
|
||||||
method = null;
|
method = null;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else if (returnType.IsGenericType && Equals(returnType.ConstructedFrom, _genericTaskSymbol))
|
else if (returnType.IsGenericType && SymbolEqualityComparer.Default.Equals(returnType.ConstructedFrom, _genericTaskSymbol))
|
||||||
{
|
{
|
||||||
diagnostic = RazorExtensionsDiagnosticFactory.CreateViewComponent_SyncMethod_CannotReturnTask(type.ToDisplayString(FullNameTypeDisplayFormat));
|
diagnostic = RazorExtensionsDiagnosticFactory.CreateViewComponent_SyncMethod_CannotReturnTask(type.ToDisplayString(FullNameTypeDisplayFormat));
|
||||||
method = null;
|
method = null;
|
||||||
|
|
@ -208,13 +208,13 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X
|
||||||
private string GetIndexerValueTypeName(IParameterSymbol parameter)
|
private string GetIndexerValueTypeName(IParameterSymbol parameter)
|
||||||
{
|
{
|
||||||
INamedTypeSymbol dictionaryType;
|
INamedTypeSymbol dictionaryType;
|
||||||
if (Equals((parameter.Type as INamedTypeSymbol)?.ConstructedFrom, _iDictionarySymbol))
|
if (SymbolEqualityComparer.Default.Equals((parameter.Type as INamedTypeSymbol)?.ConstructedFrom, _iDictionarySymbol))
|
||||||
{
|
{
|
||||||
dictionaryType = (INamedTypeSymbol)parameter.Type;
|
dictionaryType = (INamedTypeSymbol)parameter.Type;
|
||||||
}
|
}
|
||||||
else if (parameter.Type.AllInterfaces.Any(s => Equals(s.ConstructedFrom, _iDictionarySymbol)))
|
else if (parameter.Type.AllInterfaces.Any(s => SymbolEqualityComparer.Default.Equals(s.ConstructedFrom, _iDictionarySymbol)))
|
||||||
{
|
{
|
||||||
dictionaryType = parameter.Type.AllInterfaces.First(s => Equals(s.ConstructedFrom, _iDictionarySymbol));
|
dictionaryType = parameter.Type.AllInterfaces.First(s => SymbolEqualityComparer.Default.Equals(s.ConstructedFrom, _iDictionarySymbol));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -234,7 +234,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X
|
||||||
|
|
||||||
private string GetShortName(INamedTypeSymbol componentType)
|
private string GetShortName(INamedTypeSymbol componentType)
|
||||||
{
|
{
|
||||||
var viewComponentAttribute = componentType.GetAttributes().Where(a => Equals(a.AttributeClass, _viewComponentAttributeSymbol)).FirstOrDefault();
|
var viewComponentAttribute = componentType.GetAttributes().Where(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, _viewComponentAttributeSymbol)).FirstOrDefault();
|
||||||
var name = viewComponentAttribute
|
var name = viewComponentAttribute
|
||||||
?.NamedArguments
|
?.NamedArguments
|
||||||
.Where(namedArgument => string.Equals(namedArgument.Key, ViewComponentTypes.ViewComponent.Name, StringComparison.Ordinal))
|
.Where(namedArgument => string.Equals(namedArgument.Key, ViewComponentTypes.ViewComponent.Name, StringComparison.Ordinal))
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var attribute = type.GetAttributes().Where(a => Equals(a.AttributeClass, queryAttribute)).FirstOrDefault();
|
var attribute = type.GetAttributes().Where(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, queryAttribute)).FirstOrDefault();
|
||||||
|
|
||||||
if (attribute != null)
|
if (attribute != null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Extensions
|
||||||
";
|
";
|
||||||
|
|
||||||
var output = context.CodeWriter.GenerateCode();
|
var output = context.CodeWriter.GenerateCode();
|
||||||
Assert.Equal(expected, output);
|
Assert.Equal(expected, output, ignoreLineEndingDifferences: true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -104,11 +104,11 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions.Version2_X
|
||||||
if (string.Equals(selectedMethod.Name, ViewComponentTypes.AsyncMethodName, StringComparison.Ordinal))
|
if (string.Equals(selectedMethod.Name, ViewComponentTypes.AsyncMethodName, StringComparison.Ordinal))
|
||||||
{
|
{
|
||||||
// Will invoke asynchronously. Method must not return Task or Task<T>.
|
// Will invoke asynchronously. Method must not return Task or Task<T>.
|
||||||
if (Equals(returnType, _taskSymbol))
|
if (SymbolEqualityComparer.Default.Equals(returnType, _taskSymbol))
|
||||||
{
|
{
|
||||||
// This is ok.
|
// This is ok.
|
||||||
}
|
}
|
||||||
else if (returnType.IsGenericType && Equals(returnType.ConstructedFrom, _genericTaskSymbol))
|
else if (returnType.IsGenericType && SymbolEqualityComparer.Default.Equals(returnType.ConstructedFrom, _genericTaskSymbol))
|
||||||
{
|
{
|
||||||
// This is ok.
|
// This is ok.
|
||||||
}
|
}
|
||||||
|
|
@ -128,13 +128,13 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions.Version2_X
|
||||||
method = null;
|
method = null;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else if (Equals(returnType, _taskSymbol))
|
else if (SymbolEqualityComparer.Default.Equals(returnType, _taskSymbol))
|
||||||
{
|
{
|
||||||
diagnostic = RazorExtensionsDiagnosticFactory.CreateViewComponent_SyncMethod_CannotReturnTask(type.ToDisplayString(FullNameTypeDisplayFormat));
|
diagnostic = RazorExtensionsDiagnosticFactory.CreateViewComponent_SyncMethod_CannotReturnTask(type.ToDisplayString(FullNameTypeDisplayFormat));
|
||||||
method = null;
|
method = null;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else if (returnType.IsGenericType && Equals(returnType.ConstructedFrom, _genericTaskSymbol))
|
else if (returnType.IsGenericType && SymbolEqualityComparer.Default.Equals(returnType.ConstructedFrom, _genericTaskSymbol))
|
||||||
{
|
{
|
||||||
diagnostic = RazorExtensionsDiagnosticFactory.CreateViewComponent_SyncMethod_CannotReturnTask(type.ToDisplayString(FullNameTypeDisplayFormat));
|
diagnostic = RazorExtensionsDiagnosticFactory.CreateViewComponent_SyncMethod_CannotReturnTask(type.ToDisplayString(FullNameTypeDisplayFormat));
|
||||||
method = null;
|
method = null;
|
||||||
|
|
@ -223,13 +223,13 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions.Version2_X
|
||||||
private string GetIndexerValueTypeName(IParameterSymbol parameter)
|
private string GetIndexerValueTypeName(IParameterSymbol parameter)
|
||||||
{
|
{
|
||||||
INamedTypeSymbol dictionaryType;
|
INamedTypeSymbol dictionaryType;
|
||||||
if (Equals((parameter.Type as INamedTypeSymbol)?.ConstructedFrom, _iDictionarySymbol))
|
if (SymbolEqualityComparer.Default.Equals((parameter.Type as INamedTypeSymbol)?.ConstructedFrom, _iDictionarySymbol))
|
||||||
{
|
{
|
||||||
dictionaryType = (INamedTypeSymbol)parameter.Type;
|
dictionaryType = (INamedTypeSymbol)parameter.Type;
|
||||||
}
|
}
|
||||||
else if (parameter.Type.AllInterfaces.Any(s => Equals(s.ConstructedFrom, _iDictionarySymbol)))
|
else if (parameter.Type.AllInterfaces.Any(s => SymbolEqualityComparer.Default.Equals(s.ConstructedFrom, _iDictionarySymbol)))
|
||||||
{
|
{
|
||||||
dictionaryType = parameter.Type.AllInterfaces.First(s => Equals(s.ConstructedFrom, _iDictionarySymbol));
|
dictionaryType = parameter.Type.AllInterfaces.First(s => SymbolEqualityComparer.Default.Equals(s.ConstructedFrom, _iDictionarySymbol));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -249,7 +249,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions.Version2_X
|
||||||
|
|
||||||
private string GetShortName(INamedTypeSymbol componentType)
|
private string GetShortName(INamedTypeSymbol componentType)
|
||||||
{
|
{
|
||||||
var viewComponentAttribute = componentType.GetAttributes().Where(a => Equals(a.AttributeClass, _viewComponentAttributeSymbol)).FirstOrDefault();
|
var viewComponentAttribute = componentType.GetAttributes().Where(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, _viewComponentAttributeSymbol)).FirstOrDefault();
|
||||||
var name = viewComponentAttribute
|
var name = viewComponentAttribute
|
||||||
?.NamedArguments
|
?.NamedArguments
|
||||||
.Where(namedArgument => string.Equals(namedArgument.Key, ViewComponentTypes.ViewComponent.Name, StringComparison.Ordinal))
|
.Where(namedArgument => string.Equals(namedArgument.Key, ViewComponentTypes.ViewComponent.Name, StringComparison.Ordinal))
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions.Version2_X
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var attribute = type.GetAttributes().Where(a => Equals(a.AttributeClass, queryAttribute)).FirstOrDefault();
|
var attribute = type.GetAttributes().Where(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, queryAttribute)).FirstOrDefault();
|
||||||
|
|
||||||
if (attribute != null)
|
if (attribute != null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -104,11 +104,11 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||||
if (string.Equals(selectedMethod.Name, ViewComponentTypes.AsyncMethodName, StringComparison.Ordinal))
|
if (string.Equals(selectedMethod.Name, ViewComponentTypes.AsyncMethodName, StringComparison.Ordinal))
|
||||||
{
|
{
|
||||||
// Will invoke asynchronously. Method must not return Task or Task<T>.
|
// Will invoke asynchronously. Method must not return Task or Task<T>.
|
||||||
if (Equals(returnType, _taskSymbol))
|
if (SymbolEqualityComparer.Default.Equals(returnType, _taskSymbol))
|
||||||
{
|
{
|
||||||
// This is ok.
|
// This is ok.
|
||||||
}
|
}
|
||||||
else if (returnType.IsGenericType && Equals(returnType.ConstructedFrom, _genericTaskSymbol))
|
else if (returnType.IsGenericType && SymbolEqualityComparer.Default.Equals(returnType.ConstructedFrom, _genericTaskSymbol))
|
||||||
{
|
{
|
||||||
// This is ok.
|
// This is ok.
|
||||||
}
|
}
|
||||||
|
|
@ -128,13 +128,13 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||||
method = null;
|
method = null;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else if (Equals(returnType, _taskSymbol))
|
else if (SymbolEqualityComparer.Default.Equals(returnType, _taskSymbol))
|
||||||
{
|
{
|
||||||
diagnostic = RazorExtensionsDiagnosticFactory.CreateViewComponent_SyncMethod_CannotReturnTask(type.ToDisplayString(FullNameTypeDisplayFormat));
|
diagnostic = RazorExtensionsDiagnosticFactory.CreateViewComponent_SyncMethod_CannotReturnTask(type.ToDisplayString(FullNameTypeDisplayFormat));
|
||||||
method = null;
|
method = null;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else if (returnType.IsGenericType && Equals(returnType.ConstructedFrom, _genericTaskSymbol))
|
else if (returnType.IsGenericType && SymbolEqualityComparer.Default.Equals(returnType.ConstructedFrom, _genericTaskSymbol))
|
||||||
{
|
{
|
||||||
diagnostic = RazorExtensionsDiagnosticFactory.CreateViewComponent_SyncMethod_CannotReturnTask(type.ToDisplayString(FullNameTypeDisplayFormat));
|
diagnostic = RazorExtensionsDiagnosticFactory.CreateViewComponent_SyncMethod_CannotReturnTask(type.ToDisplayString(FullNameTypeDisplayFormat));
|
||||||
method = null;
|
method = null;
|
||||||
|
|
@ -223,13 +223,13 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||||
private string GetIndexerValueTypeName(IParameterSymbol parameter)
|
private string GetIndexerValueTypeName(IParameterSymbol parameter)
|
||||||
{
|
{
|
||||||
INamedTypeSymbol dictionaryType;
|
INamedTypeSymbol dictionaryType;
|
||||||
if (Equals((parameter.Type as INamedTypeSymbol)?.ConstructedFrom, _iDictionarySymbol))
|
if (SymbolEqualityComparer.Default.Equals((parameter.Type as INamedTypeSymbol)?.ConstructedFrom, _iDictionarySymbol))
|
||||||
{
|
{
|
||||||
dictionaryType = (INamedTypeSymbol)parameter.Type;
|
dictionaryType = (INamedTypeSymbol)parameter.Type;
|
||||||
}
|
}
|
||||||
else if (parameter.Type.AllInterfaces.Any(s => Equals(s.ConstructedFrom, _iDictionarySymbol)))
|
else if (parameter.Type.AllInterfaces.Any(s => SymbolEqualityComparer.Default.Equals(s.ConstructedFrom, _iDictionarySymbol)))
|
||||||
{
|
{
|
||||||
dictionaryType = parameter.Type.AllInterfaces.First(s => Equals(s.ConstructedFrom, _iDictionarySymbol));
|
dictionaryType = parameter.Type.AllInterfaces.First(s => SymbolEqualityComparer.Default.Equals(s.ConstructedFrom, _iDictionarySymbol));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -249,7 +249,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||||
|
|
||||||
private string GetShortName(INamedTypeSymbol componentType)
|
private string GetShortName(INamedTypeSymbol componentType)
|
||||||
{
|
{
|
||||||
var viewComponentAttribute = componentType.GetAttributes().Where(a => Equals(a.AttributeClass, _viewComponentAttributeSymbol)).FirstOrDefault();
|
var viewComponentAttribute = componentType.GetAttributes().Where(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, _viewComponentAttributeSymbol)).FirstOrDefault();
|
||||||
var name = viewComponentAttribute
|
var name = viewComponentAttribute
|
||||||
?.NamedArguments
|
?.NamedArguments
|
||||||
.Where(namedArgument => string.Equals(namedArgument.Key, ViewComponentTypes.ViewComponent.Name, StringComparison.Ordinal))
|
.Where(namedArgument => string.Equals(namedArgument.Key, ViewComponentTypes.ViewComponent.Name, StringComparison.Ordinal))
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var attribute = type.GetAttributes().Where(a => Equals(a.AttributeClass, queryAttribute)).FirstOrDefault();
|
var attribute = type.GetAttributes().Where(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, queryAttribute)).FirstOrDefault();
|
||||||
|
|
||||||
if (attribute != null)
|
if (attribute != null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -540,6 +540,7 @@ public class AllTagHelper : {typeof(TagHelper).FullName}
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -559,6 +560,7 @@ public class AllTagHelper : {typeof(TagHelper).FullName}
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -584,6 +586,7 @@ public class MyService<TModel>
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -620,6 +623,7 @@ public class MyModel
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -655,6 +659,7 @@ public class MyModel
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -674,6 +679,7 @@ public class MyModel
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -693,6 +699,7 @@ public class MyModel
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -712,6 +719,7 @@ public class MyModel
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -728,6 +736,7 @@ public class MyModel
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -753,6 +762,7 @@ public class InputTestTagHelper : {typeof(TagHelper).FullName}
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -769,6 +779,7 @@ public class InputTestTagHelper : {typeof(TagHelper).FullName}
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -792,6 +803,7 @@ public class MyApp
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -824,6 +836,7 @@ public class MyApp
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -857,6 +870,7 @@ public class MyService<TModel>
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -873,6 +887,7 @@ public class MyService<TModel>
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -895,6 +910,7 @@ public class ThisShouldBeGenerated
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -923,6 +939,7 @@ public class InputTestTagHelper : {typeof(TagHelper).FullName}
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -946,6 +963,7 @@ public class DivTagHelper : {typeof(TagHelper).FullName}
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -962,6 +980,7 @@ public class DivTagHelper : {typeof(TagHelper).FullName}
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -985,6 +1004,7 @@ public class DivTagHelper : {typeof(TagHelper).FullName}
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -1001,6 +1021,7 @@ public class DivTagHelper : {typeof(TagHelper).FullName}
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -1017,6 +1038,7 @@ public class DivTagHelper : {typeof(TagHelper).FullName}
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -1049,6 +1071,7 @@ public class AllTagHelper : {typeof(TagHelper).FullName}
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
@ -1065,6 +1088,7 @@ public class AllTagHelper : {typeof(TagHelper).FullName}
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(compiled.CodeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(compiled.CodeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(compiled.CodeDocument.GetCSharpDocument());
|
||||||
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
AssertLinePragmas(compiled.CodeDocument, designTime: true);
|
||||||
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
AssertSourceMappingsMatchBaseline(compiled.CodeDocument);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
|
||||||
|
<div class=" ">
|
||||||
|
Hello world
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
<div class=" ">
|
||||||
|
Hello world
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class=" " />
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Test.
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
"foo
|
||||||
|
|
||||||
|
<h1>About Us</h1>
|
||||||
|
<p>We are awesome.</p>
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<input-test for=" " />
|
||||||
|
<input-test for=" " />
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
|
||||||
|
|
||||||
|
<h1>Hi There!</h1>
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
<div>Some text here.</div>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h1>New Customer </h1>
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h1>New Customer</h1>
|
||||||
|
<form method="post" class="form-horizontal">
|
||||||
|
<div class="text-danger"></div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-md-2 control-label"> </label>
|
||||||
|
<div class="col-md-10">
|
||||||
|
<input class="form-control" />
|
||||||
|
<span class="text-danger"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="col-md-offset-2 col-md-10">
|
||||||
|
<button type="submit" class="btn btn-primary">Save</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h1>New Customer</h1>
|
||||||
|
<form method="post" class="form-horizontal" >
|
||||||
|
<div class="text-danger"></div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-md-2 control-label"> </label>
|
||||||
|
<div class="col-md-10">
|
||||||
|
<input class="form-control" />
|
||||||
|
<span class="text-danger"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="col-md-offset-2 col-md-10">
|
||||||
|
<button type="submit" class="btn btn-primary">Save</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div>Some body</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div>This is in Section 1</div>
|
||||||
|
<input-test for=" " />
|
||||||
|
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<vc:test first-name=" " bar=" World"></vc:test>
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
<h1>Hi There!</h1>
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -18,6 +18,11 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
|
|
||||||
public ClassifiedSpanVisitor(RazorSourceDocument source)
|
public ClassifiedSpanVisitor(RazorSourceDocument source)
|
||||||
{
|
{
|
||||||
|
if (source is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(source));
|
||||||
|
}
|
||||||
|
|
||||||
_source = source;
|
_source = source;
|
||||||
_spans = new List<ClassifiedSpanInternal>();
|
_spans = new List<ClassifiedSpanInternal>();
|
||||||
_currentBlockKind = BlockKindInternal.Markup;
|
_currentBlockKind = BlockKindInternal.Markup;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using Microsoft.AspNetCore.Razor.Language.CodeGeneration;
|
using Microsoft.AspNetCore.Razor.Language.CodeGeneration;
|
||||||
using Microsoft.AspNetCore.Razor.Language.Intermediate;
|
using Microsoft.AspNetCore.Razor.Language.Intermediate;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNetCore.Razor.Language
|
||||||
|
{
|
||||||
|
internal class DefaultRazorHtmlDocument : RazorHtmlDocument
|
||||||
|
{
|
||||||
|
private readonly string _generatedHtml;
|
||||||
|
private readonly RazorCodeGenerationOptions _options;
|
||||||
|
|
||||||
|
public DefaultRazorHtmlDocument(
|
||||||
|
string generatedHtml,
|
||||||
|
RazorCodeGenerationOptions options)
|
||||||
|
{
|
||||||
|
if (generatedHtml == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(generatedHtml));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(options));
|
||||||
|
}
|
||||||
|
|
||||||
|
_generatedHtml = generatedHtml;
|
||||||
|
_options = options;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string GeneratedHtml => _generatedHtml;
|
||||||
|
|
||||||
|
public override RazorCodeGenerationOptions Options => _options;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -102,8 +102,6 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
return string.Equals(descriptor.Name, typePattern, StringComparison.Ordinal);
|
return string.Equals(descriptor.Name, typePattern, StringComparison.Ordinal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
internal abstract class DirectiveVisitor : SyntaxWalker
|
internal abstract class DirectiveVisitor : SyntaxWalker
|
||||||
{
|
{
|
||||||
public abstract HashSet<TagHelperDescriptor> Matches { get; }
|
public abstract HashSet<TagHelperDescriptor> Matches { get; }
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,6 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using Microsoft.AspNetCore.Razor.Language.Extensions;
|
using Microsoft.AspNetCore.Razor.Language.Extensions;
|
||||||
using Microsoft.AspNetCore.Razor.Language.Intermediate;
|
using Microsoft.AspNetCore.Razor.Language.Intermediate;
|
||||||
|
|
@ -118,6 +115,27 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
document.Items[typeof(DocumentIntermediateNode)] = documentNode;
|
document.Items[typeof(DocumentIntermediateNode)] = documentNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static RazorHtmlDocument GetHtmlDocument(this RazorCodeDocument document)
|
||||||
|
{
|
||||||
|
if (document == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(document));
|
||||||
|
}
|
||||||
|
|
||||||
|
var razorHtmlObj = document.Items[typeof(RazorHtmlDocument)];
|
||||||
|
if (razorHtmlObj == null)
|
||||||
|
{
|
||||||
|
var razorHtmlDocument = RazorHtmlWriter.GetHtmlDocument(document);
|
||||||
|
if (razorHtmlDocument != null)
|
||||||
|
{
|
||||||
|
document.Items[typeof(RazorHtmlDocument)] = razorHtmlDocument;
|
||||||
|
return razorHtmlDocument;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (RazorHtmlDocument)razorHtmlObj;
|
||||||
|
}
|
||||||
|
|
||||||
public static RazorCSharpDocument GetCSharpDocument(this RazorCodeDocument document)
|
public static RazorCSharpDocument GetCSharpDocument(this RazorCodeDocument document)
|
||||||
{
|
{
|
||||||
if (document == null)
|
if (document == null)
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
{
|
{
|
||||||
#pragma warning disable CS0618 // Type or member is obsolete
|
#pragma warning disable CS0618 // Type or member is obsolete
|
||||||
private static RazorEngine CreateCore(RazorConfiguration configuration, bool designTime, Action<IRazorEngineBuilder> configure)
|
private static RazorEngine CreateCore(RazorConfiguration configuration, bool designTime, Action<IRazorEngineBuilder> configure)
|
||||||
#pragma warning disable CS0618 // Type or member is obsolete
|
#pragma warning restore CS0618 // Type or member is obsolete
|
||||||
{
|
{
|
||||||
if (configuration == null)
|
if (configuration == null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNetCore.Razor.Language
|
||||||
|
{
|
||||||
|
internal abstract class RazorHtmlDocument
|
||||||
|
{
|
||||||
|
public abstract string GeneratedHtml { get; }
|
||||||
|
|
||||||
|
public abstract RazorCodeGenerationOptions Options { get; }
|
||||||
|
|
||||||
|
public static RazorHtmlDocument Create(string generatedHtml, RazorCodeGenerationOptions options)
|
||||||
|
{
|
||||||
|
if (generatedHtml == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(generatedHtml));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(options));
|
||||||
|
}
|
||||||
|
|
||||||
|
return new DefaultRazorHtmlDocument(generatedHtml, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,166 @@
|
||||||
|
// Copyright (c) .NET Foundation. 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.Diagnostics;
|
||||||
|
using System.Text;
|
||||||
|
using Microsoft.AspNetCore.Razor.Language.Syntax;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNetCore.Razor.Language
|
||||||
|
{
|
||||||
|
// We want to generate a HTML document that contains only pure HTML.
|
||||||
|
// So we want replace all non-HTML content with whitespace.
|
||||||
|
// Ideally we should just use ClassifiedSpans to generate this document but
|
||||||
|
// not all characters in the document are included in the ClassifiedSpans.
|
||||||
|
internal class RazorHtmlWriter : SyntaxWalker
|
||||||
|
{
|
||||||
|
private bool _isHtml;
|
||||||
|
|
||||||
|
private RazorHtmlWriter(RazorSourceDocument source)
|
||||||
|
{
|
||||||
|
if (source is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(source));
|
||||||
|
}
|
||||||
|
|
||||||
|
Source = source;
|
||||||
|
Builder = new StringBuilder(Source.Length);
|
||||||
|
_isHtml = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RazorSourceDocument Source { get; }
|
||||||
|
|
||||||
|
public StringBuilder Builder { get; }
|
||||||
|
|
||||||
|
public static RazorHtmlDocument GetHtmlDocument(RazorCodeDocument codeDocument)
|
||||||
|
{
|
||||||
|
var options = codeDocument.GetCodeGenerationOptions();
|
||||||
|
if (options == null || !options.DesignTime)
|
||||||
|
{
|
||||||
|
// Not needed in run time. This pass generates the backing HTML document that is used to provide HTML intellisense.
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var writer = new RazorHtmlWriter(codeDocument.Source);
|
||||||
|
var syntaxTree = codeDocument.GetSyntaxTree();
|
||||||
|
|
||||||
|
writer.Visit(syntaxTree.Root);
|
||||||
|
|
||||||
|
var generatedHtml = writer.Builder.ToString();
|
||||||
|
Debug.Assert(
|
||||||
|
writer.Source.Length == writer.Builder.Length,
|
||||||
|
$"The backing HTML document should be the same length as the original document. Expected: {writer.Source.Length} Actual: {writer.Builder.Length}");
|
||||||
|
|
||||||
|
var razorHtmlDocument = new DefaultRazorHtmlDocument(generatedHtml, options);
|
||||||
|
return razorHtmlDocument;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void VisitRazorCommentBlock(RazorCommentBlockSyntax node)
|
||||||
|
{
|
||||||
|
WriteNode(node, isHtml: false, base.VisitRazorCommentBlock);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void VisitRazorMetaCode(RazorMetaCodeSyntax node)
|
||||||
|
{
|
||||||
|
WriteNode(node, isHtml: false, base.VisitRazorMetaCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void VisitMarkupTransition(MarkupTransitionSyntax node)
|
||||||
|
{
|
||||||
|
WriteNode(node, isHtml: false, base.VisitMarkupTransition);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void VisitCSharpTransition(CSharpTransitionSyntax node)
|
||||||
|
{
|
||||||
|
WriteNode(node, isHtml: false, base.VisitCSharpTransition);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void VisitCSharpEphemeralTextLiteral(CSharpEphemeralTextLiteralSyntax node)
|
||||||
|
{
|
||||||
|
WriteNode(node, isHtml: false, base.VisitCSharpEphemeralTextLiteral);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void VisitCSharpExpressionLiteral(CSharpExpressionLiteralSyntax node)
|
||||||
|
{
|
||||||
|
WriteNode(node, isHtml: false, base.VisitCSharpExpressionLiteral);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void VisitCSharpStatementLiteral(CSharpStatementLiteralSyntax node)
|
||||||
|
{
|
||||||
|
WriteNode(node, isHtml: false, base.VisitCSharpStatementLiteral);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void VisitMarkupStartTag(MarkupStartTagSyntax node)
|
||||||
|
{
|
||||||
|
WriteNode(node, isHtml: true, base.VisitMarkupStartTag);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void VisitMarkupEndTag(MarkupEndTagSyntax node)
|
||||||
|
{
|
||||||
|
WriteNode(node, isHtml: true, base.VisitMarkupEndTag);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void VisitMarkupTagHelperStartTag(MarkupTagHelperStartTagSyntax node)
|
||||||
|
{
|
||||||
|
WriteNode(node, isHtml: true, base.VisitMarkupTagHelperStartTag);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void VisitMarkupTagHelperEndTag(MarkupTagHelperEndTagSyntax node)
|
||||||
|
{
|
||||||
|
WriteNode(node, isHtml: true, base.VisitMarkupTagHelperEndTag);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void VisitMarkupEphemeralTextLiteral(MarkupEphemeralTextLiteralSyntax node)
|
||||||
|
{
|
||||||
|
WriteNode(node, isHtml: true, base.VisitMarkupEphemeralTextLiteral);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void VisitMarkupTextLiteral(MarkupTextLiteralSyntax node)
|
||||||
|
{
|
||||||
|
WriteNode(node, isHtml: true, base.VisitMarkupTextLiteral);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void VisitUnclassifiedTextLiteral(UnclassifiedTextLiteralSyntax node)
|
||||||
|
{
|
||||||
|
WriteNode(node, isHtml: true, base.VisitUnclassifiedTextLiteral);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void VisitToken(SyntaxToken token)
|
||||||
|
{
|
||||||
|
base.VisitToken(token);
|
||||||
|
WriteToken(token);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void WriteToken(SyntaxToken token)
|
||||||
|
{
|
||||||
|
var content = token.Content;
|
||||||
|
if (_isHtml)
|
||||||
|
{
|
||||||
|
// If we're in HTML context, append the content directly.
|
||||||
|
Builder.Append(content);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We're in non-HTML context. Let's replace all non-whitespace chars with a space.
|
||||||
|
foreach (var c in content)
|
||||||
|
{
|
||||||
|
if (char.IsWhiteSpace(c))
|
||||||
|
{
|
||||||
|
Builder.Append(c);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Builder.Append(' ');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void WriteNode<TNode>(TNode node, bool isHtml, Action<TNode> handler) where TNode : SyntaxNode
|
||||||
|
{
|
||||||
|
var old = _isHtml;
|
||||||
|
_isHtml = isHtml;
|
||||||
|
handler(node);
|
||||||
|
_isHtml = old;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -81,7 +81,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Components
|
||||||
Assert.Equal(expected, block.Content, ignoreLineEndingDifferences: true);
|
Assert.Equal(expected, block.Content, ignoreLineEndingDifferences: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// See: https://github.com/aspnet/AspNetCore/issues/6480
|
// See: https://github.com/dotnet/aspnetcore/issues/6480
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Execute_RewritesHtml_HtmlAttributePrefix()
|
public void Execute_RewritesHtml_HtmlAttributePrefix()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1001,6 +1001,7 @@ namespace Microsoft.AspNetCore.Razor.Language.IntegrationTests
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
AssertDocumentNodeMatchesBaseline(codeDocument.GetDocumentIntermediateNode());
|
AssertDocumentNodeMatchesBaseline(codeDocument.GetDocumentIntermediateNode());
|
||||||
|
AssertHtmlDocumentMatchesBaseline(codeDocument.GetHtmlDocument());
|
||||||
AssertCSharpDocumentMatchesBaseline(codeDocument.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(codeDocument.GetCSharpDocument());
|
||||||
AssertSourceMappingsMatchBaseline(codeDocument);
|
AssertSourceMappingsMatchBaseline(codeDocument);
|
||||||
AssertLinePragmas(codeDocument, designTime: true);
|
AssertLinePragmas(codeDocument, designTime: true);
|
||||||
|
|
|
||||||
|
|
@ -5120,7 +5120,7 @@ namespace Test
|
||||||
CompileToAssembly(generated);
|
CompileToAssembly(generated);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact] // https://github.com/aspnet/Blazor/issues/597
|
[Fact] // https://github.com/dotnet/blazor/issues/597
|
||||||
public void Regression_597()
|
public void Regression_597()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
|
|
@ -5186,7 +5186,7 @@ namespace Test
|
||||||
CompileToAssembly(generated);
|
CompileToAssembly(generated);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact] // https://github.com/aspnet/Blazor/issues/772
|
[Fact] // https://github.com/dotnet/blazor/issues/772
|
||||||
public void Regression_772()
|
public void Regression_772()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
|
|
@ -5224,7 +5224,7 @@ Welcome to your new app.
|
||||||
d => Assert.Equal("RZ1035", d.Id));
|
d => Assert.Equal("RZ1035", d.Id));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact] // https://github.com/aspnet/Blazor/issues/773
|
[Fact] // https://github.com/dotnet/blazor/issues/773
|
||||||
public void Regression_773()
|
public void Regression_773()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,7 @@ namespace Microsoft.AspNetCore.Razor.Language.IntegrationTests
|
||||||
Assert.Contains(typeof(IDoCoolThings), component.GetType().GetInterfaces());
|
Assert.Contains(typeof(IDoCoolThings), component.GetType().GetInterfaces());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact] // Regression test for https://github.com/aspnet/Blazor/issues/453
|
[Fact] // Regression test for https://github.com/dotnet/blazor/issues/453
|
||||||
public void DeclarationConfiguration_FunctionsBlockHasLineMappings_MappingsApplyToError()
|
public void DeclarationConfiguration_FunctionsBlockHasLineMappings_MappingsApplyToError()
|
||||||
{
|
{
|
||||||
// Arrange & Act 1
|
// Arrange & Act 1
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Testing" Version="$(MicrosoftAspNetCoreTestingPackageVersion)" />
|
<PackageReference Include="Microsoft.AspNetCore.Testing" Version="$(MicrosoftAspNetCoreTestingPackageVersion)" />
|
||||||
<PackageReference Include="Moq" Version="$(MoqPackageVersion)" />
|
<PackageReference Include="Moq" Version="$(MoqPackageVersion)" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="$(TEST_NewtonsoftJsonPackageVersion)" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Hello World
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h1>Basic Asynchronous Expression Test</h1>
|
||||||
|
<p>Basic Asynchronous Expression: </p>
|
||||||
|
<p>Basic Asynchronous Template: </p>
|
||||||
|
<p>Basic Asynchronous Statement: </p>
|
||||||
|
<p>Basic Asynchronous Statement Nested: <b> </b> </p>
|
||||||
|
<p>Basic Incomplete Asynchronous Statement: </p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h1>Advanced Asynchronous Expression Test</h1>
|
||||||
|
<p>Advanced Asynchronous Expression: </p>
|
||||||
|
<p>Advanced Asynchronous Expression Extended: </p>
|
||||||
|
<p>Advanced Asynchronous Template: </p>
|
||||||
|
<p>Advanced Asynchronous Statement: </p>
|
||||||
|
<p>Advanced Asynchronous Statement Extended: </p>
|
||||||
|
<p>Advanced Asynchronous Statement Nested: <b> </b> </p>
|
||||||
|
<p>Advanced Incomplete Asynchronous Statement: </p>
|
||||||
|
</section>
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Hello from C#, # </p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>We wrote 10 lines!</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>No really, we wrote 10 lines!</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p>Actually, we didn't...</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Hello again from C#, # </p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>That time, we wrote 5 lines!</p>
|
||||||
|
|
||||||
|
<p>Oh no! An error occurred: </p>
|
||||||
|
|
||||||
|
|
||||||
|
<p>i is now </p>
|
||||||
|
|
||||||
|
|
||||||
|
<p>This block is locked, for your security!</p>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Here's a very unique number:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
<text>foo</text>
|
||||||
|
<text>bar </text>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a href="Foo" />
|
||||||
|
<p class=" " />
|
||||||
|
<p class="foo " />
|
||||||
|
<p class=" foo" />
|
||||||
|
<input type="checkbox" checked=" " />
|
||||||
|
<input type="checkbox" checked="foo " />
|
||||||
|
<p class=" " />
|
||||||
|
<a href="~/Foo" />
|
||||||
|
<script src=" " type="text/javascript"></script>
|
||||||
|
<script src=" " type="text/javascript"></script>
|
||||||
|
<script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.16/jquery-ui.min.js" type="text/javascript"></script>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<p>This is item # </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<p>Bar Biz</p>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p>Foo</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
This is markup
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
This is markup
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
This is markup
|
||||||
|
|
||||||
|
!
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
This is markup
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
<div> </div>
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
1 + 1 =
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Foo is Null!</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Here's a random number:
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
<!-- " -->
|
||||||
|
<img src="~/images/submit.png" />
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
<!-- ' -->
|
||||||
|
<img src="~/images/submit.png" />
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
This is markup
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
|
||||||
|
<p>This is item # </p>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
(string link) {
|
||||||
|
<a href=" <text>#</text> " />
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
|
||||||
|
|
||||||
|
<p>Bar</p>
|
||||||
|
Hello, World
|
||||||
|
<p>Hello, World</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Hello from C#, # </p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>We wrote 10 lines!</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>No really, we wrote 10 lines!</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p>Actually, we didn't...</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Hello again from C#, # </p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>That time, we wrote 5 lines!</p>
|
||||||
|
|
||||||
|
<p>Oh no! An error occurred: </p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>This block is locked, for your security!</p>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
|
<p>Hello from C#, # </p>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div> </div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h3>Happy birthday !</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
|
||||||
|
<li> Happy birthday!</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4>Secret message</h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Hello from C#, # </p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>We wrote 10 lines!</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>No really, we wrote 10 lines!</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p>Actually, we didn't...</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Hello again from C#, # </p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>That time, we wrote 5 lines!</p>
|
||||||
|
|
||||||
|
<p>Oh no! An error occurred: </p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>i is now </p>
|
||||||
|
|
||||||
|
|
||||||
|
<p>This block is locked, for your security!</p>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
|
||||||
|
<p>This should be shown</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>But this should show the comment syntax: </p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<input value="@*this razor comment is the actual value*@" type="text" />
|
||||||
|
<input type="text" />
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div>This is in the Body>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="some ">This is in Section 2</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div>This is in Section 1</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<span> </span>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
|
||||||
|
<div></div>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,102 @@
|
||||||
|
<p>Before Text</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Hello!</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p>The time is </p>
|
||||||
|
|
||||||
|
<p>After Text</p>
|
||||||
|
|
@ -0,0 +1,237 @@
|
||||||
|
<p>This is line 1</p>
|
||||||
|
<p>This is line 2</p>
|
||||||
|
<p>This is line 3</p>
|
||||||
|
<p>This is line 4</p>
|
||||||
|
<p>This is line 5</p>
|
||||||
|
<p>This is line 6</p>
|
||||||
|
<p>This is line 7</p>
|
||||||
|
<p>This is line 8</p>
|
||||||
|
<p>This is line 9</p>
|
||||||
|
<p>This is line 10</p>
|
||||||
|
<p>This is line 11</p>
|
||||||
|
<p>This is line 12</p>
|
||||||
|
<p>This is line 13</p>
|
||||||
|
<p>This is line 14</p>
|
||||||
|
<p>This is line 15</p>
|
||||||
|
<p>This is line 16</p>
|
||||||
|
<p>This is line 17</p>
|
||||||
|
<p>This is line 18</p>
|
||||||
|
<p>This is line 19</p>
|
||||||
|
<p>This is line 20</p>
|
||||||
|
<p>This is line 21</p>
|
||||||
|
<p>This is line 22</p>
|
||||||
|
<p>This is line 23</p>
|
||||||
|
<p>This is line 24</p>
|
||||||
|
<p>This is line 25</p>
|
||||||
|
<p>This is line 26</p>
|
||||||
|
<p>This is line 27</p>
|
||||||
|
<p>This is line 28</p>
|
||||||
|
<p>This is line 29</p>
|
||||||
|
<p>This is line 30</p>
|
||||||
|
<p>This is line 31</p>
|
||||||
|
<p>This is line 32</p>
|
||||||
|
<p>This is line 33</p>
|
||||||
|
<p>This is line 34</p>
|
||||||
|
<p>This is line 35</p>
|
||||||
|
<p>This is line 36</p>
|
||||||
|
<p>This is line 37</p>
|
||||||
|
<p>This is line 38</p>
|
||||||
|
<p>This is line 39</p>
|
||||||
|
<p>This is line 40</p>
|
||||||
|
<p>This is line 41</p>
|
||||||
|
<p>This is line 42</p>
|
||||||
|
<p>This is line 43</p>
|
||||||
|
<p>This is line 44</p>
|
||||||
|
<p>This is line 45</p>
|
||||||
|
<p>This is line 46</p>
|
||||||
|
<p>This is line 47</p>
|
||||||
|
<p>This is line 48</p>
|
||||||
|
<p>This is line 49</p>
|
||||||
|
<p>This is line 50</p>
|
||||||
|
<p>This is line 51</p>
|
||||||
|
<p>This is line 52</p>
|
||||||
|
<p>This is line 53</p>
|
||||||
|
<p>This is line 54</p>
|
||||||
|
<p>This is line 55</p>
|
||||||
|
<p>This is line 56</p>
|
||||||
|
<p>This is line 57</p>
|
||||||
|
<p>This is line 58</p>
|
||||||
|
<p>This is line 59</p>
|
||||||
|
<p>This is line 60</p>
|
||||||
|
<p>This is line 61</p>
|
||||||
|
<p>This is line 62</p>
|
||||||
|
<p>This is line 63</p>
|
||||||
|
<p>This is line 64</p>
|
||||||
|
<p>This is line 65</p>
|
||||||
|
<p>This is line 66</p>
|
||||||
|
<p>This is line 67</p>
|
||||||
|
<p>This is line 68</p>
|
||||||
|
<p>This is line 69</p>
|
||||||
|
<p>This is line 70</p>
|
||||||
|
<p>This is line 71</p>
|
||||||
|
<p>This is line 72</p>
|
||||||
|
<p>This is line 73</p>
|
||||||
|
<p>This is line 74</p>
|
||||||
|
<p>This is line 75</p>
|
||||||
|
<p>This is line 76</p>
|
||||||
|
<p>This is line 77</p>
|
||||||
|
<p>This is line 78</p>
|
||||||
|
<p>This is line 79</p>
|
||||||
|
<p>This is line 80</p>
|
||||||
|
<p>This is line 81</p>
|
||||||
|
<p>This is line 82</p>
|
||||||
|
<p>This is line 83</p>
|
||||||
|
<p>This is line 84</p><br>
|
||||||
|
|
||||||
|
|
||||||
|
<p>This is line 1 nested</p>
|
||||||
|
<p>This is line 2 nested</p>
|
||||||
|
<p>This is line 3 nested</p>
|
||||||
|
<p>This is line 4 nested</p>
|
||||||
|
<p>This is line 5 nested</p>
|
||||||
|
<p>This is line 6 nested</p>
|
||||||
|
<p>This is line 7 nested</p>
|
||||||
|
<p>This is line 8 nested</p>
|
||||||
|
<p>This is line 9 nested</p>
|
||||||
|
<p>This is line 10 nested</p>
|
||||||
|
<p>This is line 11 nested</p>
|
||||||
|
<p>This is line 12 nested</p>
|
||||||
|
<p>This is line 13 nested</p>
|
||||||
|
<p>This is line 14 nested</p>
|
||||||
|
<p>This is line 15 nested</p>
|
||||||
|
<p>This is line 16 nested</p>
|
||||||
|
<p>This is line 17 nested</p>
|
||||||
|
<p>This is line 18 nested</p>
|
||||||
|
<p>This is line 19 nested</p>
|
||||||
|
<p>This is line 20 nested</p>
|
||||||
|
<p>This is line 21 nested</p>
|
||||||
|
<p>This is line 22 nested</p>
|
||||||
|
<p>This is line 23 nested</p>
|
||||||
|
<p>This is line 24 nested</p>
|
||||||
|
<p>This is line 25 nested</p>
|
||||||
|
<p>This is line 26 nested</p>
|
||||||
|
<p>This is line 27 nested</p>
|
||||||
|
<p>This is line 28 nested</p>
|
||||||
|
<p>This is line 29 nested</p>
|
||||||
|
<p>This is line 30 nested</p>
|
||||||
|
<p>This is line 31 nested</p>
|
||||||
|
<p>This is line 32 nested</p>
|
||||||
|
<p>This is line 33 nested</p>
|
||||||
|
<p>This is line 34 nested</p>
|
||||||
|
<p>This is line 35 nested</p>
|
||||||
|
<p>This is line 36 nested</p>
|
||||||
|
<p>This is line 37 nested</p>
|
||||||
|
<p>This is line 38 nested</p>
|
||||||
|
<p>This is line 39 nested</p>
|
||||||
|
<p>This is line 40 nested</p>
|
||||||
|
<p>This is line 41 nested</p>
|
||||||
|
<p>This is line 42 nested</p>
|
||||||
|
<p>This is line 43 nested</p>
|
||||||
|
<p>This is line 44 nested</p>
|
||||||
|
<p>This is line 45 nested</p>
|
||||||
|
<p>This is line 46 nested</p>
|
||||||
|
<p>This is line 47 nested</p>
|
||||||
|
<p>This is line 48 nested</p>
|
||||||
|
<p>This is line 49 nested</p>
|
||||||
|
<p>This is line 50 nested</p>
|
||||||
|
<p>This is line 51 nested</p>
|
||||||
|
<p>This is line 52 nested</p>
|
||||||
|
<p>This is line 53 nested</p>
|
||||||
|
<p>This is line 54 nested</p>
|
||||||
|
<p>This is line 55 nested</p>
|
||||||
|
<p>This is line 56 nested</p>
|
||||||
|
<p>This is line 57 nested</p>
|
||||||
|
<p>This is line 58 nested</p>
|
||||||
|
<p>This is line 59 nested</p>
|
||||||
|
<p>This is line 60 nested</p>
|
||||||
|
<p>This is line 61 nested</p>
|
||||||
|
<p>This is line 62 nested</p>
|
||||||
|
<p>This is line 63 nested</p>
|
||||||
|
<p>This is line 64 nested</p>
|
||||||
|
<p>This is line 65 nested</p>
|
||||||
|
<p>This is line 66 nested</p>
|
||||||
|
<p>This is line 67 nested</p>
|
||||||
|
<p>This is line 68 nested</p>
|
||||||
|
<p>This is line 69 nested</p>
|
||||||
|
<p>This is line 70 nested</p>
|
||||||
|
<p>This is line 71 nested</p>
|
||||||
|
<p>This is line 72 nested</p>
|
||||||
|
<p>This is line 73 nested</p>
|
||||||
|
<p>This is line 74 nested</p>
|
||||||
|
<p>This is line 75 nested</p>
|
||||||
|
|
||||||
|
<p>This is line 1</p>
|
||||||
|
<p>This is line 2</p>
|
||||||
|
<p>This is line 3</p>
|
||||||
|
<p>This is line 4</p>
|
||||||
|
<p>This is line 5</p>
|
||||||
|
<p>This is line 6</p>
|
||||||
|
<p>This is line 7</p>
|
||||||
|
<p>This is line 8</p>
|
||||||
|
<p>This is line 9</p>
|
||||||
|
<p>This is line 10</p>
|
||||||
|
<p>This is line 11</p>
|
||||||
|
<p>This is line 12</p>
|
||||||
|
<p>This is line 13</p>
|
||||||
|
<p>This is line 14</p>
|
||||||
|
<p>This is line 15</p>
|
||||||
|
<p>This is line 16</p>
|
||||||
|
<p>This is line 17</p>
|
||||||
|
<p>This is line 18</p>
|
||||||
|
<p>This is line 19</p>
|
||||||
|
<p>This is line 20</p>
|
||||||
|
<p>This is line 21</p>
|
||||||
|
<p>This is line 22</p>
|
||||||
|
<p>This is line 23</p>
|
||||||
|
<p>This is line 24</p>
|
||||||
|
<p>This is line 25</p>
|
||||||
|
<p>This is line 26</p>
|
||||||
|
<p>This is line 27</p>
|
||||||
|
<p>This is line 28</p>
|
||||||
|
<p>This is line 29</p>
|
||||||
|
<p>This is line 30</p>
|
||||||
|
<p>This is line 31</p>
|
||||||
|
<p>This is line 32</p>
|
||||||
|
<p>This is line 33</p>
|
||||||
|
<p>This is line 34</p>
|
||||||
|
<p>This is line 35</p>
|
||||||
|
<p>This is line 36</p>
|
||||||
|
<p>This is line 37</p>
|
||||||
|
<p>This is line 38</p>
|
||||||
|
<p>This is line 39</p>
|
||||||
|
<p>This is line 40</p>
|
||||||
|
<p>This is line 41</p>
|
||||||
|
<p>This is line 42</p>
|
||||||
|
<p>This is line 43</p>hi!
|
||||||
|
|
||||||
|
<p>This is line 1 nested</p>
|
||||||
|
<p>This is line 2 nested</p>
|
||||||
|
<p>This is line 3 nested</p>
|
||||||
|
<p>This is line 4 nested</p>
|
||||||
|
<p>This is line 5 nested</p>
|
||||||
|
<p>This is line 6 nested</p>
|
||||||
|
<p>This is line 7 nested</p>
|
||||||
|
<p>This is line 8 nested</p>
|
||||||
|
<p>This is line 9 nested</p>
|
||||||
|
<p>This is line 10 nested</p>
|
||||||
|
<p>This is line 11 nested</p>
|
||||||
|
<p>This is line 12 nested</p>
|
||||||
|
<p>This is line 13 nested</p>
|
||||||
|
<p>This is line 14 nested</p>
|
||||||
|
<p>This is line 15 nested</p>
|
||||||
|
<p>This is line 16 nested</p>
|
||||||
|
<p>This is line 17 nested</p>
|
||||||
|
<p>This is line 18 nested</p>
|
||||||
|
<p>This is line 19 nested</p>
|
||||||
|
<p>This is line 20 nested</p>
|
||||||
|
<p>This is line 21 nested</p>
|
||||||
|
<p>This is line 22 nested</p>
|
||||||
|
<p>This is line 23 nested</p>
|
||||||
|
<p>This is line 24 nested</p>
|
||||||
|
<p>This is line 25 nested</p>
|
||||||
|
<p>This is line 26 nested</p>
|
||||||
|
<p>This is line 27 nested</p>
|
||||||
|
<p>This is line 28 nested</p>
|
||||||
|
<p>This is line 29 nested</p>
|
||||||
|
<p>30</p>
|
||||||
|
!
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
|
||||||
|
<script type="text/javascript" ></script @foo >
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/html">
|
||||||
|
<%var x = window == null%>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script></script @
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<text>This works !</text>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class=" ">Hello</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Item # </li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
|
||||||
|
This is line# of markup<br/>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
|
||||||
|
: This is line# of markup<br />
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
|
||||||
|
:: This is line# of markup<br />
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
Item #
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Child Items... ?</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Path's full type name is </p>
|
||||||
|
<p>Foo's actual full type name is </p>
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
This is intentionally targeting netcoreapp3.0. This allows using the Microsoft.NET.Sdk.Razor package without having to solve diamond dependency problems in AspNetCore.
|
This is intentionally targeting netcoreapp3.0. This allows using the Microsoft.NET.Sdk.Razor package without having to solve diamond dependency problems in AspNetCore.
|
||||||
We use a runtimeconfig.json.template to allow roll forwards.
|
We use a runtimeconfig.json.template to allow roll forwards.
|
||||||
In addition, the SDK stamps an exact version of the shared fx to use in all runtimeconfig.json that are contained in the SDK.
|
In addition, the SDK stamps an exact version of the shared fx to use in all runtimeconfig.json that are contained in the SDK.
|
||||||
See the discussion here: https://github.com/aspnet/AspNetCore-Internal/issues/3201#issuecomment-539631557
|
See the discussion here: https://github.com/dotnet/aspnetcore-internal/issues/3201#issuecomment-539631557
|
||||||
-->
|
-->
|
||||||
<TargetFramework>netcoreapp3.0</TargetFramework>
|
<TargetFramework>netcoreapp3.0</TargetFramework>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
|
|
|
||||||
|
|
@ -121,7 +121,7 @@ Delta: Gamma: Beta: Test B
|
||||||
|
|
||||||
var actual = builder.ToString();
|
var actual = builder.ToString();
|
||||||
|
|
||||||
Assert.Equal(expected, actual);
|
Assert.Equal(expected, actual, ignoreLineEndingDifferences: true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -235,7 +235,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
|
|
||||||
// We need to check the constructor argument length here, because this can show up as 0
|
// We need to check the constructor argument length here, because this can show up as 0
|
||||||
// if the language service fails to initialize. This is an invalid case, so skip it.
|
// if the language service fails to initialize. This is an invalid case, so skip it.
|
||||||
if (Equals(attribute.AttributeClass, bindElement) && attribute.ConstructorArguments.Length == 4)
|
if (SymbolEqualityComparer.Default.Equals(attribute.AttributeClass, bindElement) && attribute.ConstructorArguments.Length == 4)
|
||||||
{
|
{
|
||||||
results.Add(new ElementBindData(
|
results.Add(new ElementBindData(
|
||||||
type.ContainingAssembly.Name,
|
type.ContainingAssembly.Name,
|
||||||
|
|
@ -246,7 +246,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
(string)attribute.ConstructorArguments[2].Value,
|
(string)attribute.ConstructorArguments[2].Value,
|
||||||
(string)attribute.ConstructorArguments[3].Value));
|
(string)attribute.ConstructorArguments[3].Value));
|
||||||
}
|
}
|
||||||
else if (Equals(attribute.AttributeClass, bindInputElement) && attribute.ConstructorArguments.Length == 4)
|
else if (SymbolEqualityComparer.Default.Equals(attribute.AttributeClass, bindInputElement) && attribute.ConstructorArguments.Length == 4)
|
||||||
{
|
{
|
||||||
results.Add(new ElementBindData(
|
results.Add(new ElementBindData(
|
||||||
type.ContainingAssembly.Name,
|
type.ContainingAssembly.Name,
|
||||||
|
|
@ -257,7 +257,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
(string)attribute.ConstructorArguments[2].Value,
|
(string)attribute.ConstructorArguments[2].Value,
|
||||||
(string)attribute.ConstructorArguments[3].Value));
|
(string)attribute.ConstructorArguments[3].Value));
|
||||||
}
|
}
|
||||||
else if (Equals(attribute.AttributeClass, bindInputElement) && attribute.ConstructorArguments.Length == 6)
|
else if (SymbolEqualityComparer.Default.Equals(attribute.AttributeClass, bindInputElement) && attribute.ConstructorArguments.Length == 6)
|
||||||
{
|
{
|
||||||
results.Add(new ElementBindData(
|
results.Add(new ElementBindData(
|
||||||
type.ContainingAssembly.Name,
|
type.ContainingAssembly.Name,
|
||||||
|
|
|
||||||
|
|
@ -301,6 +301,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
b.Name = ComponentMetadata.ChildContent.ParameterAttributeName;
|
b.Name = ComponentMetadata.ChildContent.ParameterAttributeName;
|
||||||
b.TypeName = typeof(string).FullName;
|
b.TypeName = typeof(string).FullName;
|
||||||
b.Metadata.Add(ComponentMetadata.Component.ChildContentParameterNameKey, bool.TrueString);
|
b.Metadata.Add(ComponentMetadata.Component.ChildContentParameterNameKey, bool.TrueString);
|
||||||
|
b.Metadata.Add(TagHelperMetadata.Common.PropertyName, b.Name);
|
||||||
|
|
||||||
if (childContentName == null)
|
if (childContentName == null)
|
||||||
{
|
{
|
||||||
|
|
@ -327,7 +328,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
var properties = new Dictionary<string, (IPropertySymbol, PropertyKind)>(StringComparer.Ordinal);
|
var properties = new Dictionary<string, (IPropertySymbol, PropertyKind)>(StringComparer.Ordinal);
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (Equals(type, symbols.ComponentBase))
|
if (SymbolEqualityComparer.Default.Equals(type, symbols.ComponentBase))
|
||||||
{
|
{
|
||||||
// The ComponentBase base class doesn't have any [Parameter].
|
// The ComponentBase base class doesn't have any [Parameter].
|
||||||
// Bail out now to avoid walking through its many members, plus the members
|
// Bail out now to avoid walking through its many members, plus the members
|
||||||
|
|
@ -380,7 +381,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
kind = PropertyKind.Ignored;
|
kind = PropertyKind.Ignored;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!property.GetAttributes().Any(a => Equals(a.AttributeClass, symbols.ParameterAttribute)))
|
if (!property.GetAttributes().Any(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, symbols.ParameterAttribute)))
|
||||||
{
|
{
|
||||||
if (property.IsOverride)
|
if (property.IsOverride)
|
||||||
{
|
{
|
||||||
|
|
@ -398,7 +399,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
kind = PropertyKind.Enum;
|
kind = PropertyKind.Enum;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (kind == PropertyKind.Default && Equals(property.Type, symbols.RenderFragment))
|
if (kind == PropertyKind.Default && SymbolEqualityComparer.Default.Equals(property.Type, symbols.RenderFragment))
|
||||||
{
|
{
|
||||||
kind = PropertyKind.ChildContent;
|
kind = PropertyKind.ChildContent;
|
||||||
}
|
}
|
||||||
|
|
@ -406,12 +407,12 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
if (kind == PropertyKind.Default &&
|
if (kind == PropertyKind.Default &&
|
||||||
property.Type is INamedTypeSymbol namedType &&
|
property.Type is INamedTypeSymbol namedType &&
|
||||||
namedType.IsGenericType &&
|
namedType.IsGenericType &&
|
||||||
Equals(namedType.ConstructedFrom, symbols.RenderFragmentOfT))
|
SymbolEqualityComparer.Default.Equals(namedType.ConstructedFrom, symbols.RenderFragmentOfT))
|
||||||
{
|
{
|
||||||
kind = PropertyKind.ChildContent;
|
kind = PropertyKind.ChildContent;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (kind == PropertyKind.Default && Equals(property.Type, symbols.EventCallback))
|
if (kind == PropertyKind.Default && SymbolEqualityComparer.Default.Equals(property.Type, symbols.EventCallback))
|
||||||
{
|
{
|
||||||
kind = PropertyKind.EventCallback;
|
kind = PropertyKind.EventCallback;
|
||||||
}
|
}
|
||||||
|
|
@ -419,7 +420,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
if (kind == PropertyKind.Default &&
|
if (kind == PropertyKind.Default &&
|
||||||
property.Type is INamedTypeSymbol namedType2 &&
|
property.Type is INamedTypeSymbol namedType2 &&
|
||||||
namedType2.IsGenericType &&
|
namedType2.IsGenericType &&
|
||||||
Equals(namedType2.ConstructedFrom, symbols.EventCallbackOfT))
|
SymbolEqualityComparer.Default.Equals(namedType2.ConstructedFrom, symbols.EventCallbackOfT))
|
||||||
{
|
{
|
||||||
kind = PropertyKind.EventCallback;
|
kind = PropertyKind.EventCallback;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
{
|
{
|
||||||
var targetElementAttributes = type
|
var targetElementAttributes = type
|
||||||
.GetAttributes()
|
.GetAttributes()
|
||||||
.Where(attribute => Equals(attribute.AttributeClass, _htmlTargetElementAttributeSymbol));
|
.Where(attribute => SymbolEqualityComparer.Default.Equals(attribute.AttributeClass, _htmlTargetElementAttributeSymbol));
|
||||||
|
|
||||||
// If there isn't an attribute specifying the tag name derive it from the name
|
// If there isn't an attribute specifying the tag name derive it from the name
|
||||||
if (!targetElementAttributes.Any())
|
if (!targetElementAttributes.Any())
|
||||||
|
|
@ -139,7 +139,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
|
|
||||||
private void AddAllowedChildren(INamedTypeSymbol type, TagHelperDescriptorBuilder builder)
|
private void AddAllowedChildren(INamedTypeSymbol type, TagHelperDescriptorBuilder builder)
|
||||||
{
|
{
|
||||||
var restrictChildrenAttribute = type.GetAttributes().Where(a => Equals(a.AttributeClass, _restrictChildrenAttributeSymbol)).FirstOrDefault();
|
var restrictChildrenAttribute = type.GetAttributes().Where(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, _restrictChildrenAttributeSymbol)).FirstOrDefault();
|
||||||
if (restrictChildrenAttribute == null)
|
if (restrictChildrenAttribute == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
@ -174,7 +174,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
private void AddTagOutputHint(INamedTypeSymbol type, TagHelperDescriptorBuilder builder)
|
private void AddTagOutputHint(INamedTypeSymbol type, TagHelperDescriptorBuilder builder)
|
||||||
{
|
{
|
||||||
string outputElementHint = null;
|
string outputElementHint = null;
|
||||||
var outputElementHintAttribute = type.GetAttributes().Where(a => Equals(a.AttributeClass, _outputElementHintAttributeSymbol)).FirstOrDefault();
|
var outputElementHintAttribute = type.GetAttributes().Where(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, _outputElementHintAttributeSymbol)).FirstOrDefault();
|
||||||
if (outputElementHintAttribute != null)
|
if (outputElementHintAttribute != null)
|
||||||
{
|
{
|
||||||
outputElementHint = (string)(outputElementHintAttribute.ConstructorArguments[0]).Value;
|
outputElementHint = (string)(outputElementHintAttribute.ConstructorArguments[0]).Value;
|
||||||
|
|
@ -189,7 +189,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
{
|
{
|
||||||
var attributeNameAttribute = property
|
var attributeNameAttribute = property
|
||||||
.GetAttributes()
|
.GetAttributes()
|
||||||
.Where(a => Equals(a.AttributeClass, _htmlAttributeNameAttributeSymbol))
|
.Where(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, _htmlAttributeNameAttributeSymbol))
|
||||||
.FirstOrDefault();
|
.FirstOrDefault();
|
||||||
|
|
||||||
bool hasExplicitName;
|
bool hasExplicitName;
|
||||||
|
|
@ -310,13 +310,13 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
private IReadOnlyList<ITypeSymbol> GetDictionaryArgumentTypes(IPropertySymbol property)
|
private IReadOnlyList<ITypeSymbol> GetDictionaryArgumentTypes(IPropertySymbol property)
|
||||||
{
|
{
|
||||||
INamedTypeSymbol dictionaryType;
|
INamedTypeSymbol dictionaryType;
|
||||||
if (Equals((property.Type as INamedTypeSymbol)?.ConstructedFrom, _iDictionarySymbol))
|
if (SymbolEqualityComparer.Default.Equals((property.Type as INamedTypeSymbol)?.ConstructedFrom, _iDictionarySymbol))
|
||||||
{
|
{
|
||||||
dictionaryType = (INamedTypeSymbol)property.Type;
|
dictionaryType = (INamedTypeSymbol)property.Type;
|
||||||
}
|
}
|
||||||
else if (property.Type.AllInterfaces.Any(s => Equals(s.ConstructedFrom, _iDictionarySymbol)))
|
else if (property.Type.AllInterfaces.Any(s => SymbolEqualityComparer.Default.Equals(s.ConstructedFrom, _iDictionarySymbol)))
|
||||||
{
|
{
|
||||||
dictionaryType = property.Type.AllInterfaces.First(s => Equals(s.ConstructedFrom, _iDictionarySymbol));
|
dictionaryType = property.Type.AllInterfaces.First(s => SymbolEqualityComparer.Default.Equals(s.ConstructedFrom, _iDictionarySymbol));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -380,7 +380,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
private bool IsPotentialDictionaryProperty(IPropertySymbol property)
|
private bool IsPotentialDictionaryProperty(IPropertySymbol property)
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
(Equals((property.Type as INamedTypeSymbol)?.ConstructedFrom, _iDictionarySymbol) || property.Type.AllInterfaces.Any(s => Equals(s.ConstructedFrom, _iDictionarySymbol))) &&
|
(SymbolEqualityComparer.Default.Equals((property.Type as INamedTypeSymbol)?.ConstructedFrom, _iDictionarySymbol) || property.Type.AllInterfaces.Any(s => SymbolEqualityComparer.Default.Equals(s.ConstructedFrom, _iDictionarySymbol))) &&
|
||||||
GetDictionaryArgumentTypes(property)?[0].SpecialType == SpecialType.System_String;
|
GetDictionaryArgumentTypes(property)?[0].SpecialType == SpecialType.System_String;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -397,8 +397,8 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
property.Parameters.Length == 0 &&
|
property.Parameters.Length == 0 &&
|
||||||
property.GetMethod != null &&
|
property.GetMethod != null &&
|
||||||
property.GetMethod.DeclaredAccessibility == Accessibility.Public &&
|
property.GetMethod.DeclaredAccessibility == Accessibility.Public &&
|
||||||
property.GetAttributes().Where(a => Equals(a.AttributeClass, _htmlAttributeNotBoundAttributeSymbol)).FirstOrDefault() == null &&
|
property.GetAttributes().Where(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, _htmlAttributeNotBoundAttributeSymbol)).FirstOrDefault() == null &&
|
||||||
(property.GetAttributes().Any(a => Equals(a.AttributeClass, _htmlAttributeNameAttributeSymbol)) ||
|
(property.GetAttributes().Any(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, _htmlAttributeNameAttributeSymbol)) ||
|
||||||
property.SetMethod != null && property.SetMethod.DeclaredAccessibility == Accessibility.Public ||
|
property.SetMethod != null && property.SetMethod.DeclaredAccessibility == Accessibility.Public ||
|
||||||
IsPotentialDictionaryProperty(property)) &&
|
IsPotentialDictionaryProperty(property)) &&
|
||||||
!accessibleProperties.ContainsKey(property.Name))
|
!accessibleProperties.ContainsKey(property.Name))
|
||||||
|
|
@ -418,7 +418,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
{
|
{
|
||||||
if (ExcludeHidden)
|
if (ExcludeHidden)
|
||||||
{
|
{
|
||||||
var editorBrowsableAttribute = symbol.GetAttributes().Where(a => Equals(a.AttributeClass, _editorBrowsableAttributeSymbol)).FirstOrDefault();
|
var editorBrowsableAttribute = symbol.GetAttributes().Where(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, _editorBrowsableAttributeSymbol)).FirstOrDefault();
|
||||||
|
|
||||||
if (editorBrowsableAttribute == null)
|
if (editorBrowsableAttribute == null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
{
|
{
|
||||||
var attribute = attributes[j];
|
var attribute = attributes[j];
|
||||||
|
|
||||||
if (Equals(attribute.AttributeClass, eventHandlerAttribute))
|
if (SymbolEqualityComparer.Default.Equals(attribute.AttributeClass, eventHandlerAttribute))
|
||||||
{
|
{
|
||||||
var enablePreventDefault = false;
|
var enablePreventDefault = false;
|
||||||
var enableStopPropagation = false;
|
var enableStopPropagation = false;
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue