NVIDIA/cuda-quantum

Returning `None` is not supported kernel functions

annagrin opened this issue · 2 comments

Required prerequisites

  • Consult the security policy. If reporting a security vulnerability, do not report the bug using this form. Use the process described in the policy to report the issue.
  • Make sure you've read the documentation. Your issue may be addressed there.
  • Search the issue tracker to verify that this hasn't already been reported. +1 or comment there if it has.
  • If possible, make a PR with a failing test to give us a starting point to work on!

Describe the bug

Does not work

import cudaq
import numpy as np

@cudaq.kernel
def test_k() -> complex:
    return None

print(test_k()) # cudaq.kernel.ast_bridge.CompilerError: program.py:14: error: unhandled constant value (offending source -> None)

#Works

def test() -> complex:
    return None

print(test())

Steps to reproduce the bug

import cudaq
import numpy as np

@cudaq.kernel
def test_k() -> complex:
    return None

print(test_k())

Expected behavior

None is printed

Is this a regression? If it is, put the last known working version (or commit) here.

Not a regression

Environment

  • CUDA Quantum version:
  • Python version:
  • C++ compiler:
  • Operating system:

Suggestions

No response

Do we expect this to generate something or should the bridge give a syntax error?

We need a spec for what valid return values are in Python after the 0.7.0 update.