Closed
Description
rust-security-framework no longer compiles on nightly due to what I think is a regression in macro hygiene:
src/os/macos/secure_transport.rs:95:13: 101:14 error: method `set_allow_server_identity_change` is not a member of trait `SslContextExt` [E0407]
src/os/macos/secure_transport.rs:95 fn $set(&mut self, value: bool) -> Result<()> {
^
src/os/macos/secure_transport.rs:165:5: 172:6 note: in this expansion of impl_options! (defined in src/os/macos/secure_transport.rs)
src/os/macos/secure_transport.rs:95:13: 101:14 help: run `rustc --explain E0407` to see a detailed explanation
src/os/macos/secure_transport.rs:167:57: 167:58 error: unresolved name `kSSLSessionOptionAllowServerIdentityChange` [E0425]
src/os/macos/secure_transport.rs:167 const kSSLSessionOptionAllowServerIdentityChange: allow_server_identity_change & set_allow_server_identity_change,
^
src/os/macos/secure_transport.rs:165:5: 172:6 note: in this expansion of impl_options! (defined in src/os/macos/secure_transport.rs)
src/os/macos/secure_transport.rs:167:57: 167:58 help: run `rustc --explain E0425` to see a detailed explanation
src/os/macos/secure_transport.rs:104:13: 108:14 error: method `allow_server_identity_change` is not a member of trait `SslContextExt` [E0407]
src/os/macos/secure_transport.rs:104 fn $get(&self) -> Result<bool> {
^
src/os/macos/secure_transport.rs:165:5: 172:6 note: in this expansion of impl_options! (defined in src/os/macos/secure_transport.rs)
src/os/macos/secure_transport.rs:104:13: 108:14 help: run `rustc --explain E0407` to see a detailed explanation
src/os/macos/secure_transport.rs:167:57: 167:58 error: unresolved name `kSSLSessionOptionAllowServerIdentityChange` [E0425]
src/os/macos/secure_transport.rs:167 const kSSLSessionOptionAllowServerIdentityChange: allow_server_identity_change & set_allow_server_identity_change,
^
src/os/macos/secure_transport.rs:106:26: 106:92 note: in this expansion of try! (defined in <std macros>)
src/os/macos/secure_transport.rs:165:5: 172:6 note: in this expansion of impl_options! (defined in src/os/macos/secure_transport.rs)
src/os/macos/secure_transport.rs:167:57: 167:58 help: run `rustc --explain E0425` to see a detailed explanation
src/os/macos/secure_transport.rs:95:13: 101:14 error: method `set_fallback` is not a member of trait `SslContextExt` [E0407]
src/os/macos/secure_transport.rs:95 fn $set(&mut self, value: bool) -> Result<()> {
^
src/os/macos/secure_transport.rs:165:5: 172:6 note: in this expansion of impl_options! (defined in src/os/macos/secure_transport.rs)
src/os/macos/secure_transport.rs:95:13: 101:14 help: run `rustc --explain E0407` to see a detailed explanation
src/os/macos/secure_transport.rs:169:40: 169:41 error: unresolved name `kSSLSessionOptionFallback` [E0425]
src/os/macos/secure_transport.rs:169 const kSSLSessionOptionFallback: fallback & set_fallback,
^
src/os/macos/secure_transport.rs:165:5: 172:6 note: in this expansion of impl_options! (defined in src/os/macos/secure_transport.rs)
src/os/macos/secure_transport.rs:169:40: 169:41 help: run `rustc --explain E0425` to see a detailed explanation
src/os/macos/secure_transport.rs:104:13: 108:14 error: method `fallback` is not a member of trait `SslContextExt` [E0407]
src/os/macos/secure_transport.rs:104 fn $get(&self) -> Result<bool> {
^
src/os/macos/secure_transport.rs:165:5: 172:6 note: in this expansion of impl_options! (defined in src/os/macos/secure_transport.rs)
src/os/macos/secure_transport.rs:104:13: 108:14 help: run `rustc --explain E0407` to see a detailed explanation
src/os/macos/secure_transport.rs:169:40: 169:41 error: unresolved name `kSSLSessionOptionFallback` [E0425]
src/os/macos/secure_transport.rs:169 const kSSLSessionOptionFallback: fallback & set_fallback,
^
src/os/macos/secure_transport.rs:106:26: 106:92 note: in this expansion of try! (defined in <std macros>)
src/os/macos/secure_transport.rs:165:5: 172:6 note: in this expansion of impl_options! (defined in src/os/macos/secure_transport.rs)
src/os/macos/secure_transport.rs:169:40: 169:41 help: run `rustc --explain E0425` to see a detailed explanation
src/os/macos/secure_transport.rs:95:13: 101:14 error: method `set_break_on_client_hello` is not a member of trait `SslContextExt` [E0407]
src/os/macos/secure_transport.rs:95 fn $set(&mut self, value: bool) -> Result<()> {
^
src/os/macos/secure_transport.rs:165:5: 172:6 note: in this expansion of impl_options! (defined in src/os/macos/secure_transport.rs)
src/os/macos/secure_transport.rs:95:13: 101:14 help: run `rustc --explain E0407` to see a detailed explanation
src/os/macos/secure_transport.rs:171:50: 171:51 error: unresolved name `kSSLSessionOptionBreakOnClientHello` [E0425]
src/os/macos/secure_transport.rs:171 const kSSLSessionOptionBreakOnClientHello: break_on_client_hello & set_break_on_client_hello,
^
src/os/macos/secure_transport.rs:165:5: 172:6 note: in this expansion of impl_options! (defined in src/os/macos/secure_transport.rs)
src/os/macos/secure_transport.rs:171:50: 171:51 help: run `rustc --explain E0425` to see a detailed explanation
src/os/macos/secure_transport.rs:104:13: 108:14 error: method `break_on_client_hello` is not a member of trait `SslContextExt` [E0407]
src/os/macos/secure_transport.rs:104 fn $get(&self) -> Result<bool> {
^
src/os/macos/secure_transport.rs:165:5: 172:6 note: in this expansion of impl_options! (defined in src/os/macos/secure_transport.rs)
src/os/macos/secure_transport.rs:104:13: 108:14 help: run `rustc --explain E0407` to see a detailed explanation
src/os/macos/secure_transport.rs:171:50: 171:51 error: unresolved name `kSSLSessionOptionBreakOnClientHello` [E0425]
src/os/macos/secure_transport.rs:171 const kSSLSessionOptionBreakOnClientHello: break_on_client_hello & set_break_on_client_hello,
^
src/os/macos/secure_transport.rs:106:26: 106:92 note: in this expansion of try! (defined in <std macros>)
src/os/macos/secure_transport.rs:165:5: 172:6 note: in this expansion of impl_options! (defined in src/os/macos/secure_transport.rs)
src/os/macos/secure_transport.rs:171:50: 171:51 help: run `rustc --explain E0425` to see a detailed explanation
src/secure_transport.rs:654:49: 654:50 error: unresolved name `kSSLSessionOptionBreakOnClientAuth` [E0425]
src/secure_transport.rs:654 const kSSLSessionOptionBreakOnClientAuth: break_on_client_auth & set_break_on_client_auth,
^
src/secure_transport.rs:642:5: 667:6 note: in this expansion of impl_options! (defined in src/secure_transport.rs)
src/secure_transport.rs:654:49: 654:50 help: run `rustc --explain E0425` to see a detailed explanation
src/secure_transport.rs:654:49: 654:50 error: unresolved name `kSSLSessionOptionBreakOnClientAuth` [E0425]
src/secure_transport.rs:654 const kSSLSessionOptionBreakOnClientAuth: break_on_client_auth & set_break_on_client_auth,
^
src/secure_transport.rs:373:26: 373:83 note: in this expansion of try! (defined in <std macros>)
src/secure_transport.rs:642:5: 667:6 note: in this expansion of impl_options! (defined in src/secure_transport.rs)
src/secure_transport.rs:654:49: 654:50 help: run `rustc --explain E0425` to see a detailed explanation
src/secure_transport.rs:660:42: 660:43 error: unresolved name `kSSLSessionOptionFalseStart` [E0425]
src/secure_transport.rs:660 const kSSLSessionOptionFalseStart: false_start & set_false_start,
^
src/secure_transport.rs:642:5: 667:6 note: in this expansion of impl_options! (defined in src/secure_transport.rs)
src/secure_transport.rs:660:42: 660:43 help: run `rustc --explain E0425` to see a detailed explanation
src/secure_transport.rs:660:42: 660:43 error: unresolved name `kSSLSessionOptionFalseStart` [E0425]
src/secure_transport.rs:660 const kSSLSessionOptionFalseStart: false_start & set_false_start,
^
src/secure_transport.rs:373:26: 373:83 note: in this expansion of try! (defined in <std macros>)
src/secure_transport.rs:642:5: 667:6 note: in this expansion of impl_options! (defined in src/secure_transport.rs)
src/secure_transport.rs:660:42: 660:43 help: run `rustc --explain E0425` to see a detailed explanation
src/secure_transport.rs:666:49: 666:50 error: unresolved name `kSSLSessionOptionSendOneByteRecord` [E0425]
src/secure_transport.rs:666 const kSSLSessionOptionSendOneByteRecord: send_one_byte_record & set_send_one_byte_record,
^
src/secure_transport.rs:642:5: 667:6 note: in this expansion of impl_options! (defined in src/secure_transport.rs)
src/secure_transport.rs:666:49: 666:50 help: run `rustc --explain E0425` to see a detailed explanation
src/secure_transport.rs:666:49: 666:50 error: unresolved name `kSSLSessionOptionSendOneByteRecord` [E0425]
src/secure_transport.rs:666 const kSSLSessionOptionSendOneByteRecord: send_one_byte_record & set_send_one_byte_record,
^
src/secure_transport.rs:373:26: 373:83 note: in this expansion of try! (defined in <std macros>)
src/secure_transport.rs:642:5: 667:6 note: in this expansion of impl_options! (defined in src/secure_transport.rs)
src/secure_transport.rs:666:49: 666:50 help: run `rustc --explain E0425` to see a detailed explanation
Here we have methods on a trait that are defined by hand, but implemented by macro. The function names are not generated by the macro - they're passed in, so I would not expect any hygiene shenanigans to apply.
Possibly #32923?
cc @nrc @jseyfried