diff --git a/src/instruct.jl b/src/instruct.jl index 3a3b320d2..4c238d0f0 100644 --- a/src/instruct.jl +++ b/src/instruct.jl @@ -73,9 +73,10 @@ end YaoBase.instruct!(state::AbstractVecOrMat, U::IMatrix, locs::NTuple{N, Int}) where N = state YaoBase.instruct!(state::AbstractVecOrMat, U::IMatrix, locs::Int) = state +YaoBase.instruct!(state::AbstractVecOrMat, U::IMatrix, locs::Tuple{Int}) = state # one-qubit instruction -YaoBase.instruct!(state::AbstractVecOrMat{T}, g::AbstractMatrix{T}, locs::Tuple{Int}) where T = +YaoBase.instruct!(state::AbstractVecOrMat, g::AbstractMatrix, locs::Tuple{Int}) = instruct!(state, g, locs...) function YaoBase.instruct!(state::AbstractVecOrMat{T}, U1::AbstractMatrix{T}, loc::Int) where T diff --git a/test/instruct.jl b/test/instruct.jl index 317b07289..58a249847 100644 --- a/test/instruct.jl +++ b/test/instruct.jl @@ -90,3 +90,8 @@ end ST = randn(ComplexF64, 1 << 2) @test instruct!(copy(ST), Val(:SWAP), (1, 2)) ≈ SWAP * ST end + +@testset "Yao.jl/#189" begin + st = rand(1<<4) + @test instruct!(st, IMatrix{2, Float64}(), 1) == st +end