diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeBuilder.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeBuilder.cs index dc2aa52d1a..7d6dd4e613 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeBuilder.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeBuilder.cs @@ -43,8 +43,6 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp // Separate the usings and the class writer.WriteLine(); - new CSharpClassAttributeVisitor(writer, Context).Accept(Tree.Chunks); - using (BuildClassDeclaration(writer)) { if (Host.DesignTimeMode) diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpClassAttributeVisitor.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpClassAttributeVisitor.cs deleted file mode 100644 index 9d375d68eb..0000000000 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpClassAttributeVisitor.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using Microsoft.AspNet.Razor.Parser; - -namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp -{ - public class CSharpClassAttributeVisitor : CodeVisitor - { - public CSharpClassAttributeVisitor(CSharpCodeWriter writer, CodeBuilderContext context) - : base(writer, context) - { } - - protected override void Visit(SessionStateChunk chunk) - { - Writer.Write("[") - .Write(typeof(RazorDirectiveAttribute).FullName) - .Write("(") - .WriteStringLiteral(SyntaxConstants.CSharp.SessionStateKeyword) - .WriteParameterSeparator() - .WriteStringLiteral(chunk.Value) - .WriteLine(")]"); - } - } -} diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/ChunkVisitor.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/ChunkVisitor.cs index 7352a21a1d..9a901d41e0 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/ChunkVisitor.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/ChunkVisitor.cs @@ -113,10 +113,6 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler { Visit((ChunkBlock)chunk); } - else if (chunk is SessionStateChunk) - { - Visit((SessionStateChunk)chunk); - } } protected abstract void Visit(LiteralChunk chunk); @@ -138,6 +134,5 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler protected abstract void Visit(TemplateChunk chunk); protected abstract void Visit(SetLayoutChunk chunk); protected abstract void Visit(ExpressionBlockChunk chunk); - protected abstract void Visit(SessionStateChunk chunk); } } diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CodeVisitor.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CodeVisitor.cs index 1b2a608884..955e4069c6 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CodeVisitor.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CodeVisitor.cs @@ -66,8 +66,5 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler protected override void Visit(SetLayoutChunk chunk) { } - protected override void Visit(SessionStateChunk chunk) - { - } } } diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeTree/Chunks/SessionStateChunk.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeTree/Chunks/SessionStateChunk.cs deleted file mode 100644 index 42c84b5c43..0000000000 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeTree/Chunks/SessionStateChunk.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -namespace Microsoft.AspNet.Razor.Generator.Compiler -{ - public class SessionStateChunk : Chunk - { - public string Value { get; set; } - } -} diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeTree/CodeTreeBuilder.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeTree/CodeTreeBuilder.cs index 5ac2422251..35a854a00a 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeTree/CodeTreeBuilder.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeTree/CodeTreeBuilder.cs @@ -145,14 +145,6 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler }, association, topLevel: true); } - public void AddSessionStateChunk(string value, SyntaxTreeNode association) - { - AddChunk(new SessionStateChunk - { - Value = value - }, association, topLevel: true); - } - public T StartChunkBlock(SyntaxTreeNode association) where T : ChunkBlock, new() { return StartChunkBlock(association, topLevel: false); diff --git a/src/Microsoft.AspNet.Razor/Generator/RazorDirectiveAttributeCodeGenerator.cs b/src/Microsoft.AspNet.Razor/Generator/RazorDirectiveAttributeCodeGenerator.cs deleted file mode 100644 index 177a91e303..0000000000 --- a/src/Microsoft.AspNet.Razor/Generator/RazorDirectiveAttributeCodeGenerator.cs +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using Microsoft.AspNet.Razor.Parser; -using Microsoft.AspNet.Razor.Parser.SyntaxTree; - -namespace Microsoft.AspNet.Razor.Generator -{ - public class RazorDirectiveAttributeCodeGenerator : SpanCodeGenerator - { - public RazorDirectiveAttributeCodeGenerator(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentException(CommonResources.Argument_Cannot_Be_Null_Or_Empty, "name"); - } - Name = name; - Value = value ?? String.Empty; // Coerce to empty string if it was null. - } - - public string Name { get; private set; } - - public string Value { get; private set; } - - public override void GenerateCode(Span target, CodeGeneratorContext context) - { - if (Name == SyntaxConstants.CSharp.SessionStateKeyword) - { - context.CodeTreeBuilder.AddSessionStateChunk(Value, target); - } - } - - public override string ToString() - { - return "Directive: " + Name + ", Value: " + Value; - } - - public override bool Equals(object obj) - { - var other = obj as RazorDirectiveAttributeCodeGenerator; - return other != null && - Name.Equals(other.Name, StringComparison.OrdinalIgnoreCase) && - Value.Equals(other.Value, StringComparison.OrdinalIgnoreCase); - } - - public override int GetHashCode() - { - return Tuple.Create(Name.ToUpperInvariant(), Value.ToUpperInvariant()) - .GetHashCode(); - } - } -} diff --git a/src/Microsoft.AspNet.Razor/Parser/CSharpCodeParser.Directives.cs b/src/Microsoft.AspNet.Razor/Parser/CSharpCodeParser.Directives.cs index 501d9d662a..8ba70aee02 100644 --- a/src/Microsoft.AspNet.Razor/Parser/CSharpCodeParser.Directives.cs +++ b/src/Microsoft.AspNet.Razor/Parser/CSharpCodeParser.Directives.cs @@ -25,7 +25,6 @@ namespace Microsoft.AspNet.Razor.Parser MapDirectives(SectionDirective, SyntaxConstants.CSharp.SectionKeyword); MapDirectives(HelperDirective, SyntaxConstants.CSharp.HelperKeyword); MapDirectives(LayoutDirective, SyntaxConstants.CSharp.LayoutKeyword); - MapDirectives(SessionStateDirective, SyntaxConstants.CSharp.SessionStateKeyword); } protected virtual void AddTagHelperDirective() @@ -58,65 +57,6 @@ namespace Microsoft.AspNet.Razor.Parser Output(SpanKind.MetaCode, foundNewline ? AcceptedCharacters.None : AcceptedCharacters.Any); } - protected virtual void SessionStateDirective() - { - AssertDirective(SyntaxConstants.CSharp.SessionStateKeyword); - AcceptAndMoveNext(); - - SessionStateDirectiveCore(); - } - - protected void SessionStateDirectiveCore() - { - SessionStateTypeDirective(RazorResources.ParserEror_SessionDirectiveMissingValue, (key, value) => new RazorDirectiveAttributeCodeGenerator(key, value)); - } - - protected void SessionStateTypeDirective(string noValueError, Func createCodeGenerator) - { - // Set the block type - Context.CurrentBlock.Type = BlockType.Directive; - - // Accept whitespace - var remainingWs = AcceptSingleWhiteSpaceCharacter(); - - if (Span.Symbols.Count > 1) - { - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None; - } - - Output(SpanKind.MetaCode); - - if (remainingWs != null) - { - Accept(remainingWs); - } - AcceptWhile(IsSpacingToken(includeNewLines: false, includeComments: true)); - - // Parse a Type Name - if (!ValidSessionStateValue()) - { - Context.OnError(CurrentLocation, noValueError); - } - - // Pull out the type name - var sessionStateValue = String.Concat( - Span.Symbols - .Cast() - .Select(sym => sym.Content)).Trim(); - - // Set up code generation - Span.CodeGenerator = createCodeGenerator(SyntaxConstants.CSharp.SessionStateKeyword, sessionStateValue); - - // Output the span and finish the block - CompleteBlock(); - Output(SpanKind.Code); - } - - protected virtual bool ValidSessionStateValue() - { - return Optional(CSharpSymbolType.Identifier); - } - [SuppressMessage("Microsoft.Maintainability", "CA1506:AvoidExcessiveClassCoupling", Justification = "Coupling will be reviewed at a later date")] [SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Justification = "C# Keywords are always lower-case")] protected virtual void HelperDirective() diff --git a/src/Microsoft.AspNet.Razor/Parser/CSharpCodeParser.cs b/src/Microsoft.AspNet.Razor/Parser/CSharpCodeParser.cs index b1394b47b7..6906293549 100644 --- a/src/Microsoft.AspNet.Razor/Parser/CSharpCodeParser.cs +++ b/src/Microsoft.AspNet.Razor/Parser/CSharpCodeParser.cs @@ -37,7 +37,6 @@ namespace Microsoft.AspNet.Razor.Parser "namespace", "class", "layout", - "sessionstate" }; private Dictionary _directiveParsers = new Dictionary(); diff --git a/src/Microsoft.AspNet.Razor/Parser/SyntaxConstants.cs b/src/Microsoft.AspNet.Razor/Parser/SyntaxConstants.cs index 2160cd1090..f0cfc808ec 100644 --- a/src/Microsoft.AspNet.Razor/Parser/SyntaxConstants.cs +++ b/src/Microsoft.AspNet.Razor/Parser/SyntaxConstants.cs @@ -28,7 +28,6 @@ namespace Microsoft.AspNet.Razor.Parser public static readonly string NamespaceKeyword = "namespace"; public static readonly string ClassKeyword = "class"; public static readonly string LayoutKeyword = "layout"; - public static readonly string SessionStateKeyword = "sessionstate"; } } } diff --git a/test/Microsoft.AspNet.Razor.Test/Framework/TestSpanBuilder.cs b/test/Microsoft.AspNet.Razor.Test/Framework/TestSpanBuilder.cs index 081a9a518c..6cb98fc075 100644 --- a/test/Microsoft.AspNet.Razor.Test/Framework/TestSpanBuilder.cs +++ b/test/Microsoft.AspNet.Razor.Test/Framework/TestSpanBuilder.cs @@ -300,11 +300,6 @@ namespace Microsoft.AspNet.Razor.Test.Framework return _self.With(new SetBaseTypeCodeGenerator(baseType)); } - public SpanConstructor AsRazorDirectiveAttribute(string key, string value) - { - return _self.With(new RazorDirectiveAttributeCodeGenerator(key, value)); - } - public SpanConstructor AsAddTagHelper(string lookupText) { return _self.With( diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpDirectivesTest.cs b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpDirectivesTest.cs index 5e79d22274..fe3b537915 100644 --- a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpDirectivesTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpDirectivesTest.cs @@ -247,32 +247,6 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp .AsBaseType("$rootnamespace$.MyBase"))); } - [Fact] - public void SessionStateDirectiveWorks() - { - ParseBlockTest("@sessionstate InProc", - new DirectiveBlock( - Factory.CodeTransition(), - Factory.MetaCode(SyntaxConstants.CSharp.SessionStateKeyword + " ") - .Accepts(AcceptedCharacters.None), - Factory.Code("InProc") - .AsRazorDirectiveAttribute("sessionstate", "InProc") - )); - } - - [Fact] - public void SessionStateDirectiveParsesInvalidSessionValue() - { - ParseBlockTest("@sessionstate Blah", - new DirectiveBlock( - Factory.CodeTransition(), - Factory.MetaCode(SyntaxConstants.CSharp.SessionStateKeyword + " ") - .Accepts(AcceptedCharacters.None), - Factory.Code("Blah") - .AsRazorDirectiveAttribute("sessionstate", "Blah") - )); - } - [Fact] public void FunctionsDirective() {