Skip to content
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

Error when treating 0 and 1 as booleans #681

Closed
CalMacCQ opened this issue Dec 2, 2024 · 0 comments · Fixed by #709 or #655
Closed

Error when treating 0 and 1 as booleans #681

CalMacCQ opened this issue Dec 2, 2024 · 0 comments · Fixed by #709 or #655
Assignees
Labels
bug Something isn't working

Comments

@CalMacCQ
Copy link

CalMacCQ commented Dec 2, 2024

Not certain whether this is a bug or intended behaviour but I get a compiler error when treating the integers 0 and 1 as booleans.

Example

from guppylang import guppy
from guppylang.std.builtins import py
from guppylang.std.quantum import qubit, x

one = 1

@guppy
def main(q0: qubit) -> None:
    if py(one):
       x(q0) 

Compiling this gives

Error: Too many arguments (at <In [7]>:10:7)
   | 
 8 | @guppy
 9 | def main(q0: qubit) -> None:
10 |     if py(one):
   |        ^^^^^^^ Expected 1, got 2

Note: Function signature is `int -> bool`

I prefer to not use 0 and 1 for booleans personally but just raising in case its a bug.

If its intended behaviour feel free to close.

@CalMacCQ CalMacCQ changed the title The integer 1 seems not to be truthy Error when treating 0 and 1 as booleans Dec 2, 2024
@mark-koch mark-koch self-assigned this Dec 3, 2024
@ss2165 ss2165 assigned tatiana-s and unassigned mark-koch Dec 4, 2024
@CalMacCQ CalMacCQ added the bug Something isn't working label Dec 4, 2024
@mark-koch mark-koch added this to the guppylang 0.14.0 milestone Dec 9, 2024
github-merge-queue bot pushed a commit that referenced this issue Dec 11, 2024
github-merge-queue bot pushed a commit that referenced this issue Dec 19, 2024
🤖 I have created a release *beep* *boop*
---


## [0.14.0](v0.13.1...v0.14.0)
(2024-12-19)


### ⚠ BREAKING CHANGES

* Lists in `py(...)` expressions are now turned into Guppy arrays
instead of lists.
* `dirty_qubit` function removed
* measure_return renamed to `project_z`

### Features

* add `maybe_qubit` stdlib function
([#705](#705))
([a49f70e](a49f70e)),
closes [#627](#627)
* add measure_array and discard_array quantum function
([#710](#710))
([3ad49ff](3ad49ff))
* Add method to load pytket circuit without function stub
([#712](#712))
([ee1e3de](ee1e3de))
* Add Option type to standard library
([#696](#696))
([45ea6b7](45ea6b7))
* Allow generic nat args in statically sized ranges
([#706](#706))
([f441bb8](f441bb8)),
closes [#663](#663)
* Array comprehension
([#613](#613))
([fdc0526](fdc0526)),
closes [#614](#614)
[#616](#616)
[#612](#612)
* Implicit coercion of numeric types
([#702](#702))
([df4745b](df4745b)),
closes [#701](#701)
* Load `pytket` circuit as a function definition
([#672](#672))
([b21b7e1](b21b7e1))
* Make arrays iterable
([#632](#632))
([07b9871](07b9871))
* qsystem std functions with updated primitives
([#679](#679))
([b0f041f](b0f041f))
* remove dirty_qubit
([#698](#698))
([78e366b](78e366b))
* Turn py expression lists into arrays
([#697](#697))
([d52a00a](d52a00a))
* Unpacking assignment of iterable types with static size
([#688](#688))
([602e243](602e243))
* update to hugr 0.10 and tket2 0.6
([#725](#725))
([63ea7a7](63ea7a7))


### Bug Fixes

* Accept non-negative int literals and py expressions as nats
([#708](#708))
([a93d4fe](a93d4fe)),
closes [#704](#704)
* Allow borrowing inside comprehensions
([#723](#723))
([02b6ab0](02b6ab0)),
closes [#719](#719)
* Detect unsupported default arguments
([#659](#659))
([94ac7e3](94ac7e3)),
closes [#658](#658)
* docs build command
([#729](#729))
([471b74c](471b74c))
* Ensure `int`s can be treated as booleans
([#709](#709))
([6ef6d60](6ef6d60)),
closes [#681](#681)
* Fix array execution bugs
([#731](#731))
([0f6ceaa](0f6ceaa))
* Fix implicit modules in IPython shells
([#662](#662))
([4ecb5f2](4ecb5f2)),
closes [#661](#661)
* Properly report error for unsupported constants
([#724](#724))
([d0c2da4](d0c2da4)),
closes [#721](#721)
* Properly report errors for unsupported expressions
([#692](#692))
([7f24264](7f24264)),
closes [#691](#691)
* remove use of deprecated Ellipsis
([#699](#699))
([b819a84](b819a84))


### Documentation

* Fix docs build ([#700](#700))
([684f485](684f485)),
closes [#680](#680)
* fix README.md and quickstart.md
([#654](#654))
([abb0221](abb0221))

---
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: Seyon Sivarajah <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
3 participants