-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Update remaining code to use new diagnostics #606
Conversation
raise GuppyError("Could not find a caller for the `@guppy` decorator") | ||
raise RuntimeError("Could not find a caller for the `@guppy` decorator") |
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.
Guppy errors are now reserved for things that go wrong during compilation. This error is thrown immediately when the user calls the decorator, so we shouldn't use GuppyError
Same for other errors in this file
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## feat/diagnostics #606 +/- ##
====================================================
+ Coverage 92.26% 92.51% +0.25%
====================================================
Files 66 66
Lines 7462 7286 -176
====================================================
- Hits 6885 6741 -144
+ Misses 577 545 -32 ☔ View full report in Codecov by Sentry. |
guppylang/decorator.py
Outdated
@@ -310,11 +310,6 @@ def custom( | |||
|
|||
def dec(f: PyFunc) -> RawCustomFunctionDef: | |||
func_ast, docstring = parse_py_func(f, self._sources) | |||
if not has_empty_body(func_ast): |
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.
What's going on here?
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.
I moved this check to RawCustomFunctionDef.check
since it doesn't really belong into the decorator imo
things: str | ||
|
||
@dataclass(frozen=True) | ||
class Suggestion(Help): |
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.
Is this error ever going to be created without adding this Help?
raise GuppyError( | ||
f"Builtin method `{self.func.name}` is not supported by Guppy", self.node | ||
) | ||
err = UnsupportedError(self.node, f"Builtin method `{self.func.name}`") |
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.
I think this should be singular=True
raise GuppyError( | ||
f"Builtin method `{self.func.name}` is not supported by Guppy", self.node | ||
) | ||
err = UnsupportedError(self.node, f"Builtin method `{self.func.name}`") |
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.
I think this should be singular=True
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.
New errors are looking very nice!
I'm seeing a lot of a pattern where an error declares a subdiagnostic as a nested class, which is added by the caller. Can we not define classes with default subdiagnostics?
I like the idea 👍 I created issue #620 to implement this |
🤖 I have created a release *beep* *boop* --- ## [0.13.0](v0.12.2...v0.13.0) (2024-11-12) ### ⚠ BREAKING CHANGES * `prelude` module renamed to `std` ### Features * add `qubit` discard/measure methods ([#580](#580)) ([242fa44](242fa44)) * Add `SizedIter` wrapper type ([#611](#611)) ([2e9da6b](2e9da6b)) * conventional results post processing ([#593](#593)) ([db96224](db96224)) * Improve compiler diagnostics ([#547](#547)) ([90d465d](90d465d)), closes [#551](#551) [#553](#553) [#586](#586) [#588](#588) [#587](#587) [#590](#590) [#600](#600) [#601](#601) [#606](#606) * restrict result tag sizes to 256 bytes ([#596](#596)) ([4e8e00f](4e8e00f)), closes [#595](#595) ### Bug Fixes * Mock guppy decorator during sphinx builds ([#622](#622)) ([1cccc04](1cccc04)) ### Documentation * Add DEVELOPMENT.md ([#584](#584)) ([1d29d39](1d29d39)) * Fix docs build ([#639](#639)) ([bd6011c](bd6011c)) ### Miscellaneous Chores * Manually set last release commit ([#643](#643)) ([b2d569b](b2d569b)) ### Code Refactoring * rename prelude to std ([#642](#642)) ([1a68e8e](1a68e8e)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: Agustín Borgna <agustin.borgna@quantinuum.com>
No description provided.