Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

[BUG] Unusual error when running direct recursion

Đang mở
#256 2 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
Nửa ngày
Mức phù hợp với người mới
45/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
python
Lĩnh vực
compilers

Hướng nghiên cứu

Start with the reproducer in the issue: a recursive def test(qubit[1] a, int b) that calls itself with a[0], which fails with "Expecting qubit argument for 'a'". The reporter points at Qasm3SubroutineProcessor.process_quantum_arg, so read how qubit arguments are resolved inside a subroutine's own scope. Done when the recursive program validates without error and the existing subroutine tests still pass.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug
Environment
  • PyQASM version: 0.3.2
  • Python version: 3.12.8
  • Operating system: Windows
What happened?
Issue

The OpenQASM standard allows direct recursion by making gate/subroutine identifiers available within their own scope.

However, pyqasm fails when handling recursive calls, producing an unexpected parameter type error.

Example
OPENQASM 3;
include "stdgates.inc";
qubit[5] qb;
bit[5] cb;
const float my_angle = .1;
def test(qubit[1] a,int b){
  p(my_angle) a[0];
  if(b > 0){
    test(a[0],b-1);
  }
}
test(qb[2],3);
'''
Observed Behavior

The recursive call throws the following error:

ERROR :pyqasm: Error at line 9, column 2 in QASM file

 >>>>>> test(a[0], b - 1)
ValidationError: Expecting qubit argument for 'a'. Qubit register 'a' not found for function 'test'
  • note that both test(a,b-1); and test(a[0],b-1); threw the same error when I was testing for semantic errors in my code
Expected Behavior

pyqasm should accept recursive calls in accordance with the OpenQASM standard, correctly resolving subroutine identifiers within their own scope.

Suggestions (Optional)

Id assume this is an error regarding scoping/aliasing within subroutine calls rather than a recursion issue, since error originates from: Qasm3SubroutineProcessor.process_quantum_arg(

Ngôn ngữ chính
Python
Star
29
Fork
33
Merge trung bình
2 ngày 4 giờ
Pull request đã merge (30 ngày)
15

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của qBraid/pyqasm

Tất cả issue của qBraid/pyqasm

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.