In the atomic frontend, parallel and serial blocks currently reject any Declaration statement, even when the declared value is a valid Pulse. The blocks only accept nested parallel and serial blocks or Pulse statements. Example:
beam_mw = beam(...)
parallel {
p0 = pulse(beam_mw, 5e-6, r[0])
p0
}
The type checker raises a type error on line 3 of this code, since the parallel block contains a Declaration. This is a design choice, and this rule can be relaxed to allow Pulse declarations in the future.
In the atomic frontend,
parallelandserialblocks currently reject anyDeclarationstatement, even when the declared value is a validPulse. The blocks only accept nestedparallelandserialblocks orPulsestatements. Example:The type checker raises a type error on line 3 of this code, since the
parallelblock contains aDeclaration. This is a design choice, and this rule can be relaxed to allowPulsedeclarations in the future.