diff options
| author | Jo Bates <29763794+jbatez@users.noreply.github.com> | 2025-06-04 19:49:13 -0700 |
|---|---|---|
| committer | Jo Bates <29763794+jbatez@users.noreply.github.com> | 2025-09-13 16:06:22 -0700 |
| commit | 1ebf69d1b1a94e99c01680514571c41d0b864c15 (patch) | |
| tree | e2676d6c42b09f85f30f57f8447f0f862d1daa33 /tests/ui/darwin-objc/darwin-objc-class.rs | |
| parent | 02c7b1a7ac1d739663878030510508372e46f254 (diff) | |
| download | rust-1ebf69d1b1a94e99c01680514571c41d0b864c15.tar.gz rust-1ebf69d1b1a94e99c01680514571c41d0b864c15.zip | |
initial implementation of the darwin_objc unstable feature
Diffstat (limited to 'tests/ui/darwin-objc/darwin-objc-class.rs')
| -rw-r--r-- | tests/ui/darwin-objc/darwin-objc-class.rs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/ui/darwin-objc/darwin-objc-class.rs b/tests/ui/darwin-objc/darwin-objc-class.rs new file mode 100644 index 00000000000..851149d8726 --- /dev/null +++ b/tests/ui/darwin-objc/darwin-objc-class.rs @@ -0,0 +1,39 @@ +// Test that `objc::class!` returns the same thing as `objc_lookUpClass`. + +//@ edition: 2024 +//@ only-apple +//@ run-pass + +#![feature(darwin_objc)] + +use std::ffi::c_char; +use std::os::darwin::objc; + +#[link(name = "Foundation", kind = "framework")] +unsafe extern "C" {} + +#[link(name = "objc")] +unsafe extern "C" { + fn objc_lookUpClass(methname: *const c_char) -> objc::Class; +} + +fn get_object_class() -> objc::Class { + objc::class!("NSObject") +} + +fn lookup_object_class() -> objc::Class { + unsafe { objc_lookUpClass(c"NSObject".as_ptr()) } +} + +fn get_string_class() -> objc::Class { + objc::class!("NSString") +} + +fn lookup_string_class() -> objc::Class { + unsafe { objc_lookUpClass(c"NSString".as_ptr()) } +} + +fn main() { + assert_eq!(get_object_class(), lookup_object_class()); + assert_eq!(get_string_class(), lookup_string_class()); +} |
