The value semantics of Qubits in the Quantum dialect enforeces the Linear Types. The missing piece is that qubits must be "consumed" by a quantum.deallocate(). On a side note, after a measurement the only Quantum operation that is allowed on the resulting qubit must be a quantum.deallocate().