This repository was archived by the owner on Jan 12, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 174
Don't execute rewrite steps if the validation fails #473
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cesarzc
approved these changes
Jun 22, 2020
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me
ScottCarda-MS
approved these changes
Jun 22, 2020
ricardo-espinoza
added a commit
that referenced
this pull request
Jun 29, 2020
* Use invariant culture for string conversions in tests (#470) * Prevent result equality comparisons for QPRGen0 runtime capabilities (#449) * Prevent result equality with QPRGen0 * Move more fields from SymbolTracker to ResolutionContext * Undo some changes to TypeChecking.cs * Move ResolutionContext up a bit * Better error message * Add basic tests * Add more tests (but not working right now...) * Fix tests * Add tests for not equals * Use static member for Create * Move ResolutionContext to SymbolTracker.fs * Update doc comment to ArgumentException Co-authored-by: bettinaheim <34236215+bettinaheim@users.noreply.github.com> * Replace failwith with ArgumentException * Mention SymbolTracker versioning in ResolutionContext * Restore supportsEqualityComparison and use VerifyIsOneOf * Undo changes to VerificationTools.fs * Rename ResolutionContext to ScopeContext * Include execution target in error message * Make ScopeContext.ExecutionTarget non-nullable * Update error message Co-authored-by: bettinaheim <34236215+bettinaheim@users.noreply.github.com> * Fix possible null reference in CompilationLoader (#481) * Revising the plugin mechanism for compiler steps (#472) * Classically Controlled Short Circuit Bug Fix (#478) Reordered the steps of the classically controlled rewrite to have the if-statement restructuring done first. * Don't execute rewrite steps if the validation fails (#473) * Use Uri.LocalPath instead of Uri.AbsolutePath for file IDs (#468) * Use Uri.LocalPath instead of Uri.AbsolutePath * Fix attribute reader test * Update packages to fix tests * Add GetFileId and deprecate TryGetFileId * Re-add null URI check Co-authored-by: bettinaheim <34236215+bettinaheim@users.noreply.github.com> * Use OnCompilation in transformations. (#484) * Fix to reserve symbol in set statement crash (#486) * Add NoOp to Precondition Dependencies for Classically Controlled (#489) Added NoOp to precondition dependency list for classical control. * NoOp Removed from Dependency List (#490) Removed NoOp to precondition dependency list for classical control. Co-authored-by: Sarah Marshall <33814365+samarsha@users.noreply.github.com> Co-authored-by: bettinaheim <34236215+bettinaheim@users.noreply.github.com> Co-authored-by: Ryan Shaffer <ryan.shaffer@microsoft.com> Co-authored-by: Scott Carda <55811729+ScottCarda-MS@users.noreply.github.com> Co-authored-by: César Zaragoza Cortés <cesar.zaragoza@outlook.com>
ricardo-espinoza
added a commit
that referenced
this pull request
Jul 7, 2020
* Use invariant culture for string conversions in tests (#470) * Prevent result equality comparisons for QPRGen0 runtime capabilities (#449) * Prevent result equality with QPRGen0 * Move more fields from SymbolTracker to ResolutionContext * Undo some changes to TypeChecking.cs * Move ResolutionContext up a bit * Better error message * Add basic tests * Add more tests (but not working right now...) * Fix tests * Add tests for not equals * Use static member for Create * Move ResolutionContext to SymbolTracker.fs * Update doc comment to ArgumentException Co-authored-by: bettinaheim <34236215+bettinaheim@users.noreply.github.com> * Replace failwith with ArgumentException * Mention SymbolTracker versioning in ResolutionContext * Restore supportsEqualityComparison and use VerifyIsOneOf * Undo changes to VerificationTools.fs * Rename ResolutionContext to ScopeContext * Include execution target in error message * Make ScopeContext.ExecutionTarget non-nullable * Update error message Co-authored-by: bettinaheim <34236215+bettinaheim@users.noreply.github.com> * Fix possible null reference in CompilationLoader (#481) * Revising the plugin mechanism for compiler steps (#472) * Classically Controlled Short Circuit Bug Fix (#478) Reordered the steps of the classically controlled rewrite to have the if-statement restructuring done first. * Don't execute rewrite steps if the validation fails (#473) * Use Uri.LocalPath instead of Uri.AbsolutePath for file IDs (#468) * Use Uri.LocalPath instead of Uri.AbsolutePath * Fix attribute reader test * Update packages to fix tests * Add GetFileId and deprecate TryGetFileId * Re-add null URI check Co-authored-by: bettinaheim <34236215+bettinaheim@users.noreply.github.com> * Use OnCompilation in transformations. (#484) * Fix to reserve symbol in set statement crash (#486) * Add NoOp to Precondition Dependencies for Classically Controlled (#489) Added NoOp to precondition dependency list for classical control. * NoOp Removed from Dependency List (#490) Removed NoOp to precondition dependency list for classical control. * Language Server SEMVER (#497) * Bump Markdig version. (#502) * Add SemVer 2.0 data as AssemblyInformationalVersion (#501) * Add informational version to --version. * Fix `s. * Apply suggestions from code review * Update build/build.ps1 Co-authored-by: Ryan Shaffer <ryan.shaffer@microsoft.com> * Apply suggestions from code review Co-authored-by: Ryan Shaffer <ryan.shaffer@microsoft.com> * Fixed test.ps1. Co-authored-by: Ryan Shaffer <ryan.shaffer@microsoft.com> * Use correct versions for both VS and VSCode VSIX (#500) * Use Semver.Version for VS VSIX filename * Set Semver.Version in CI * Use SEMVER_VERSION env variable in .csproj * Undo unneeded changes * Add SemverVersion property to .csproj * Use #SEMVER_VERSION# for .csproj * Improve filter * Use task.setvariable * Update VSIX_VERSION correctly * Separate VSIX version for VS and VSCode extensions * Use SEMVER_VERSION directly for VSCode vsix * Distinguishing the processor architecture and the execution target (#503) * upgraded Roslyn to 3.6.0 (#499) Co-authored-by: bettinaheim <34236215+bettinaheim@users.noreply.github.com> * removing unnecessary package references (#505) Co-authored-by: Bettina Heim <beheim@microsoft.com> * Fix errors with exception handling during compilation and tests (#492) * Fix error handling in compilation loader/manager * Show original exceptions in tests * NoOp Reference Change (#494) Added NoOp to precondition verification for ClassicallyControlled. * Compile-time errors for Q# programs not supported by QPRGen1 runtime capabilities (#488) * Verify that result comparisons are in if condition * Add test cases for elif/else Result comparisons * Gen 1 result ifs can only be in operations * Un-skip QPRGen1 tests * Add new diagnostics * Messy, but most QPRGen1 tests passing * Fix diagnostic messages * Update diagnostic messages * Workaround to get diagnostics closer to the right place * Rename startOffset to rootPosition * Add test for return in nested scope * Replace FindStatements transformation with private function * Combine Offset and Range for return statements * Add QsStatement.RangeRelativeToRoot * Clean up verification * Use _ for discarded case value * Use QsStatement.ExtractAll * Use TypedExpression.Exists * Add new test cases, currently failing * Update mutable set verification * Update doc comment for TreeNode.GetRootPosition * Move verification functions to the top * Move else-block normalization to verify function * Use common base type in isResultComparison * Remove QsStatement.RangeRelativeToRoot * Add test for mutable set of tuple * Add SetReusedName test case to Unknown/Gen0 * Reformat new code in TryBuildIfStatement * Update diagnostic messages * Typo in doc comment * Remove QsNullable.ToOption * Formatting BoolLiteral * Don't use CommonBaseType * Add comment about no-derived-types assumption * Document assumptions and add tests for compound types * Remove struct tuple * Update references to ExecutionTarget * Move range conversion to CompilationManager * Fix conjugation diagnostic range Co-authored-by: Sarah Marshall <33814365+samarsha@users.noreply.github.com> Co-authored-by: bettinaheim <34236215+bettinaheim@users.noreply.github.com> Co-authored-by: Ryan Shaffer <ryan.shaffer@microsoft.com> Co-authored-by: Scott Carda <55811729+ScottCarda-MS@users.noreply.github.com> Co-authored-by: César Zaragoza Cortés <cesar.zaragoza@outlook.com> Co-authored-by: Andres Paz <anpaz@microsoft.com> Co-authored-by: Chris Granade <chgranad@microsoft.com> Co-authored-by: Filip W <wojcieszyn@gmail.com> Co-authored-by: Bettina Heim <beheim@microsoft.com>
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
To avoid that rewrite steps have to have handling for invalid code, rewrite steps are supposed to be able to rely on that they obtain a valid syntax tree. We hence won't invoke any steps if the initial validation of the compilation fails.
This fixes the issue https://github.com/microsoft/qsharp-runtime/issues/242.