// Test that `objc::class!` and `objc::selector!` only take string literals. //@ edition: 2024 //@ only-apple #![feature(darwin_objc)] use std::os::darwin::objc; pub fn main() { let s = "NSObject"; objc::class!(s); //~^ ERROR attribute value must be a literal objc::class!(NSObject); //~^ ERROR attribute value must be a literal objc::class!(123); //~^ ERROR `objc::class!` expected a string literal objc::class!("NSObject\0"); //~^ ERROR `objc::class!` may not contain null characters let s = "alloc"; objc::selector!(s); //~^ ERROR attribute value must be a literal objc::selector!(alloc); //~^ ERROR attribute value must be a literal objc::selector!(123); //~^ ERROR `objc::selector!` expected a string literal objc::selector!("alloc\0"); //~^ ERROR `objc::selector!` may not contain null characters }