1
Fork 0

Merge commit '1eded3619d' into sync_cg_clif-2023-07-22

This commit is contained in:
bjorn3 2023-07-22 13:32:34 +00:00
commit 36708123c1
30 changed files with 668 additions and 170 deletions

View file

@ -0,0 +1,27 @@
// Based on https://github.com/rust-lang/rust/blob/689511047a75a30825e367d4fd45c74604d0b15e/tests/ui/issues/issue-59326.rs#L1
// check-pass
trait Service {
type S;
}
trait Framing {
type F;
}
impl Framing for () {
type F = ();
}
trait HttpService<F: Framing>: Service<S = F::F> {}
type BoxService = Box<dyn HttpService<(), S = ()>>;
fn build_server<F: FnOnce() -> BoxService>(_: F) {}
fn make_server<F: Framing>() -> Box<dyn HttpService<F, S = F::F>> {
unimplemented!()
}
fn main() {
build_server(|| make_server())
}

View file

@ -547,7 +547,9 @@ impl<T> Box<T> {
impl<T: ?Sized, A> Drop for Box<T, A> {
fn drop(&mut self) {
// inner value is dropped by compiler
libc::free(self.0.pointer.0 as *mut u8);
unsafe {
libc::free(self.0.pointer.0 as *mut u8);
}
}
}

View file

@ -1,4 +1,12 @@
#![feature(core_intrinsics, generators, generator_trait, is_sorted, repr_simd)]
#![feature(
core_intrinsics,
generators,
generator_trait,
is_sorted,
repr_simd,
tuple_trait,
unboxed_closures
)]
#[cfg(target_arch = "x86_64")]
use std::arch::x86_64::*;
@ -155,12 +163,34 @@ fn main() {
}
foo(I64X2(0, 0));
transmute_fat_pointer();
rust_call_abi();
}
fn panic(_: u128) {
panic!();
}
use std::mem::transmute;
#[cfg(target_pointer_width = "32")]
type TwoPtrs = i64;
#[cfg(target_pointer_width = "64")]
type TwoPtrs = i128;
fn transmute_fat_pointer() -> TwoPtrs {
unsafe { transmute::<_, TwoPtrs>("true !") }
}
extern "rust-call" fn rust_call_abi_callee<T: std::marker::Tuple>(_: T) {}
fn rust_call_abi() {
rust_call_abi_callee(());
rust_call_abi_callee((1, 2));
}
#[repr(simd)]
struct I64X2(i64, i64);