From 436c906a36fc7ff4f767d303cb5824995cd117d8 Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 31 Oct 2017 04:26:06 -0400 Subject: Revert "work in-progress, add parsing for assoc type decls and member type expressions" This reverts commit 84f381cc180b3176d6a58da4085ee8470f246922. --- source/slang/decl-defs.h | 5 ----- source/slang/parser.cpp | 38 +++--------------------------------- source/slang/syntax.cpp | 27 ------------------------- source/slang/type-defs.h | 23 ---------------------- tests/compute/assoctype-simple.slang | 34 -------------------------------- 5 files changed, 3 insertions(+), 124 deletions(-) delete mode 100644 tests/compute/assoctype-simple.slang diff --git a/source/slang/decl-defs.h b/source/slang/decl-defs.h index 4021f5a38..c96fe6d09 100644 --- a/source/slang/decl-defs.h +++ b/source/slang/decl-defs.h @@ -122,11 +122,6 @@ SYNTAX_CLASS(TypeDefDecl, SimpleTypeDecl) SYNTAX_FIELD(TypeExp, type) END_SYNTAX_CLASS() -// An 'assoctype' declaration -SYNTAX_CLASS(AssocTypeDecl, SimpleTypeDecl) - SYNTAX_FIELD(TypeExp, constraint) -END_SYNTAX_CLASS() - // A scope for local declarations (e.g., as part of a statement) SIMPLE_SYNTAX_CLASS(ScopeDecl, ContainerDecl) diff --git a/source/slang/parser.cpp b/source/slang/parser.cpp index 554eebc18..322f403e6 100644 --- a/source/slang/parser.cpp +++ b/source/slang/parser.cpp @@ -544,21 +544,6 @@ namespace Slang return typeDefDecl; } - RefPtr ParseAssocType(Parser * parser, void *) - { - RefPtr assocTypeDecl = new AssocTypeDecl(); - - auto nameToken = parser->ReadToken(TokenType::Identifier); - assocTypeDecl->nameAndLoc = NameLoc(nameToken); - assocTypeDecl->loc = nameToken.loc; - if (parser->LookAheadToken(TokenType::Colon)) - { - auto type = parser->ParseTypeExp(); - assocTypeDecl->constraint = type; - } - return assocTypeDecl; - } - // Add a modifier to a list of modifiers being built static void AddModifier(RefPtr** ioModifierLink, RefPtr modifier) { @@ -1411,16 +1396,6 @@ namespace Slang return genericApp; } - static RefPtr parseMemberType(Parser * parser, RefPtr base) - { - RefPtr memberExpr = new MemberExpr(); - parser->ReadToken(TokenType::Dot); - parser->FillPosition(memberExpr.Ptr()); - memberExpr->BaseExpression = base; - memberExpr->name = expectIdentifier(parser).name; - return memberExpr; - } - // Parse option `[]` braces after a type expression, that indicate an array type static RefPtr parsePostfixTypeSuffix( Parser* parser, @@ -1477,16 +1452,9 @@ namespace Slang RefPtr typeExpr = basicType; - while (parser->LookAheadToken(TokenType::OpLess) || parser->LookAheadToken(TokenType::Dot)) + if (parser->LookAheadToken(TokenType::OpLess)) { - if (parser->LookAheadToken(TokenType::OpLess)) - { - typeExpr = parseGenericApp(parser, typeExpr); - } - else - { - typeExpr = parseMemberType(parser, typeExpr); - } + typeExpr = parseGenericApp(parser, typeExpr); } // GLSL allows `[]` directly in a type specifier @@ -4061,8 +4029,8 @@ namespace Slang // Add syntax for declaration keywords #define DECL(KEYWORD, CALLBACK) \ addBuiltinSyntax(session, scope, #KEYWORD, &CALLBACK) + DECL(typedef, ParseTypeDef); - DECL(assoctype, ParseAssocType); DECL(cbuffer, parseHLSLCBufferDecl); DECL(tbuffer, parseHLSLTBufferDecl); DECL(__generic, ParseGenericDecl); diff --git a/source/slang/syntax.cpp b/source/slang/syntax.cpp index 165b2d132..6cf3fd7c9 100644 --- a/source/slang/syntax.cpp +++ b/source/slang/syntax.cpp @@ -940,33 +940,6 @@ void Type::accept(IValVisitor* visitor, void* extra) return this; } - // AssocTypeDeclRefType - - String AssocTypeDeclRefType::ToString() - { - // TODO: what is appropriate here? - return ""; - } - - bool AssocTypeDeclRefType::EqualsImpl(Type * type) - { - if (auto assocTypeDeclRefType = type->As()) - { - return declRef.Equals(assocTypeDeclRefType->declRef); - } - return false; - } - - int AssocTypeDeclRefType::GetHashCode() - { - return declRef.GetHashCode(); - } - - Type* AssocTypeDeclRefType::CreateCanonicalType() - { - return this; - } - // ArithmeticExpressionType // VectorExpressionType diff --git a/source/slang/type-defs.h b/source/slang/type-defs.h index 7648e0b87..2010d07b4 100644 --- a/source/slang/type-defs.h +++ b/source/slang/type-defs.h @@ -491,26 +491,3 @@ protected: virtual Type* CreateCanonicalType() override; ) END_SYNTAX_CLASS() - -// The "type" of an expression that references a asscoiated type decl (via 'assoctype' keyword). -SYNTAX_CLASS(AssocTypeDeclRefType, Type) - DECL_FIELD(DeclRef, declRef) - RAW( - AssocTypeDeclRefType() - {} - AssocTypeDeclRefType( - DeclRef declRef) - : declRef(declRef) - {} - - - DeclRef const& GetDeclRef() const { return declRef; } - - virtual String ToString() override; - - protected: - virtual bool EqualsImpl(Type * type) override; - virtual int GetHashCode() override; - virtual Type* CreateCanonicalType() override; - ) -END_SYNTAX_CLASS() \ No newline at end of file diff --git a/tests/compute/assoctype-simple.slang b/tests/compute/assoctype-simple.slang deleted file mode 100644 index 5a2c339a6..000000000 --- a/tests/compute/assoctype-simple.slang +++ /dev/null @@ -1,34 +0,0 @@ -//TEST(smoke,compute):COMPARE_COMPUTE:-xslang -use-ir -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out -// Confirm that generics syntax can be used in user -// code and generates valid output. - -RWStructuredBuffer outputBuffer; - -interface ISimple -{ - assoctype T; - T add(T v0, T v1); -} - -struct Simple : ISimple -{ - typedef float T; - T add(T v0, float v1) - { - return v0 + v1; - } -}; - -__generic -T.T test(T simple, T.T v0, T.T v1) -{ - return simple.add(v0, v1); -} - -[numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) -{ - float outVal = test(Simple(), 2.0, 1.0); // == 3.0 - outputBuffer[tid] = outVal; -} \ No newline at end of file -- cgit v1.2.3 From 8ba5d28be28fff7ac3a99a0046cac9fd9897d16e Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 31 Oct 2017 05:56:28 -0400 Subject: initiate rebuild --- tools/render-test/render-gl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/render-test/render-gl.cpp b/tools/render-test/render-gl.cpp index 9563ced96..a853a53a4 100644 --- a/tools/render-test/render-gl.cpp +++ b/tools/render-test/render-gl.cpp @@ -609,7 +609,7 @@ public: } return shaderID; - } + } virtual void dispatchCompute(int x, int y, int z) override { -- cgit v1.2.3