MSVC (19.16) wants to see the definition of Instruction in std::pair<unsigned, const Instruction &> SourceRef to decide if it is assignable:
libcxx/include/type_traits:2209: error C2139: 'llvm::mca::Instruction': an undefined class is not allowed as an argument to compiler intrinsic type trait '__is_assignable' llvm/include/llvm/mca/sourcemgr.h:31: note: see declaration of 'llvm::mca::Instruction' libcxx/include/type_traits:2226: note: see reference to class template instantiation 'std::is_assignable<const llvm::mca::Instruction &,const llvm::mca::Instruction &>' being compiled libcxx/include/utility:524: note: see reference to class template instantiation 'std::is_copy_assignable<const llvm::mca::Instruction &>' being compiled llvm/include/llvm/mca/sourcemgr.h:51: note: see reference to class template instantiation 'std::pair<unsigned int,const llvm::mca::Instruction &>' being compiled