Remove opaque C++ type lifetimes gates

This commit is contained in:
David Tolnay 2020-12-31 00:37:59 -08:00
parent 30d46731ef
commit 06c60a32a7
No known key found for this signature in database
GPG Key ID: F9BA143B95FF6D82
3 changed files with 4 additions and 23 deletions

View File

@ -71,11 +71,6 @@ fn check_type_ident(cx: &mut Check, name: &NamedType) {
{
let msg = format!("unsupported type: {}", ident);
cx.error(ident, &msg);
return;
}
if !name.generics.lifetimes.is_empty() {
cx.error(name, "type with lifetime parameter is not supported yet");
}
}
@ -341,7 +336,10 @@ fn check_api_type(cx: &mut Check, ety: &ExternType) {
}
if let Some(lifetime) = ety.generics.lifetimes.first() {
cx.error(lifetime, "extern type with lifetimes is not supported yet");
if ety.lang == Lang::Rust {
let msg = "extern Rust type with lifetimes is not supported yet";
cx.error(lifetime, msg);
}
}
if !ety.bounds.is_empty() {
@ -447,10 +445,6 @@ fn check_api_type_alias(cx: &mut Check, alias: &TypeAlias) {
let msg = format!("derive({}) on extern type alias is not supported", derive);
cx.error(derive, msg);
}
if let Some(lifetime) = alias.generics.lifetimes.first() {
cx.error(lifetime, "extern type with lifetimes is not supported yet");
}
}
fn check_api_impl(cx: &mut Check, imp: &Impl) {

View File

@ -1,8 +0,0 @@
#[cxx::bridge]
mod ffi {
extern "C++" {
type Complex<'a, 'b>;
}
}
fn main() {}

View File

@ -1,5 +0,0 @@
error: extern type with lifetimes is not supported yet
--> $DIR/extern_type_lifetime.rs:4:22
|
4 | type Complex<'a, 'b>;
| ^^