mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-25 12:33:33 +00:00
Merge #5642
5642: Grammar updates r=matklad a=matklad bors r+ Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
This commit is contained in:
commit
cf17366df9
37 changed files with 150 additions and 151 deletions
24
Cargo.lock
generated
24
Cargo.lock
generated
|
@ -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"
|
||||||
|
|
|
@ -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())
|
||||||
|
|
|
@ -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())
|
||||||
|
|
|
@ -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
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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() => {
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 " "
|
||||||
|
|
|
@ -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 "("
|
||||||
|
|
|
@ -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 " "
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 " "
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 " "
|
||||||
|
|
|
@ -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 " "
|
||||||
|
|
|
@ -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 " "
|
||||||
|
|
|
@ -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 " "
|
||||||
|
|
|
@ -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 "("
|
||||||
|
|
|
@ -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 " "
|
||||||
|
|
|
@ -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 " "
|
||||||
|
|
|
@ -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 " "
|
||||||
|
|
|
@ -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 "["
|
||||||
|
|
|
@ -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 "("
|
||||||
|
|
|
@ -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 "("
|
||||||
|
|
|
@ -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 " "
|
||||||
|
|
|
@ -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 " "
|
||||||
|
|
|
@ -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 " "
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 " "
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 " "
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue