5642: Grammar updates r=matklad a=matklad

bors r+

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
This commit is contained in:
bors[bot] 2020-08-01 11:49:36 +00:00 committed by GitHub
commit cf17366df9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
37 changed files with 150 additions and 151 deletions

24
Cargo.lock generated
View file

@ -279,9 +279,9 @@ checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
[[package]] [[package]]
name = "drop_bomb" name = "drop_bomb"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69b26e475fd29098530e709294e94e661974c851aed42512793f120fed4e199f" checksum = "9bda8e21c04aca2ae33ffc2fd8c23134f3cac46db123ba97bd9d3f3b8a4a85e1"
[[package]] [[package]]
name = "either" name = "either"
@ -1622,9 +1622,9 @@ checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed"
[[package]] [[package]]
name = "tracing" name = "tracing"
version = "0.1.17" version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dbdf4ccd1652592b01286a5dbe1e2a77d78afaa34beadd9872a5f7396f92aaa9" checksum = "f0aae59226cf195d8e74d4b34beae1859257efb4e5fed3f147d2dc2c7d372178"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"tracing-attributes", "tracing-attributes",
@ -1644,9 +1644,9 @@ dependencies = [
[[package]] [[package]]
name = "tracing-core" name = "tracing-core"
version = "0.1.11" version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94ae75f0d28ae10786f3b1895c55fe72e79928fd5ccdebb5438c75e93fec178f" checksum = "b2734b5a028fa697686f16c6d18c2c6a3c7e41513f9a213abb6754c4acb3c8d7"
dependencies = [ dependencies = [
"lazy_static", "lazy_static",
] ]
@ -1674,9 +1674,9 @@ dependencies = [
[[package]] [[package]]
name = "tracing-subscriber" name = "tracing-subscriber"
version = "0.2.9" version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4f5dd7095c2481b7b3cbed71c8de53085fb3542bc3c2b4c73cba43e8f11c7ba" checksum = "f7b33f8b2ef2ab0c3778c12646d9c42a24f7772bee4cdafc72199644a9f58fdc"
dependencies = [ dependencies = [
"ansi_term", "ansi_term",
"chrono", "chrono",
@ -1708,9 +1708,9 @@ dependencies = [
[[package]] [[package]]
name = "ungrammar" name = "ungrammar"
version = "0.1.0" version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ee12e4891ab3acc2d95d5023022ace22020247bb8a8d1ece875a443f7dab37d" checksum = "c4e20e58a08ee1bcf8a4695cf74550cf054d6c489105f594beacb2c684210aad"
[[package]] [[package]]
name = "unicode-bidi" name = "unicode-bidi"
@ -1833,9 +1833,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]] [[package]]
name = "write-json" name = "write-json"
version = "0.1.0" version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b3f9a784c809a99e38d2e825907617cb03bd880d5421153bc4548e9317f59d0" checksum = "06069a848f95fceae3e5e03c0ddc8cb78452b56654ee0c8e68f938cf790fb9e3"
[[package]] [[package]]
name = "ws2_32-sys" name = "ws2_32-sys"

View file

@ -68,7 +68,7 @@ fn generate_fn_def_assist(
let fn_params_without_lifetime: Vec<_> = param_list let fn_params_without_lifetime: Vec<_> = param_list
.params() .params()
.filter_map(|param| match param.ty() { .filter_map(|param| match param.ty() {
Some(ast::Type::ReferenceType(ascribed_type)) Some(ast::Type::RefType(ascribed_type))
if ascribed_type.lifetime_token() == None => if ascribed_type.lifetime_token() == None =>
{ {
Some(ascribed_type.amp_token()?.text_range().end()) Some(ascribed_type.amp_token()?.text_range().end())

View file

@ -94,7 +94,7 @@ impl TypeRef {
.map(TypeRef::Path) .map(TypeRef::Path)
.unwrap_or(TypeRef::Error) .unwrap_or(TypeRef::Error)
} }
ast::Type::PointerType(inner) => { ast::Type::PtrType(inner) => {
let inner_ty = TypeRef::from_ast_opt(&ctx, inner.ty()); let inner_ty = TypeRef::from_ast_opt(&ctx, inner.ty());
let mutability = Mutability::from_mutable(inner.mut_token().is_some()); let mutability = Mutability::from_mutable(inner.mut_token().is_some());
TypeRef::RawPtr(Box::new(inner_ty), mutability) TypeRef::RawPtr(Box::new(inner_ty), mutability)
@ -105,13 +105,13 @@ impl TypeRef {
ast::Type::SliceType(inner) => { ast::Type::SliceType(inner) => {
TypeRef::Slice(Box::new(TypeRef::from_ast_opt(&ctx, inner.ty()))) TypeRef::Slice(Box::new(TypeRef::from_ast_opt(&ctx, inner.ty())))
} }
ast::Type::ReferenceType(inner) => { ast::Type::RefType(inner) => {
let inner_ty = TypeRef::from_ast_opt(&ctx, inner.ty()); let inner_ty = TypeRef::from_ast_opt(&ctx, inner.ty());
let mutability = Mutability::from_mutable(inner.mut_token().is_some()); let mutability = Mutability::from_mutable(inner.mut_token().is_some());
TypeRef::Reference(Box::new(inner_ty), mutability) TypeRef::Reference(Box::new(inner_ty), mutability)
} }
ast::Type::InferType(_inner) => TypeRef::Placeholder, ast::Type::InferType(_inner) => TypeRef::Placeholder,
ast::Type::FnPointerType(inner) => { ast::Type::FnPtrType(inner) => {
let ret_ty = inner let ret_ty = inner
.ret_type() .ret_type()
.and_then(|rt| rt.ty()) .and_then(|rt| rt.ty())

View file

@ -157,7 +157,7 @@ fn rename_to_self(
} }
let first_param = params.params().next()?; let first_param = params.params().next()?;
let mutable = match first_param.ty() { let mutable = match first_param.ty() {
Some(ast::Type::ReferenceType(rt)) => rt.mut_token().is_some(), Some(ast::Type::RefType(rt)) => rt.mut_token().is_some(),
_ => return None, // not renaming other types _ => return None, // not renaming other types
}; };

View file

@ -546,7 +546,7 @@ fn highlight_element(
T![!] if element.parent().and_then(ast::MacroCall::cast).is_some() => { T![!] if element.parent().and_then(ast::MacroCall::cast).is_some() => {
HighlightTag::Macro.into() HighlightTag::Macro.into()
} }
T![*] if element.parent().and_then(ast::PointerType::cast).is_some() => { T![*] if element.parent().and_then(ast::PtrType::cast).is_some() => {
HighlightTag::Keyword.into() HighlightTag::Keyword.into()
} }
T![*] if element.parent().and_then(ast::PrefixExpr::cast).is_some() => { T![*] if element.parent().and_then(ast::PrefixExpr::cast).is_some() => {

View file

@ -117,7 +117,7 @@ fn pointer_type(p: &mut Parser) {
}; };
type_no_bounds(p); type_no_bounds(p);
m.complete(p, POINTER_TYPE); m.complete(p, PTR_TYPE);
} }
fn array_or_slice_type(p: &mut Parser) { fn array_or_slice_type(p: &mut Parser) {
@ -163,7 +163,7 @@ fn reference_type(p: &mut Parser) {
p.eat(LIFETIME); p.eat(LIFETIME);
p.eat(T![mut]); p.eat(T![mut]);
type_no_bounds(p); type_no_bounds(p);
m.complete(p, REFERENCE_TYPE); m.complete(p, REF_TYPE);
} }
// test placeholder_type // test placeholder_type
@ -201,7 +201,7 @@ fn fn_pointer_type(p: &mut Parser) {
// test fn_pointer_type_with_ret // test fn_pointer_type_with_ret
// type F = fn() -> (); // type F = fn() -> ();
opt_fn_ret_type(p); opt_fn_ret_type(p);
m.complete(p, FN_POINTER_TYPE); m.complete(p, FN_PTR_TYPE);
} }
pub(super) fn for_binder(p: &mut Parser) { pub(super) fn for_binder(p: &mut Parser) {

View file

@ -143,12 +143,12 @@ pub enum SyntaxKind {
TUPLE_TYPE, TUPLE_TYPE,
NEVER_TYPE, NEVER_TYPE,
PATH_TYPE, PATH_TYPE,
POINTER_TYPE, PTR_TYPE,
ARRAY_TYPE, ARRAY_TYPE,
SLICE_TYPE, SLICE_TYPE,
REFERENCE_TYPE, REF_TYPE,
INFER_TYPE, INFER_TYPE,
FN_POINTER_TYPE, FN_PTR_TYPE,
FOR_TYPE, FOR_TYPE,
IMPL_TRAIT_TYPE, IMPL_TRAIT_TYPE,
DYN_TRAIT_TYPE, DYN_TRAIT_TYPE,

View file

@ -1006,10 +1006,10 @@ impl DynTraitType {
pub fn type_bound_list(&self) -> Option<TypeBoundList> { support::child(&self.syntax) } pub fn type_bound_list(&self) -> Option<TypeBoundList> { support::child(&self.syntax) }
} }
#[derive(Debug, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct FnPointerType { pub struct FnPtrType {
pub(crate) syntax: SyntaxNode, pub(crate) syntax: SyntaxNode,
} }
impl FnPointerType { impl FnPtrType {
pub fn const_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![const]) } pub fn const_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![const]) }
pub fn async_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![async]) } pub fn async_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![async]) }
pub fn unsafe_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![unsafe]) } pub fn unsafe_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![unsafe]) }
@ -1059,20 +1059,20 @@ impl ParenType {
pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![')']) } pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![')']) }
} }
#[derive(Debug, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct PointerType { pub struct PtrType {
pub(crate) syntax: SyntaxNode, pub(crate) syntax: SyntaxNode,
} }
impl PointerType { impl PtrType {
pub fn star_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![*]) } pub fn star_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![*]) }
pub fn const_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![const]) } pub fn const_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![const]) }
pub fn mut_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![mut]) } pub fn mut_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![mut]) }
pub fn ty(&self) -> Option<Type> { support::child(&self.syntax) } pub fn ty(&self) -> Option<Type> { support::child(&self.syntax) }
} }
#[derive(Debug, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct ReferenceType { pub struct RefType {
pub(crate) syntax: SyntaxNode, pub(crate) syntax: SyntaxNode,
} }
impl ReferenceType { impl RefType {
pub fn amp_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![&]) } pub fn amp_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![&]) }
pub fn lifetime_token(&self) -> Option<SyntaxToken> { pub fn lifetime_token(&self) -> Option<SyntaxToken> {
support::token(&self.syntax, T![lifetime]) support::token(&self.syntax, T![lifetime])
@ -1263,15 +1263,15 @@ pub enum GenericArg {
pub enum Type { pub enum Type {
ArrayType(ArrayType), ArrayType(ArrayType),
DynTraitType(DynTraitType), DynTraitType(DynTraitType),
FnPointerType(FnPointerType), FnPtrType(FnPtrType),
ForType(ForType), ForType(ForType),
ImplTraitType(ImplTraitType), ImplTraitType(ImplTraitType),
InferType(InferType), InferType(InferType),
NeverType(NeverType), NeverType(NeverType),
ParenType(ParenType), ParenType(ParenType),
PathType(PathType), PathType(PathType),
PointerType(PointerType), PtrType(PtrType),
ReferenceType(ReferenceType), RefType(RefType),
SliceType(SliceType), SliceType(SliceType),
TupleType(TupleType), TupleType(TupleType),
} }
@ -1377,8 +1377,8 @@ impl ast::NameOwner for AssocItem {}
#[derive(Debug, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum ExternItem { pub enum ExternItem {
Fn(Fn), Fn(Fn),
Static(Static),
MacroCall(MacroCall), MacroCall(MacroCall),
Static(Static),
} }
impl ast::AttrsOwner for ExternItem {} impl ast::AttrsOwner for ExternItem {}
impl ast::NameOwner for ExternItem {} impl ast::NameOwner for ExternItem {}
@ -2434,8 +2434,8 @@ impl AstNode for DynTraitType {
} }
fn syntax(&self) -> &SyntaxNode { &self.syntax } fn syntax(&self) -> &SyntaxNode { &self.syntax }
} }
impl AstNode for FnPointerType { impl AstNode for FnPtrType {
fn can_cast(kind: SyntaxKind) -> bool { kind == FN_POINTER_TYPE } fn can_cast(kind: SyntaxKind) -> bool { kind == FN_PTR_TYPE }
fn cast(syntax: SyntaxNode) -> Option<Self> { fn cast(syntax: SyntaxNode) -> Option<Self> {
if Self::can_cast(syntax.kind()) { if Self::can_cast(syntax.kind()) {
Some(Self { syntax }) Some(Self { syntax })
@ -2500,8 +2500,8 @@ impl AstNode for ParenType {
} }
fn syntax(&self) -> &SyntaxNode { &self.syntax } fn syntax(&self) -> &SyntaxNode { &self.syntax }
} }
impl AstNode for PointerType { impl AstNode for PtrType {
fn can_cast(kind: SyntaxKind) -> bool { kind == POINTER_TYPE } fn can_cast(kind: SyntaxKind) -> bool { kind == PTR_TYPE }
fn cast(syntax: SyntaxNode) -> Option<Self> { fn cast(syntax: SyntaxNode) -> Option<Self> {
if Self::can_cast(syntax.kind()) { if Self::can_cast(syntax.kind()) {
Some(Self { syntax }) Some(Self { syntax })
@ -2511,8 +2511,8 @@ impl AstNode for PointerType {
} }
fn syntax(&self) -> &SyntaxNode { &self.syntax } fn syntax(&self) -> &SyntaxNode { &self.syntax }
} }
impl AstNode for ReferenceType { impl AstNode for RefType {
fn can_cast(kind: SyntaxKind) -> bool { kind == REFERENCE_TYPE } fn can_cast(kind: SyntaxKind) -> bool { kind == REF_TYPE }
fn cast(syntax: SyntaxNode) -> Option<Self> { fn cast(syntax: SyntaxNode) -> Option<Self> {
if Self::can_cast(syntax.kind()) { if Self::can_cast(syntax.kind()) {
Some(Self { syntax }) Some(Self { syntax })
@ -2786,8 +2786,8 @@ impl From<ArrayType> for Type {
impl From<DynTraitType> for Type { impl From<DynTraitType> for Type {
fn from(node: DynTraitType) -> Type { Type::DynTraitType(node) } fn from(node: DynTraitType) -> Type { Type::DynTraitType(node) }
} }
impl From<FnPointerType> for Type { impl From<FnPtrType> for Type {
fn from(node: FnPointerType) -> Type { Type::FnPointerType(node) } fn from(node: FnPtrType) -> Type { Type::FnPtrType(node) }
} }
impl From<ForType> for Type { impl From<ForType> for Type {
fn from(node: ForType) -> Type { Type::ForType(node) } fn from(node: ForType) -> Type { Type::ForType(node) }
@ -2807,11 +2807,11 @@ impl From<ParenType> for Type {
impl From<PathType> for Type { impl From<PathType> for Type {
fn from(node: PathType) -> Type { Type::PathType(node) } fn from(node: PathType) -> Type { Type::PathType(node) }
} }
impl From<PointerType> for Type { impl From<PtrType> for Type {
fn from(node: PointerType) -> Type { Type::PointerType(node) } fn from(node: PtrType) -> Type { Type::PtrType(node) }
} }
impl From<ReferenceType> for Type { impl From<RefType> for Type {
fn from(node: ReferenceType) -> Type { Type::ReferenceType(node) } fn from(node: RefType) -> Type { Type::RefType(node) }
} }
impl From<SliceType> for Type { impl From<SliceType> for Type {
fn from(node: SliceType) -> Type { Type::SliceType(node) } fn from(node: SliceType) -> Type { Type::SliceType(node) }
@ -2822,9 +2822,9 @@ impl From<TupleType> for Type {
impl AstNode for Type { impl AstNode for Type {
fn can_cast(kind: SyntaxKind) -> bool { fn can_cast(kind: SyntaxKind) -> bool {
match kind { match kind {
ARRAY_TYPE | DYN_TRAIT_TYPE | FN_POINTER_TYPE | FOR_TYPE | IMPL_TRAIT_TYPE ARRAY_TYPE | DYN_TRAIT_TYPE | FN_PTR_TYPE | FOR_TYPE | IMPL_TRAIT_TYPE | INFER_TYPE
| INFER_TYPE | NEVER_TYPE | PAREN_TYPE | PATH_TYPE | POINTER_TYPE | REFERENCE_TYPE | NEVER_TYPE | PAREN_TYPE | PATH_TYPE | PTR_TYPE | REF_TYPE | SLICE_TYPE
| SLICE_TYPE | TUPLE_TYPE => true, | TUPLE_TYPE => true,
_ => false, _ => false,
} }
} }
@ -2832,15 +2832,15 @@ impl AstNode for Type {
let res = match syntax.kind() { let res = match syntax.kind() {
ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }), ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
DYN_TRAIT_TYPE => Type::DynTraitType(DynTraitType { syntax }), DYN_TRAIT_TYPE => Type::DynTraitType(DynTraitType { syntax }),
FN_POINTER_TYPE => Type::FnPointerType(FnPointerType { syntax }), FN_PTR_TYPE => Type::FnPtrType(FnPtrType { syntax }),
FOR_TYPE => Type::ForType(ForType { syntax }), FOR_TYPE => Type::ForType(ForType { syntax }),
IMPL_TRAIT_TYPE => Type::ImplTraitType(ImplTraitType { syntax }), IMPL_TRAIT_TYPE => Type::ImplTraitType(ImplTraitType { syntax }),
INFER_TYPE => Type::InferType(InferType { syntax }), INFER_TYPE => Type::InferType(InferType { syntax }),
NEVER_TYPE => Type::NeverType(NeverType { syntax }), NEVER_TYPE => Type::NeverType(NeverType { syntax }),
PAREN_TYPE => Type::ParenType(ParenType { syntax }), PAREN_TYPE => Type::ParenType(ParenType { syntax }),
PATH_TYPE => Type::PathType(PathType { syntax }), PATH_TYPE => Type::PathType(PathType { syntax }),
POINTER_TYPE => Type::PointerType(PointerType { syntax }), PTR_TYPE => Type::PtrType(PtrType { syntax }),
REFERENCE_TYPE => Type::ReferenceType(ReferenceType { syntax }), REF_TYPE => Type::RefType(RefType { syntax }),
SLICE_TYPE => Type::SliceType(SliceType { syntax }), SLICE_TYPE => Type::SliceType(SliceType { syntax }),
TUPLE_TYPE => Type::TupleType(TupleType { syntax }), TUPLE_TYPE => Type::TupleType(TupleType { syntax }),
_ => return None, _ => return None,
@ -2851,15 +2851,15 @@ impl AstNode for Type {
match self { match self {
Type::ArrayType(it) => &it.syntax, Type::ArrayType(it) => &it.syntax,
Type::DynTraitType(it) => &it.syntax, Type::DynTraitType(it) => &it.syntax,
Type::FnPointerType(it) => &it.syntax, Type::FnPtrType(it) => &it.syntax,
Type::ForType(it) => &it.syntax, Type::ForType(it) => &it.syntax,
Type::ImplTraitType(it) => &it.syntax, Type::ImplTraitType(it) => &it.syntax,
Type::InferType(it) => &it.syntax, Type::InferType(it) => &it.syntax,
Type::NeverType(it) => &it.syntax, Type::NeverType(it) => &it.syntax,
Type::ParenType(it) => &it.syntax, Type::ParenType(it) => &it.syntax,
Type::PathType(it) => &it.syntax, Type::PathType(it) => &it.syntax,
Type::PointerType(it) => &it.syntax, Type::PtrType(it) => &it.syntax,
Type::ReferenceType(it) => &it.syntax, Type::RefType(it) => &it.syntax,
Type::SliceType(it) => &it.syntax, Type::SliceType(it) => &it.syntax,
Type::TupleType(it) => &it.syntax, Type::TupleType(it) => &it.syntax,
} }
@ -3332,24 +3332,24 @@ impl AstNode for AssocItem {
impl From<Fn> for ExternItem { impl From<Fn> for ExternItem {
fn from(node: Fn) -> ExternItem { ExternItem::Fn(node) } fn from(node: Fn) -> ExternItem { ExternItem::Fn(node) }
} }
impl From<Static> for ExternItem {
fn from(node: Static) -> ExternItem { ExternItem::Static(node) }
}
impl From<MacroCall> for ExternItem { impl From<MacroCall> for ExternItem {
fn from(node: MacroCall) -> ExternItem { ExternItem::MacroCall(node) } fn from(node: MacroCall) -> ExternItem { ExternItem::MacroCall(node) }
} }
impl From<Static> for ExternItem {
fn from(node: Static) -> ExternItem { ExternItem::Static(node) }
}
impl AstNode for ExternItem { impl AstNode for ExternItem {
fn can_cast(kind: SyntaxKind) -> bool { fn can_cast(kind: SyntaxKind) -> bool {
match kind { match kind {
FN | STATIC | MACRO_CALL => true, FN | MACRO_CALL | STATIC => true,
_ => false, _ => false,
} }
} }
fn cast(syntax: SyntaxNode) -> Option<Self> { fn cast(syntax: SyntaxNode) -> Option<Self> {
let res = match syntax.kind() { let res = match syntax.kind() {
FN => ExternItem::Fn(Fn { syntax }), FN => ExternItem::Fn(Fn { syntax }),
STATIC => ExternItem::Static(Static { syntax }),
MACRO_CALL => ExternItem::MacroCall(MacroCall { syntax }), MACRO_CALL => ExternItem::MacroCall(MacroCall { syntax }),
STATIC => ExternItem::Static(Static { syntax }),
_ => return None, _ => return None,
}; };
Some(res) Some(res)
@ -3357,8 +3357,8 @@ impl AstNode for ExternItem {
fn syntax(&self) -> &SyntaxNode { fn syntax(&self) -> &SyntaxNode {
match self { match self {
ExternItem::Fn(it) => &it.syntax, ExternItem::Fn(it) => &it.syntax,
ExternItem::Static(it) => &it.syntax,
ExternItem::MacroCall(it) => &it.syntax, ExternItem::MacroCall(it) => &it.syntax,
ExternItem::Static(it) => &it.syntax,
} }
} }
} }
@ -3925,7 +3925,7 @@ impl std::fmt::Display for DynTraitType {
std::fmt::Display::fmt(self.syntax(), f) std::fmt::Display::fmt(self.syntax(), f)
} }
} }
impl std::fmt::Display for FnPointerType { impl std::fmt::Display for FnPtrType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
std::fmt::Display::fmt(self.syntax(), f) std::fmt::Display::fmt(self.syntax(), f)
} }
@ -3955,12 +3955,12 @@ impl std::fmt::Display for ParenType {
std::fmt::Display::fmt(self.syntax(), f) std::fmt::Display::fmt(self.syntax(), f)
} }
} }
impl std::fmt::Display for PointerType { impl std::fmt::Display for PtrType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
std::fmt::Display::fmt(self.syntax(), f) std::fmt::Display::fmt(self.syntax(), f)
} }
} }
impl std::fmt::Display for ReferenceType { impl std::fmt::Display for RefType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
std::fmt::Display::fmt(self.syntax(), f) std::fmt::Display::fmt(self.syntax(), f)
} }

View file

@ -39,7 +39,7 @@ SOURCE_FILE@0..389
IDENT@39..46 "builder" IDENT@39..46 "builder"
COLON@46..47 COLON@46..47
WHITESPACE@47..48 WHITESPACE@47..48
REFERENCE_TYPE@48..54 REF_TYPE@48..54
AMP@48..49 AMP@48..49
MUT_KW@49..52 MUT_KW@49..52
WHITESPACE@52..53 WHITESPACE@52..53
@ -56,7 +56,7 @@ SOURCE_FILE@0..389
IDENT@56..62 "tokens" IDENT@56..62 "tokens"
COLON@62..63 COLON@62..63
WHITESPACE@63..64 WHITESPACE@63..64
REFERENCE_TYPE@64..72 REF_TYPE@64..72
AMP@64..65 AMP@64..65
SLICE_TYPE@65..72 SLICE_TYPE@65..72
L_BRACK@65..66 L_BRACK@65..66
@ -126,7 +126,7 @@ SOURCE_FILE@0..389
IDENT@144..147 "idx" IDENT@144..147 "idx"
COLON@147..148 COLON@147..148
WHITESPACE@148..149 WHITESPACE@148..149
REFERENCE_TYPE@149..159 REF_TYPE@149..159
AMP@149..150 AMP@149..150
MUT_KW@150..153 MUT_KW@150..153
WHITESPACE@153..154 WHITESPACE@153..154

View file

@ -15,7 +15,7 @@ SOURCE_FILE@0..239
LIFETIME@18..20 "\'a" LIFETIME@18..20 "\'a"
R_ANGLE@20..21 ">" R_ANGLE@20..21 ">"
WHITESPACE@21..22 " " WHITESPACE@21..22 " "
REFERENCE_TYPE@22..29 REF_TYPE@22..29
AMP@22..23 "&" AMP@22..23 "&"
LIFETIME@23..25 "\'a" LIFETIME@23..25 "\'a"
WHITESPACE@25..26 " " WHITESPACE@25..26 " "
@ -44,7 +44,7 @@ SOURCE_FILE@0..239
WHITESPACE@52..53 " " WHITESPACE@52..53 " "
TUPLE_TYPE@53..63 TUPLE_TYPE@53..63
L_PAREN@53..54 "(" L_PAREN@53..54 "("
REFERENCE_TYPE@54..61 REF_TYPE@54..61
AMP@54..55 "&" AMP@54..55 "&"
LIFETIME@55..57 "\'a" LIFETIME@55..57 "\'a"
WHITESPACE@57..58 " " WHITESPACE@57..58 " "
@ -107,12 +107,12 @@ SOURCE_FILE@0..239
LIFETIME@124..126 "\'b" LIFETIME@124..126 "\'b"
R_ANGLE@126..127 ">" R_ANGLE@126..127 ">"
WHITESPACE@127..128 " " WHITESPACE@127..128 " "
FN_POINTER_TYPE@128..148 FN_PTR_TYPE@128..148
FN_KW@128..130 "fn" FN_KW@128..130 "fn"
PARAM_LIST@130..148 PARAM_LIST@130..148
L_PAREN@130..131 "(" L_PAREN@130..131 "("
PARAM@131..138 PARAM@131..138
REFERENCE_TYPE@131..138 REF_TYPE@131..138
AMP@131..132 "&" AMP@131..132 "&"
LIFETIME@132..134 "\'a" LIFETIME@132..134 "\'a"
WHITESPACE@134..135 " " WHITESPACE@134..135 " "
@ -124,7 +124,7 @@ SOURCE_FILE@0..239
COMMA@138..139 "," COMMA@138..139 ","
WHITESPACE@139..140 " " WHITESPACE@139..140 " "
PARAM@140..147 PARAM@140..147
REFERENCE_TYPE@140..147 REF_TYPE@140..147
AMP@140..141 "&" AMP@140..141 "&"
LIFETIME@141..143 "\'b" LIFETIME@141..143 "\'b"
WHITESPACE@143..144 " " WHITESPACE@143..144 " "
@ -178,12 +178,12 @@ SOURCE_FILE@0..239
LIFETIME@200..202 "\'c" LIFETIME@200..202 "\'c"
R_ANGLE@202..203 ">" R_ANGLE@202..203 ">"
WHITESPACE@203..204 " " WHITESPACE@203..204 " "
FN_POINTER_TYPE@204..227 FN_PTR_TYPE@204..227
FN_KW@204..206 "fn" FN_KW@204..206 "fn"
PARAM_LIST@206..227 PARAM_LIST@206..227
L_PAREN@206..207 "(" L_PAREN@206..207 "("
PARAM@207..212 PARAM@207..212
REFERENCE_TYPE@207..212 REF_TYPE@207..212
AMP@207..208 "&" AMP@207..208 "&"
LIFETIME@208..210 "\'a" LIFETIME@208..210 "\'a"
WHITESPACE@210..211 " " WHITESPACE@210..211 " "
@ -195,7 +195,7 @@ SOURCE_FILE@0..239
COMMA@212..213 "," COMMA@212..213 ","
WHITESPACE@213..214 " " WHITESPACE@213..214 " "
PARAM@214..219 PARAM@214..219
REFERENCE_TYPE@214..219 REF_TYPE@214..219
AMP@214..215 "&" AMP@214..215 "&"
LIFETIME@215..217 "\'b" LIFETIME@215..217 "\'b"
WHITESPACE@217..218 " " WHITESPACE@217..218 " "
@ -207,7 +207,7 @@ SOURCE_FILE@0..239
COMMA@219..220 "," COMMA@219..220 ","
WHITESPACE@220..221 " " WHITESPACE@220..221 " "
PARAM@221..226 PARAM@221..226
REFERENCE_TYPE@221..226 REF_TYPE@221..226
AMP@221..222 "&" AMP@221..222 "&"
LIFETIME@222..224 "\'c" LIFETIME@222..224 "\'c"
WHITESPACE@224..225 " " WHITESPACE@224..225 " "

View file

@ -7,7 +7,7 @@ SOURCE_FILE@0..14
WHITESPACE@6..7 " " WHITESPACE@6..7 " "
EQ@7..8 "=" EQ@7..8 "="
WHITESPACE@8..9 " " WHITESPACE@8..9 " "
POINTER_TYPE@9..12 PTR_TYPE@9..12
STAR@9..10 "*" STAR@9..10 "*"
TUPLE_TYPE@10..12 TUPLE_TYPE@10..12
L_PAREN@10..11 "(" L_PAREN@10..11 "("

View file

@ -42,7 +42,7 @@ SOURCE_FILE@0..54
PARAM_LIST@40..49 PARAM_LIST@40..49
L_PAREN@40..41 "(" L_PAREN@40..41 "("
PARAM@41..48 PARAM@41..48
REFERENCE_TYPE@41..48 REF_TYPE@41..48
AMP@41..42 "&" AMP@41..42 "&"
LIFETIME@42..44 "\'a" LIFETIME@42..44 "\'a"
WHITESPACE@44..45 " " WHITESPACE@44..45 " "

View file

@ -31,7 +31,7 @@ SOURCE_FILE@0..39
COMMA@19..20 "," COMMA@19..20 ","
WHITESPACE@20..21 " " WHITESPACE@20..21 " "
PARAM@21..25 PARAM@21..25
REFERENCE_TYPE@21..25 REF_TYPE@21..25
AMP@21..22 "&" AMP@21..22 "&"
PATH_TYPE@22..25 PATH_TYPE@22..25
PATH@22..25 PATH@22..25
@ -41,7 +41,7 @@ SOURCE_FILE@0..39
COMMA@25..26 "," COMMA@25..26 ","
WHITESPACE@26..27 " " WHITESPACE@26..27 " "
PARAM@27..31 PARAM@27..31
REFERENCE_TYPE@27..31 REF_TYPE@27..31
AMP@27..28 "&" AMP@27..28 "&"
PATH_TYPE@28..31 PATH_TYPE@28..31
PATH@28..31 PATH@28..31

View file

@ -7,7 +7,7 @@ SOURCE_FILE@0..36
WHITESPACE@6..7 " " WHITESPACE@6..7 " "
EQ@7..8 "=" EQ@7..8 "="
WHITESPACE@8..9 " " WHITESPACE@8..9 " "
POINTER_TYPE@9..16 PTR_TYPE@9..16
STAR@9..10 "*" STAR@9..10 "*"
MUT_KW@10..13 "mut" MUT_KW@10..13 "mut"
WHITESPACE@13..14 " " WHITESPACE@13..14 " "
@ -24,7 +24,7 @@ SOURCE_FILE@0..36
WHITESPACE@24..25 " " WHITESPACE@24..25 " "
EQ@25..26 "=" EQ@25..26 "="
WHITESPACE@26..27 " " WHITESPACE@26..27 " "
POINTER_TYPE@27..34 PTR_TYPE@27..34
STAR@27..28 "*" STAR@27..28 "*"
MUT_KW@28..31 "mut" MUT_KW@28..31 "mut"
WHITESPACE@31..32 " " WHITESPACE@31..32 " "

View file

@ -22,7 +22,7 @@ SOURCE_FILE@0..69
SELF_KW@18..22 "self" SELF_KW@18..22 "self"
COLON@22..23 ":" COLON@22..23 ":"
WHITESPACE@23..24 " " WHITESPACE@23..24 " "
REFERENCE_TYPE@24..29 REF_TYPE@24..29
AMP@24..25 "&" AMP@24..25 "&"
PATH_TYPE@25..29 PATH_TYPE@25..29
PATH@25..29 PATH@25..29

View file

@ -7,7 +7,7 @@ SOURCE_FILE@0..113
WHITESPACE@6..7 " " WHITESPACE@6..7 " "
EQ@7..8 "=" EQ@7..8 "="
WHITESPACE@8..9 " " WHITESPACE@8..9 " "
FN_POINTER_TYPE@9..13 FN_PTR_TYPE@9..13
FN_KW@9..11 "fn" FN_KW@9..11 "fn"
PARAM_LIST@11..13 PARAM_LIST@11..13
L_PAREN@11..12 "(" L_PAREN@11..12 "("
@ -22,7 +22,7 @@ SOURCE_FILE@0..113
WHITESPACE@21..22 " " WHITESPACE@21..22 " "
EQ@22..23 "=" EQ@22..23 "="
WHITESPACE@23..24 " " WHITESPACE@23..24 " "
FN_POINTER_TYPE@24..35 FN_PTR_TYPE@24..35
UNSAFE_KW@24..30 "unsafe" UNSAFE_KW@24..30 "unsafe"
WHITESPACE@30..31 " " WHITESPACE@30..31 " "
FN_KW@31..33 "fn" FN_KW@31..33 "fn"
@ -39,7 +39,7 @@ SOURCE_FILE@0..113
WHITESPACE@43..44 " " WHITESPACE@43..44 " "
EQ@44..45 "=" EQ@44..45 "="
WHITESPACE@45..46 " " WHITESPACE@45..46 " "
FN_POINTER_TYPE@46..68 FN_PTR_TYPE@46..68
UNSAFE_KW@46..52 "unsafe" UNSAFE_KW@46..52 "unsafe"
WHITESPACE@52..53 " " WHITESPACE@52..53 " "
ABI@53..63 ABI@53..63
@ -61,7 +61,7 @@ SOURCE_FILE@0..113
WHITESPACE@76..77 " " WHITESPACE@76..77 " "
EQ@77..78 "=" EQ@77..78 "="
WHITESPACE@78..79 " " WHITESPACE@78..79 " "
FN_POINTER_TYPE@79..111 FN_PTR_TYPE@79..111
ABI@79..89 ABI@79..89
EXTERN_KW@79..85 "extern" EXTERN_KW@79..85 "extern"
WHITESPACE@85..86 " " WHITESPACE@85..86 " "

View file

@ -7,7 +7,7 @@ SOURCE_FILE@0..54
WHITESPACE@6..7 " " WHITESPACE@6..7 " "
EQ@7..8 "=" EQ@7..8 "="
WHITESPACE@8..9 " " WHITESPACE@8..9 " "
REFERENCE_TYPE@9..12 REF_TYPE@9..12
AMP@9..10 "&" AMP@9..10 "&"
TUPLE_TYPE@10..12 TUPLE_TYPE@10..12
L_PAREN@10..11 "(" L_PAREN@10..11 "("
@ -22,7 +22,7 @@ SOURCE_FILE@0..54
WHITESPACE@20..21 " " WHITESPACE@20..21 " "
EQ@21..22 "=" EQ@21..22 "="
WHITESPACE@22..23 " " WHITESPACE@22..23 " "
REFERENCE_TYPE@23..34 REF_TYPE@23..34
AMP@23..24 "&" AMP@23..24 "&"
LIFETIME@24..31 "\'static" LIFETIME@24..31 "\'static"
WHITESPACE@31..32 " " WHITESPACE@31..32 " "
@ -39,7 +39,7 @@ SOURCE_FILE@0..54
WHITESPACE@42..43 " " WHITESPACE@42..43 " "
EQ@43..44 "=" EQ@43..44 "="
WHITESPACE@44..45 " " WHITESPACE@44..45 " "
REFERENCE_TYPE@45..52 REF_TYPE@45..52
AMP@45..46 "&" AMP@45..46 "&"
MUT_KW@46..49 "mut" MUT_KW@46..49 "mut"
WHITESPACE@49..50 " " WHITESPACE@49..50 " "

View file

@ -21,7 +21,7 @@ SOURCE_FILE@0..35
PARAM_LIST@15..29 PARAM_LIST@15..29
L_PAREN@15..16 "(" L_PAREN@15..16 "("
PARAM@16..28 PARAM@16..28
REFERENCE_TYPE@16..28 REF_TYPE@16..28
AMP@16..17 "&" AMP@16..17 "&"
MUT_KW@17..20 "mut" MUT_KW@17..20 "mut"
WHITESPACE@20..21 " " WHITESPACE@20..21 " "

View file

@ -15,7 +15,7 @@ SOURCE_FILE@0..121
LIFETIME@13..15 "\'a" LIFETIME@13..15 "\'a"
R_ANGLE@15..16 ">" R_ANGLE@15..16 ">"
WHITESPACE@16..17 " " WHITESPACE@16..17 " "
FN_POINTER_TYPE@17..27 FN_PTR_TYPE@17..27
FN_KW@17..19 "fn" FN_KW@17..19 "fn"
PARAM_LIST@19..21 PARAM_LIST@19..21
L_PAREN@19..20 "(" L_PAREN@19..20 "("
@ -45,7 +45,7 @@ SOURCE_FILE@0..121
LIFETIME@42..44 "\'a" LIFETIME@42..44 "\'a"
R_ANGLE@44..45 ">" R_ANGLE@44..45 ">"
WHITESPACE@45..46 " " WHITESPACE@45..46 " "
FN_POINTER_TYPE@46..80 FN_PTR_TYPE@46..80
UNSAFE_KW@46..52 "unsafe" UNSAFE_KW@46..52 "unsafe"
WHITESPACE@52..53 " " WHITESPACE@52..53 " "
ABI@53..63 ABI@53..63
@ -57,7 +57,7 @@ SOURCE_FILE@0..121
PARAM_LIST@66..74 PARAM_LIST@66..74
L_PAREN@66..67 "(" L_PAREN@66..67 "("
PARAM@67..73 PARAM@67..73
REFERENCE_TYPE@67..73 REF_TYPE@67..73
AMP@67..68 "&" AMP@67..68 "&"
LIFETIME@68..70 "\'a" LIFETIME@68..70 "\'a"
WHITESPACE@70..71 " " WHITESPACE@70..71 " "
@ -98,7 +98,7 @@ SOURCE_FILE@0..121
GENERIC_ARG_LIST@110..119 GENERIC_ARG_LIST@110..119
L_ANGLE@110..111 "<" L_ANGLE@110..111 "<"
TYPE_ARG@111..118 TYPE_ARG@111..118
REFERENCE_TYPE@111..118 REF_TYPE@111..118
AMP@111..112 "&" AMP@111..112 "&"
LIFETIME@112..114 "\'a" LIFETIME@112..114 "\'a"
WHITESPACE@114..115 " " WHITESPACE@114..115 " "

View file

@ -7,7 +7,7 @@ SOURCE_FILE@0..21
WHITESPACE@6..7 " " WHITESPACE@6..7 " "
EQ@7..8 "=" EQ@7..8 "="
WHITESPACE@8..9 " " WHITESPACE@8..9 " "
FN_POINTER_TYPE@9..19 FN_PTR_TYPE@9..19
FN_KW@9..11 "fn" FN_KW@9..11 "fn"
PARAM_LIST@11..13 PARAM_LIST@11..13
L_PAREN@11..12 "(" L_PAREN@11..12 "("

View file

@ -47,7 +47,7 @@ SOURCE_FILE@0..64
UNDERSCORE@50..51 "_" UNDERSCORE@50..51 "_"
COLON@51..52 ":" COLON@51..52 ":"
WHITESPACE@52..53 " " WHITESPACE@52..53 " "
REFERENCE_TYPE@53..58 REF_TYPE@53..58
AMP@53..54 "&" AMP@53..54 "&"
LIFETIME@54..56 "\'a" LIFETIME@54..56 "\'a"
WHITESPACE@56..57 " " WHITESPACE@56..57 " "

View file

@ -21,7 +21,7 @@ SOURCE_FILE@0..57
IDENT@23..29 "format" IDENT@23..29 "format"
COLON@29..30 ":" COLON@29..30 ":"
WHITESPACE@30..31 " " WHITESPACE@30..31 " "
POINTER_TYPE@31..40 PTR_TYPE@31..40
STAR@31..32 "*" STAR@31..32 "*"
CONST_KW@32..37 "const" CONST_KW@32..37 "const"
WHITESPACE@37..38 " " WHITESPACE@37..38 " "

View file

@ -27,7 +27,7 @@ SOURCE_FILE@0..43
WHITESPACE@25..26 " " WHITESPACE@25..26 " "
AS_KW@26..28 "as" AS_KW@26..28 "as"
WHITESPACE@28..29 " " WHITESPACE@28..29 " "
POINTER_TYPE@29..39 PTR_TYPE@29..39
STAR@29..30 "*" STAR@29..30 "*"
CONST_KW@30..35 "const" CONST_KW@30..35 "const"
WHITESPACE@35..36 " " WHITESPACE@35..36 " "

View file

@ -6,7 +6,7 @@ SOURCE_FILE@0..40
IDENT@6..7 "A" IDENT@6..7 "A"
COLON@7..8 ":" COLON@7..8 ":"
WHITESPACE@8..9 " " WHITESPACE@8..9 " "
REFERENCE_TYPE@9..15 REF_TYPE@9..15
AMP@9..10 "&" AMP@9..10 "&"
SLICE_TYPE@10..15 SLICE_TYPE@10..15
L_BRACK@10..11 "[" L_BRACK@10..11 "["

View file

@ -7,7 +7,7 @@ SOURCE_FILE@0..55
WHITESPACE@8..9 " " WHITESPACE@8..9 " "
EQ@9..10 "=" EQ@9..10 "="
WHITESPACE@10..11 " " WHITESPACE@10..11 " "
FN_POINTER_TYPE@11..23 FN_PTR_TYPE@11..23
FN_KW@11..13 "fn" FN_KW@11..13 "fn"
PARAM_LIST@13..23 PARAM_LIST@13..23
L_PAREN@13..14 "(" L_PAREN@13..14 "("
@ -33,7 +33,7 @@ SOURCE_FILE@0..55
WHITESPACE@33..34 " " WHITESPACE@33..34 " "
EQ@34..35 "=" EQ@34..35 "="
WHITESPACE@35..36 " " WHITESPACE@35..36 " "
FN_POINTER_TYPE@36..53 FN_PTR_TYPE@36..53
FN_KW@36..38 "fn" FN_KW@36..38 "fn"
PARAM_LIST@38..53 PARAM_LIST@38..53
L_PAREN@38..39 "(" L_PAREN@38..39 "("

View file

@ -7,7 +7,7 @@ SOURCE_FILE@0..23
WHITESPACE@8..9 " " WHITESPACE@8..9 " "
EQ@9..10 "=" EQ@9..10 "="
WHITESPACE@10..11 " " WHITESPACE@10..11 " "
FN_POINTER_TYPE@11..21 FN_PTR_TYPE@11..21
FN_KW@11..13 "fn" FN_KW@11..13 "fn"
PARAM_LIST@13..21 PARAM_LIST@13..21
L_PAREN@13..14 "(" L_PAREN@13..14 "("

View file

@ -99,7 +99,7 @@ SOURCE_FILE@0..1598
IDENT@117..121 "addr" IDENT@117..121 "addr"
COLON@121..122 ":" COLON@121..122 ":"
WHITESPACE@122..123 " " WHITESPACE@122..123 " "
POINTER_TYPE@123..138 PTR_TYPE@123..138
STAR@123..124 "*" STAR@123..124 "*"
CONST_KW@124..129 "const" CONST_KW@124..129 "const"
WHITESPACE@129..130 " " WHITESPACE@129..130 " "
@ -164,7 +164,7 @@ SOURCE_FILE@0..1598
IDENT@204..211 "address" IDENT@204..211 "address"
COLON@211..212 ":" COLON@211..212 ":"
WHITESPACE@212..213 " " WHITESPACE@212..213 " "
POINTER_TYPE@213..228 PTR_TYPE@213..228
STAR@213..214 "*" STAR@213..214 "*"
CONST_KW@214..219 "const" CONST_KW@214..219 "const"
WHITESPACE@219..220 " " WHITESPACE@219..220 " "
@ -278,7 +278,7 @@ SOURCE_FILE@0..1598
IDENT@382..389 "address" IDENT@382..389 "address"
COLON@389..390 ":" COLON@389..390 ":"
WHITESPACE@390..391 " " WHITESPACE@390..391 " "
POINTER_TYPE@391..404 PTR_TYPE@391..404
STAR@391..392 "*" STAR@391..392 "*"
MUT_KW@392..395 "mut" MUT_KW@392..395 "mut"
WHITESPACE@395..396 " " WHITESPACE@395..396 " "
@ -295,7 +295,7 @@ SOURCE_FILE@0..1598
IDENT@429..440 "address_len" IDENT@429..440 "address_len"
COLON@440..441 ":" COLON@440..441 ":"
WHITESPACE@441..442 " " WHITESPACE@441..442 " "
POINTER_TYPE@442..456 PTR_TYPE@442..456
STAR@442..443 "*" STAR@442..443 "*"
MUT_KW@443..446 "mut" MUT_KW@443..446 "mut"
WHITESPACE@446..447 " " WHITESPACE@446..447 " "
@ -375,7 +375,7 @@ SOURCE_FILE@0..1598
IDENT@609..615 "optval" IDENT@609..615 "optval"
COLON@615..616 ":" COLON@615..616 ":"
WHITESPACE@616..617 " " WHITESPACE@616..617 " "
POINTER_TYPE@617..630 PTR_TYPE@617..630
STAR@617..618 "*" STAR@617..618 "*"
MUT_KW@618..621 "mut" MUT_KW@618..621 "mut"
WHITESPACE@621..622 " " WHITESPACE@621..622 " "
@ -393,7 +393,7 @@ SOURCE_FILE@0..1598
IDENT@654..660 "optlen" IDENT@654..660 "optlen"
COLON@660..661 ":" COLON@660..661 ":"
WHITESPACE@661..662 " " WHITESPACE@661..662 " "
POINTER_TYPE@662..678 PTR_TYPE@662..678
STAR@662..663 "*" STAR@662..663 "*"
MUT_KW@663..666 "mut" MUT_KW@663..666 "mut"
WHITESPACE@666..667 " " WHITESPACE@666..667 " "
@ -474,7 +474,7 @@ SOURCE_FILE@0..1598
IDENT@784..789 "value" IDENT@784..789 "value"
COLON@789..790 ":" COLON@789..790 ":"
WHITESPACE@790..791 " " WHITESPACE@790..791 " "
POINTER_TYPE@791..806 PTR_TYPE@791..806
STAR@791..792 "*" STAR@791..792 "*"
CONST_KW@792..797 "const" CONST_KW@792..797 "const"
WHITESPACE@797..798 " " WHITESPACE@797..798 " "
@ -540,7 +540,7 @@ SOURCE_FILE@0..1598
IDENT@905..912 "address" IDENT@905..912 "address"
COLON@912..913 ":" COLON@912..913 ":"
WHITESPACE@913..914 " " WHITESPACE@913..914 " "
POINTER_TYPE@914..927 PTR_TYPE@914..927
STAR@914..915 "*" STAR@914..915 "*"
MUT_KW@915..918 "mut" MUT_KW@915..918 "mut"
WHITESPACE@918..919 " " WHITESPACE@918..919 " "
@ -557,7 +557,7 @@ SOURCE_FILE@0..1598
IDENT@952..963 "address_len" IDENT@952..963 "address_len"
COLON@963..964 ":" COLON@963..964 ":"
WHITESPACE@964..965 " " WHITESPACE@964..965 " "
POINTER_TYPE@965..979 PTR_TYPE@965..979
STAR@965..966 "*" STAR@965..966 "*"
MUT_KW@966..969 "mut" MUT_KW@966..969 "mut"
WHITESPACE@969..970 " " WHITESPACE@969..970 " "
@ -609,7 +609,7 @@ SOURCE_FILE@0..1598
IDENT@1028..1031 "buf" IDENT@1028..1031 "buf"
COLON@1031..1032 ":" COLON@1031..1032 ":"
WHITESPACE@1032..1033 " " WHITESPACE@1032..1033 " "
POINTER_TYPE@1033..1048 PTR_TYPE@1033..1048
STAR@1033..1034 "*" STAR@1033..1034 "*"
CONST_KW@1034..1039 "const" CONST_KW@1034..1039 "const"
WHITESPACE@1039..1040 " " WHITESPACE@1039..1040 " "
@ -655,7 +655,7 @@ SOURCE_FILE@0..1598
IDENT@1099..1103 "addr" IDENT@1099..1103 "addr"
COLON@1103..1104 ":" COLON@1103..1104 ":"
WHITESPACE@1104..1105 " " WHITESPACE@1104..1105 " "
POINTER_TYPE@1105..1120 PTR_TYPE@1105..1120
STAR@1105..1106 "*" STAR@1105..1106 "*"
CONST_KW@1106..1111 "const" CONST_KW@1106..1111 "const"
WHITESPACE@1111..1112 " " WHITESPACE@1111..1112 " "
@ -720,7 +720,7 @@ SOURCE_FILE@0..1598
IDENT@1207..1210 "buf" IDENT@1207..1210 "buf"
COLON@1210..1211 ":" COLON@1210..1211 ":"
WHITESPACE@1211..1212 " " WHITESPACE@1211..1212 " "
POINTER_TYPE@1212..1227 PTR_TYPE@1212..1227
STAR@1212..1213 "*" STAR@1212..1213 "*"
CONST_KW@1213..1218 "const" CONST_KW@1213..1218 "const"
WHITESPACE@1218..1219 " " WHITESPACE@1218..1219 " "
@ -801,7 +801,7 @@ SOURCE_FILE@0..1598
IDENT@1327..1330 "buf" IDENT@1327..1330 "buf"
COLON@1330..1331 ":" COLON@1330..1331 ":"
WHITESPACE@1331..1332 " " WHITESPACE@1331..1332 " "
POINTER_TYPE@1332..1345 PTR_TYPE@1332..1345
STAR@1332..1333 "*" STAR@1332..1333 "*"
MUT_KW@1333..1336 "mut" MUT_KW@1333..1336 "mut"
WHITESPACE@1336..1337 " " WHITESPACE@1336..1337 " "
@ -847,7 +847,7 @@ SOURCE_FILE@0..1598
IDENT@1398..1402 "addr" IDENT@1398..1402 "addr"
COLON@1402..1403 ":" COLON@1402..1403 ":"
WHITESPACE@1403..1404 " " WHITESPACE@1403..1404 " "
POINTER_TYPE@1404..1419 PTR_TYPE@1404..1419
STAR@1404..1405 "*" STAR@1404..1405 "*"
MUT_KW@1405..1408 "mut" MUT_KW@1405..1408 "mut"
WHITESPACE@1408..1409 " " WHITESPACE@1408..1409 " "
@ -865,7 +865,7 @@ SOURCE_FILE@0..1598
IDENT@1441..1448 "addrlen" IDENT@1441..1448 "addrlen"
COLON@1448..1449 ":" COLON@1448..1449 ":"
WHITESPACE@1449..1450 " " WHITESPACE@1449..1450 " "
POINTER_TYPE@1450..1466 PTR_TYPE@1450..1466
STAR@1450..1451 "*" STAR@1450..1451 "*"
MUT_KW@1451..1454 "mut" MUT_KW@1451..1454 "mut"
WHITESPACE@1454..1455 " " WHITESPACE@1454..1455 " "
@ -918,7 +918,7 @@ SOURCE_FILE@0..1598
IDENT@1515..1518 "buf" IDENT@1515..1518 "buf"
COLON@1518..1519 ":" COLON@1518..1519 ":"
WHITESPACE@1519..1520 " " WHITESPACE@1519..1520 " "
POINTER_TYPE@1520..1533 PTR_TYPE@1520..1533
STAR@1520..1521 "*" STAR@1520..1521 "*"
MUT_KW@1521..1524 "mut" MUT_KW@1521..1524 "mut"
WHITESPACE@1524..1525 " " WHITESPACE@1524..1525 " "

View file

@ -242,7 +242,7 @@ SOURCE_FILE@0..3813
IDENT@649..650 "x" IDENT@649..650 "x"
COLON@650..651 ":" COLON@650..651 ":"
WHITESPACE@651..652 " " WHITESPACE@651..652 " "
REFERENCE_TYPE@652..663 REF_TYPE@652..663
AMP@652..653 "&" AMP@652..653 "&"
PATH_TYPE@653..663 PATH_TYPE@653..663
PATH@653..663 PATH@653..663
@ -1579,7 +1579,7 @@ SOURCE_FILE@0..3813
IDENT@2873..2878 "union" IDENT@2873..2878 "union"
COLON@2878..2879 ":" COLON@2878..2879 ":"
WHITESPACE@2879..2880 " " WHITESPACE@2879..2880 " "
REFERENCE_TYPE@2880..2901 REF_TYPE@2880..2901
AMP@2880..2881 "&" AMP@2880..2881 "&"
LIFETIME@2881..2887 "\'union" LIFETIME@2881..2887 "\'union"
WHITESPACE@2887..2888 " " WHITESPACE@2887..2888 " "

View file

@ -96,7 +96,7 @@ SOURCE_FILE@0..519
IDENT@87..93 "format" IDENT@87..93 "format"
COLON@93..94 ":" COLON@93..94 ":"
WHITESPACE@94..95 " " WHITESPACE@94..95 " "
POINTER_TYPE@95..104 PTR_TYPE@95..104
STAR@95..96 "*" STAR@95..96 "*"
CONST_KW@96..101 "const" CONST_KW@96..101 "const"
WHITESPACE@101..102 " " WHITESPACE@101..102 " "
@ -163,7 +163,7 @@ SOURCE_FILE@0..519
R_BRACK@152..153 "]" R_BRACK@152..153 "]"
WHITESPACE@153..154 " " WHITESPACE@153..154 " "
PARAM@154..166 PARAM@154..166
REFERENCE_TYPE@154..166 REF_TYPE@154..166
AMP@154..155 "&" AMP@154..155 "&"
MUT_KW@155..158 "mut" MUT_KW@155..158 "mut"
WHITESPACE@158..159 " " WHITESPACE@158..159 " "

View file

@ -102,7 +102,7 @@ SOURCE_FILE@0..88
PARAM_LIST@76..83 PARAM_LIST@76..83
L_PAREN@76..77 "(" L_PAREN@76..77 "("
PARAM@77..82 PARAM@77..82
REFERENCE_TYPE@77..82 REF_TYPE@77..82
AMP@77..78 "&" AMP@77..78 "&"
PATH_TYPE@78..82 PATH_TYPE@78..82
PATH@78..82 PATH@78..82

View file

@ -140,9 +140,9 @@ SOURCE_FILE@0..170
IDENT@121..122 "a" IDENT@121..122 "a"
COLON@122..123 ":" COLON@122..123 ":"
WHITESPACE@123..124 " " WHITESPACE@123..124 " "
REFERENCE_TYPE@124..131 REF_TYPE@124..131
AMP@124..125 "&" AMP@124..125 "&"
REFERENCE_TYPE@125..131 REF_TYPE@125..131
AMP@125..126 "&" AMP@125..126 "&"
PATH_TYPE@126..131 PATH_TYPE@126..131
PATH@126..131 PATH@126..131

View file

@ -20,7 +20,7 @@ SOURCE_FILE@0..126
UNDERSCORE@22..23 "_" UNDERSCORE@22..23 "_"
COLON@23..24 ":" COLON@23..24 ":"
WHITESPACE@24..25 " " WHITESPACE@24..25 " "
POINTER_TYPE@25..32 PTR_TYPE@25..32
STAR@25..26 "*" STAR@25..26 "*"
MUT_KW@26..29 "mut" MUT_KW@26..29 "mut"
WHITESPACE@29..30 " " WHITESPACE@29..30 " "
@ -49,7 +49,7 @@ SOURCE_FILE@0..126
UNDERSCORE@50..51 "_" UNDERSCORE@50..51 "_"
COLON@51..52 ":" COLON@51..52 ":"
WHITESPACE@52..53 " " WHITESPACE@52..53 " "
POINTER_TYPE@53..60 PTR_TYPE@53..60
STAR@53..54 "*" STAR@53..54 "*"
MUT_KW@54..57 "mut" MUT_KW@54..57 "mut"
WHITESPACE@57..58 " " WHITESPACE@57..58 " "
@ -81,7 +81,7 @@ SOURCE_FILE@0..126
UNDERSCORE@80..81 "_" UNDERSCORE@80..81 "_"
COLON@81..82 ":" COLON@81..82 ":"
WHITESPACE@82..83 " " WHITESPACE@82..83 " "
POINTER_TYPE@83..90 PTR_TYPE@83..90
STAR@83..84 "*" STAR@83..84 "*"
MUT_KW@84..87 "mut" MUT_KW@84..87 "mut"
WHITESPACE@87..88 " " WHITESPACE@87..88 " "

View file

@ -143,9 +143,9 @@ SOURCE_FILE@0..137
IDENT@120..121 "a" IDENT@120..121 "a"
COLON@121..122 ":" COLON@121..122 ":"
WHITESPACE@122..123 " " WHITESPACE@122..123 " "
REFERENCE_TYPE@123..130 REF_TYPE@123..130
AMP@123..124 "&" AMP@123..124 "&"
REFERENCE_TYPE@124..130 REF_TYPE@124..130
AMP@124..125 "&" AMP@124..125 "&"
PATH_TYPE@125..130 PATH_TYPE@125..130
PATH@125..130 PATH@125..130

View file

@ -42,7 +42,7 @@ SOURCE_FILE@0..374
PARAM_LIST@41..50 PARAM_LIST@41..50
L_PAREN@41..42 "(" L_PAREN@41..42 "("
PARAM@42..49 PARAM@42..49
REFERENCE_TYPE@42..49 REF_TYPE@42..49
AMP@42..43 "&" AMP@42..43 "&"
LIFETIME@43..45 "\'a" LIFETIME@43..45 "\'a"
WHITESPACE@45..46 " " WHITESPACE@45..46 " "
@ -85,7 +85,7 @@ SOURCE_FILE@0..374
LIFETIME@86..88 "\'a" LIFETIME@86..88 "\'a"
R_ANGLE@88..89 ">" R_ANGLE@88..89 ">"
WHITESPACE@89..90 " " WHITESPACE@89..90 " "
REFERENCE_TYPE@90..95 REF_TYPE@90..95
AMP@90..91 "&" AMP@90..91 "&"
LIFETIME@91..93 "\'a" LIFETIME@91..93 "\'a"
WHITESPACE@93..94 " " WHITESPACE@93..94 " "
@ -138,7 +138,7 @@ SOURCE_FILE@0..374
WHITESPACE@144..145 " " WHITESPACE@144..145 " "
PAREN_TYPE@145..152 PAREN_TYPE@145..152
L_PAREN@145..146 "(" L_PAREN@145..146 "("
REFERENCE_TYPE@146..151 REF_TYPE@146..151
AMP@146..147 "&" AMP@146..147 "&"
LIFETIME@147..149 "\'a" LIFETIME@147..149 "\'a"
WHITESPACE@149..150 " " WHITESPACE@149..150 " "
@ -160,7 +160,7 @@ SOURCE_FILE@0..374
PARAM_LIST@156..165 PARAM_LIST@156..165
L_PAREN@156..157 "(" L_PAREN@156..157 "("
PARAM@157..164 PARAM@157..164
REFERENCE_TYPE@157..164 REF_TYPE@157..164
AMP@157..158 "&" AMP@157..158 "&"
LIFETIME@158..160 "\'a" LIFETIME@158..160 "\'a"
WHITESPACE@160..161 " " WHITESPACE@160..161 " "
@ -205,7 +205,7 @@ SOURCE_FILE@0..374
WHITESPACE@206..207 " " WHITESPACE@206..207 " "
SLICE_TYPE@207..214 SLICE_TYPE@207..214
L_BRACK@207..208 "[" L_BRACK@207..208 "["
REFERENCE_TYPE@208..213 REF_TYPE@208..213
AMP@208..209 "&" AMP@208..209 "&"
LIFETIME@209..211 "\'a" LIFETIME@209..211 "\'a"
WHITESPACE@211..212 " " WHITESPACE@211..212 " "
@ -250,7 +250,7 @@ SOURCE_FILE@0..374
IDENT@240..242 "_t" IDENT@240..242 "_t"
COLON@242..243 ":" COLON@242..243 ":"
WHITESPACE@243..244 " " WHITESPACE@243..244 " "
REFERENCE_TYPE@244..246 REF_TYPE@244..246
AMP@244..245 "&" AMP@244..245 "&"
PATH_TYPE@245..246 PATH_TYPE@245..246
PATH@245..246 PATH@245..246
@ -275,7 +275,7 @@ SOURCE_FILE@0..374
PATH@266..280 PATH@266..280
PATH_SEGMENT@266..280 PATH_SEGMENT@266..280
L_ANGLE@266..267 "<" L_ANGLE@266..267 "<"
REFERENCE_TYPE@267..272 REF_TYPE@267..272
AMP@267..268 "&" AMP@267..268 "&"
LIFETIME@268..270 "\'a" LIFETIME@268..270 "\'a"
WHITESPACE@270..271 " " WHITESPACE@270..271 " "
@ -347,12 +347,12 @@ SOURCE_FILE@0..374
LIFETIME@342..344 "\'b" LIFETIME@342..344 "\'b"
R_ANGLE@344..345 ">" R_ANGLE@344..345 ">"
WHITESPACE@345..346 " " WHITESPACE@345..346 " "
FN_POINTER_TYPE@346..362 FN_PTR_TYPE@346..362
FN_KW@346..348 "fn" FN_KW@346..348 "fn"
PARAM_LIST@348..362 PARAM_LIST@348..362
L_PAREN@348..349 "(" L_PAREN@348..349 "("
PARAM@349..354 PARAM@349..354
REFERENCE_TYPE@349..354 REF_TYPE@349..354
AMP@349..350 "&" AMP@349..350 "&"
LIFETIME@350..352 "\'a" LIFETIME@350..352 "\'a"
WHITESPACE@352..353 " " WHITESPACE@352..353 " "
@ -364,7 +364,7 @@ SOURCE_FILE@0..374
COMMA@354..355 "," COMMA@354..355 ","
WHITESPACE@355..356 " " WHITESPACE@355..356 " "
PARAM@356..361 PARAM@356..361
REFERENCE_TYPE@356..361 REF_TYPE@356..361
AMP@356..357 "&" AMP@356..357 "&"
LIFETIME@357..359 "\'b" LIFETIME@357..359 "\'b"
WHITESPACE@359..360 " " WHITESPACE@359..360 " "

View file

@ -15,6 +15,6 @@ flate2 = "1.0"
pico-args = "0.3.1" pico-args = "0.3.1"
proc-macro2 = "1.0.8" proc-macro2 = "1.0.8"
quote = "1.0.2" quote = "1.0.2"
ungrammar = "0.1.0" ungrammar = "1.1.1"
walkdir = "2.3.1" walkdir = "2.3.1"
write-json = "0.1.0" write-json = "0.1.0"

View file

@ -113,12 +113,12 @@ pub(crate) const KINDS_SRC: KindsSrc = KindsSrc {
"TUPLE_TYPE", "TUPLE_TYPE",
"NEVER_TYPE", "NEVER_TYPE",
"PATH_TYPE", "PATH_TYPE",
"POINTER_TYPE", "PTR_TYPE",
"ARRAY_TYPE", "ARRAY_TYPE",
"SLICE_TYPE", "SLICE_TYPE",
"REFERENCE_TYPE", "REF_TYPE",
"INFER_TYPE", "INFER_TYPE",
"FN_POINTER_TYPE", "FN_PTR_TYPE",
"FOR_TYPE", "FOR_TYPE",
"IMPL_TRAIT_TYPE", "IMPL_TRAIT_TYPE",
"DYN_TRAIT_TYPE", "DYN_TRAIT_TYPE",

View file

@ -10,7 +10,7 @@ use std::{
use proc_macro2::{Punct, Spacing}; use proc_macro2::{Punct, Spacing};
use quote::{format_ident, quote}; use quote::{format_ident, quote};
use ungrammar::{Grammar, Rule}; use ungrammar::{rust_grammar, Grammar, Rule};
use crate::{ use crate::{
ast_src::{AstEnumSrc, AstNodeSrc, AstSrc, Cardinality, Field, KindsSrc, KINDS_SRC}, ast_src::{AstEnumSrc, AstNodeSrc, AstSrc, Cardinality, Field, KindsSrc, KINDS_SRC},
@ -19,9 +19,7 @@ use crate::{
}; };
pub fn generate_syntax(mode: Mode) -> Result<()> { pub fn generate_syntax(mode: Mode) -> Result<()> {
let grammar = include_str!("rust.ungram") let grammar = rust_grammar();
.parse::<Grammar>()
.unwrap_or_else(|err| panic!("\n \x1b[91merror\x1b[0m: {}\n", err));
let ast = lower(&grammar); let ast = lower(&grammar);
let syntax_kinds_file = project_root().join(codegen::SYNTAX_KINDS); let syntax_kinds_file = project_root().join(codegen::SYNTAX_KINDS);
@ -538,6 +536,7 @@ fn lower_enum(grammar: &Grammar, rule: &Rule) -> Option<Vec<String>> {
for alternative in alternatives { for alternative in alternatives {
match alternative { match alternative {
Rule::Node(it) => variants.push(grammar[*it].name.clone()), Rule::Node(it) => variants.push(grammar[*it].name.clone()),
Rule::Token(it) if grammar[*it].name == ";" => (),
_ => return None, _ => return None,
} }
} }
@ -591,8 +590,8 @@ fn lower_rule(acc: &mut Vec<Field>, grammar: &Grammar, label: Option<&String>, r
| "index" | "index"
| "base" | "base"
| "value" | "value"
| "target_type" | "trait"
| "target_trait" | "self_ty"
); );
if manually_implemented { if manually_implemented {
return; return;