commit | fd4ff826b3ebca86c2e38b19cb4a47a5faefcb44 | [log] [tgz] |
---|---|---|
author | Devin Jeanpierre <jeanpierreda@google.com> | Fri Jul 15 01:43:55 2022 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Fri Jul 15 01:44:28 2022 -0700 |
tree | e0f76634dbfb8a82972a25d8da5dd3b009076516 | |
parent | d9b0ad4c09b46328dcc7a5ec28ce86cca56e0389 [diff] |
Apply return type modifications to trait associated return types. This allows traits to return non-Unpin types by value, even when their return type is an associated type. However, that doesn't quite work yet due to an unrelated bug which needs to be fixed first. Followup CL incoming, and then that. P.S. this change isn't as "clean" as I hoped, and there's also obviously cases it doesn't handle -- basically any time someone uses format_as_return_type, I suppose they might need to do this transform. So there's more work to be done here. PiperOrigin-RevId: 461149134
Extremely experimental interop tooling for C++ and Rust.
Please don‘t use, this is an experiment and we don’t yet know where will it take us. There will be breaking changes without warning. Unfortunately, we can't take contributions at this point.
$ apt install clang lld bazel $ git clone git@github.com:google/crubit.git $ cd crubit $ bazel build --linkopt=-fuse-ld=/usr/bin/ld.lld //rs_bindings_from_cc:rs_bindings_from_cc_impl
$ git clone https://github.com/llvm/llvm-project $ cd llvm-project $ CC=clang CXX=clang++ cmake -S llvm -B build -DLLVM_ENABLE_PROJECTS='clang' -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install $ cmake --build build -j $ # wait... $ cmake --install build $ cd ../crubit $ LLVM_INSTALL_PATH=../llvm-project/install bazel build //rs_bindings_from_cc:rs_bindings_from_cc_impl