diff options
| author | Tim Foley <tfoleyNV@users.noreply.github.com> | 2018-02-02 08:49:04 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-02-02 08:49:04 -0800 |
| commit | 0360f81b9741ece65768a65731bd23455a3b7a96 (patch) | |
| tree | eab15cf6737cf091bf94d073e82c7b233f958e57 /source/slang/parser.cpp | |
| parent | b034398ab12d3cc3a5fc04174688cb707404791d (diff) | |
Remove support for the -no-checking flag (#392)
* Remove support for the -no-checking flag
Fixes #381
Fixes #383
Work on #382
- No longer expose flag through API (`SLANG_COMPILE_FLAG_NO_CHECKING`) and command-line (`-no-checking`) options
- Remove all logic in `check.cpp` that was withholding diagnostics (including errors) when the no-checking mode was enabled
- Remove `HiddenImplicitCastExpr`, which was only created to support no-checking mode (it represented an implicit cast that our checking through was needed, but couldn't emit because it might be wrong)
- Remove logic for storing function bodies as raw token lists when checking is turned off. I'm leaving in the `UnparsedStmt` AST node in case we ever need/want to lazily parse and check function bodies down the line.
- Remove a few of the code-generation paths we had to contend with, but keep the comment about them in place.
- Remove GLSL-based tests that can't meaningfully work with the new approach.
- Fix other tests that used a GLSL baseline so that their GLSL compiles with `-pass-through glslang` instead of invoking `slang` with the `-no-checking` flag.
- Remove tests that were explicitly added to test the "rewriter + IR" path, since that is no longer supported.
There is more cleanup that can be done here, now that we know that AST-based rewrite and IR will never co-exist, but it is probably easier to deal with that as part of removing the AST-based rewrite path.
We've lost some test coverage here, but actually not too much if we consider that we are dropping GLSL input anyway.
* Fixup: test runner was mis-counting ignored tests
* Fixup: turn on dumping on test failure under Travis
* Fixup: enable extensions in Linux build of glslang
Diffstat (limited to 'source/slang/parser.cpp')
| -rw-r--r-- | source/slang/parser.cpp | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/source/slang/parser.cpp b/source/slang/parser.cpp index 538e5d576..037268244 100644 --- a/source/slang/parser.cpp +++ b/source/slang/parser.cpp @@ -2974,53 +2974,6 @@ namespace Slang RefPtr<Stmt> Parser::parseBlockStatement() { - // If we are being asked not to check things *and* we haven't - // seen any `import` declarations yet, then we can safely assume - // that function bodies should be left as-is. - if( (translationUnit->compileFlags & SLANG_COMPILE_FLAG_NO_CHECKING) - && !haveSeenAnyImportDecls ) - { - // We have been asked to parse the input, but not attempt to understand it. - - // TODO: record start/end locations... - - List<Token> tokens; - - ReadToken(TokenType::LBrace); - - int depth = 1; - for( ;;) - { - switch( tokenReader.PeekTokenType() ) - { - case TokenType::EndOfFile: - goto done; - - case TokenType::RBrace: - depth--; - if(depth == 0) - goto done; - break; - - case TokenType::LBrace: - depth++; - break; - - default: - break; - } - - auto token = tokenReader.AdvanceToken(); - tokens.Add(token); - } - done: - ReadToken(TokenType::RBrace); - - RefPtr<UnparsedStmt> unparsedStmt = new UnparsedStmt(); - unparsedStmt->tokens = tokens; - return unparsedStmt; - } - RefPtr<ScopeDecl> scopeDecl = new ScopeDecl(); RefPtr<BlockStmt> blockStatement = new BlockStmt(); blockStatement->scopeDecl = scopeDecl; |
