diff --git a/src/Simulation/QsharpCore/Intrinsic.cs b/src/Simulation/QsharpCore/Intrinsic.cs
index 76976a0f217..f7bbd4d953b 100644
--- a/src/Simulation/QsharpCore/Intrinsic.cs
+++ b/src/Simulation/QsharpCore/Intrinsic.cs
@@ -76,4 +76,16 @@ public partial class M
return null;
}
}
+
+ public partial class ResetAll
+ {
+ ///
+ public override RuntimeMetadata? GetRuntimeMetadata(IApplyData args)
+ {
+ var metadata = base.GetRuntimeMetadata(args);
+ if (metadata == null) throw new NullReferenceException($"Null RuntimeMetadata found for {this.ToString()}.");
+ metadata.IsComposite = true;
+ return metadata;
+ }
+ }
}
diff --git a/src/Simulation/Simulators.Tests/RuntimeMetadataTests.cs b/src/Simulation/Simulators.Tests/RuntimeMetadataTests.cs
index d41b15764fa..a31849fe169 100644
--- a/src/Simulation/Simulators.Tests/RuntimeMetadataTests.cs
+++ b/src/Simulation/Simulators.Tests/RuntimeMetadataTests.cs
@@ -297,6 +297,28 @@ public void M()
Assert.Equal(op.GetRuntimeMetadata(args), expected);
}
+ [Fact]
+ public void Reset()
+ {
+ var target = new FreeQubit(0);
+ var op = new QuantumSimulator().Get();
+ var args = op.__dataIn(target);
+ var expected = new RuntimeMetadata()
+ {
+ Label = "Reset",
+ FormattedNonQubitArgs = "",
+ IsAdjoint = false,
+ IsControlled = false,
+ IsMeasurement = false,
+ IsComposite = false,
+ Children = null,
+ Controls = new List() { },
+ Targets = new List() { target },
+ };
+
+ Assert.Equal(op.GetRuntimeMetadata(args), expected);
+ }
+
[Fact]
public void ResetAll()
{
@@ -310,7 +332,7 @@ public void ResetAll()
IsAdjoint = false,
IsControlled = false,
IsMeasurement = false,
- IsComposite = false,
+ IsComposite = true,
Children = null,
Controls = new List() { },
Targets = targets,