From d79b8eff6f18d31e6b709bee616866292970101a Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 13 Mar 2020 11:29:57 +0100 Subject: [PATCH 1/2] Modernize Cargo.lock --- stable-check/Cargo.lock | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/stable-check/Cargo.lock b/stable-check/Cargo.lock index 9a3b307c9..982040de4 100644 --- a/stable-check/Cargo.lock +++ b/stable-check/Cargo.lock @@ -1,4 +1,6 @@ -[root] +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] name = "stable-check" version = "0.1.0" From 5dc3df231e1043b90f451ae4f604256a9fbdd957 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 13 Mar 2020 11:30:05 +0100 Subject: [PATCH 2/2] Fix grammar for variadic extern functions First, variadic params can be named: extern "C" { fn f(_: *mut u8, _: ...); } Second, variadic params can be followed by a comma extern "C" { fn f(_: *mut u8, ...,); } --- src/items/external-blocks.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/items/external-blocks.md b/src/items/external-blocks.md index 7acb5ce3c..0ab3a4110 100644 --- a/src/items/external-blocks.md +++ b/src/items/external-blocks.md @@ -18,17 +18,17 @@ > > _ExternalFunctionItem_ :\ >    `fn` [IDENTIFIER] [_Generics_]?\ ->    `(` ( _NamedFunctionParameters_ | _NamedFunctionParametersWithVariadics_ )? `)`\ +>    `(` _NamedFunctionParameters_ ? `)`\ >    [_FunctionReturnType_]? [_WhereClause_]? `;` > > _NamedFunctionParameters_ :\ ->    _NamedFunctionParam_ ( `,` _NamedFunctionParam_ )\* `,`? +>    _NamedFunctionParam_ ( `,` _NamedFunctionParam_ )\* (`,` _VariadicFunctionParam_)? `,`? > > _NamedFunctionParam_ :\ >    [_OuterAttribute_]\* ( [IDENTIFIER] | `_` ) `:` [_Type_] > -> _NamedFunctionParametersWithVariadics_ :\ ->    ( _NamedFunctionParam_ `,` )\* _NamedFunctionParam_ `,` [_OuterAttribute_]\* `...` +> _VariadicFunctionParam_ :\ +>    [_OuterAttribute_]\* (( [IDENTIFIER] | `_` ) `:`)? `...` External blocks provide _declarations_ of items that are not _defined_ in the current crate and are the basis of Rust's foreign function interface. These are