@@ -143,8 +143,6 @@ pub enum Expression {
143143 LLVMLink ( LLVMLink ) ,
144144 /// Casts the given expression to the specified (unchecked) type
145145 CastAs ( Box < Expression > , String ) ,
146- /// Returns the LLVM `undef` symbol
147- SvUndef ,
148146 /// Multiplication
149147 Multiply ( Box < Expression > , Box < Expression > ) ,
150148 /// Xor
@@ -295,7 +293,7 @@ impl Expression {
295293 /// - An unnecessary `unsafe` is a warning, made into an error by the CI's `-D warnings`.
296294 ///
297295 /// This **panics** if it encounters an expression that shouldn't appear in a safe function at
298- /// all (such as `SvUndef`) .
296+ /// all.
299297 pub fn requires_unsafe_wrapper ( & self , ctx_fn : & str ) -> bool {
300298 match self {
301299 // The call will need to be unsafe, but the declaration does not.
@@ -347,9 +345,6 @@ impl Expression {
347345 } ,
348346 // We only use macros to check const generics (using static assertions).
349347 Self :: MacroCall ( _name, _args) => false ,
350- // Materialising uninitialised values is always unsafe, and we avoid it in safe
351- // functions.
352- Self :: SvUndef => panic ! ( "Refusing to wrap unsafe SvUndef in safe function '{ctx_fn}'." ) ,
353348 // Variants that aren't tokenised. We shouldn't encounter these here.
354349 Self :: MatchKind ( ..) => {
355350 unimplemented ! ( "The unsafety of {self:?} cannot be determined in '{ctx_fn}'." )
@@ -390,9 +385,7 @@ impl FromStr for Expression {
390385 static MACRO_RE : LazyLock < Regex > =
391386 LazyLock :: new ( || Regex :: new ( r"^(?P<name>[\w\d_]+)!\((?P<ex>.*?)\);?$" ) . unwrap ( ) ) ;
392387
393- if s == "SvUndef" {
394- Ok ( Expression :: SvUndef )
395- } else if MACRO_RE . is_match ( s) {
388+ if MACRO_RE . is_match ( s) {
396389 let c = MACRO_RE . captures ( s) . unwrap ( ) ;
397390 let ex = c[ "ex" ] . to_string ( ) ;
398391 let _: TokenStream = ex
@@ -533,7 +526,6 @@ impl ToTokens for Expression {
533526 let ty: TokenStream = ty. parse ( ) . expect ( "invalid syntax" ) ;
534527 tokens. append_all ( quote ! { #ex as #ty } )
535528 }
536- Self :: SvUndef => tokens. append_all ( quote ! { simd_reinterpret( ( ) ) } ) ,
537529 Self :: Multiply ( lhs, rhs) => tokens. append_all ( quote ! { #lhs * #rhs } ) ,
538530 Self :: Xor ( lhs, rhs) => tokens. append_all ( quote ! { #lhs ^ #rhs } ) ,
539531 Self :: Type ( ty) => ty. to_tokens ( tokens) ,
0 commit comments