mirror of
https://github.com/RGBCube/cstree
synced 2025-07-27 09:07:44 +00:00
[Deps] Update criterion
to v0.5 (#64)
* [Deps] update criterion to 0.5 * make clippy happy --------- Co-authored-by: Domenic Quirl <DomenicQuirl@protonmail.com>
This commit is contained in:
parent
4d1c90a56f
commit
70e9f92d3e
5 changed files with 19 additions and 14 deletions
|
@ -50,7 +50,7 @@ m_lexer = "0.0.4"
|
|||
serde_json = "1.0"
|
||||
serde_test = "1.0"
|
||||
crossbeam-utils = "0.8"
|
||||
criterion = "0.3"
|
||||
criterion = { version = "0.5.1", features = ["html_reports"] }
|
||||
|
||||
[[bench]]
|
||||
name = "main"
|
||||
|
|
|
@ -4,15 +4,15 @@
|
|||
//! to happen to go from input text to a `cstree` syntax tree:
|
||||
//!
|
||||
//! 1. Define an enumeration of the types of tokens (like keywords) and nodes (like "an expression") that you want to
|
||||
//! have in your syntax and implement [`Syntax`]
|
||||
//! have in your syntax and implement [`Syntax`]
|
||||
//!
|
||||
//! 2. Create a [`GreenNodeBuilder`](crate::build::GreenNodeBuilder) and call
|
||||
//! [`start_node`](crate::build::GreenNodeBuilder::start_node), [`token`](crate::build::GreenNodeBuilder::token) and
|
||||
//! [`finish_node`](crate::build::GreenNodeBuilder::finish_node) from your parser
|
||||
//! [`start_node`](crate::build::GreenNodeBuilder::start_node), [`token`](crate::build::GreenNodeBuilder::token) and
|
||||
//! [`finish_node`](crate::build::GreenNodeBuilder::finish_node) from your parser
|
||||
//!
|
||||
//! 3. Call [`SyntaxNode::new_root`](crate::syntax::SyntaxNode::new_root) or
|
||||
//! [`SyntaxNode::new_root_with_resolver`](crate::syntax::SyntaxNode::new_root_with_resolver) with the resulting
|
||||
//! [`GreenNode`](crate::green::GreenNode) to obtain a syntax tree that you can traverse
|
||||
//! [`SyntaxNode::new_root_with_resolver`](crate::syntax::SyntaxNode::new_root_with_resolver) with the resulting
|
||||
//! [`GreenNode`](crate::green::GreenNode) to obtain a syntax tree that you can traverse
|
||||
//!
|
||||
//! Let's walk through the motions of parsing a (very) simple language into `cstree` syntax trees.
|
||||
//! We'll just support addition and subtraction on integers, from which the user is allowed to construct a single,
|
||||
|
|
|
@ -131,7 +131,7 @@ impl PackedGreenElement {
|
|||
|
||||
pub(crate) fn into_node(self) -> Option<GreenNode> {
|
||||
if self.is_node() {
|
||||
unsafe { Some(mem::transmute(self)) }
|
||||
unsafe { Some(mem::transmute::<Self, GreenNode>(self)) }
|
||||
} else {
|
||||
None
|
||||
}
|
||||
|
@ -147,7 +147,7 @@ impl PackedGreenElement {
|
|||
|
||||
pub(crate) fn into_token(self) -> Option<GreenToken> {
|
||||
if !self.is_node() {
|
||||
unsafe { Some(mem::transmute(self)) }
|
||||
unsafe { Some(mem::transmute::<Self, GreenToken>(self)) }
|
||||
} else {
|
||||
None
|
||||
}
|
||||
|
|
|
@ -58,15 +58,15 @@
|
|||
//! to happen to go from input text to a `cstree` syntax tree:
|
||||
//!
|
||||
//! 1. Define an enumeration of the types of tokens (like keywords) and nodes (like "an expression") that you want to
|
||||
//! have in your syntax and implement [`Syntax`]
|
||||
//! have in your syntax and implement [`Syntax`]
|
||||
//!
|
||||
//! 2. Create a [`GreenNodeBuilder`](build::GreenNodeBuilder) and call
|
||||
//! [`start_node`](build::GreenNodeBuilder::start_node), [`token`](build::GreenNodeBuilder::token) and
|
||||
//! [`finish_node`](build::GreenNodeBuilder::finish_node) from your parser
|
||||
//! [`start_node`](build::GreenNodeBuilder::start_node), [`token`](build::GreenNodeBuilder::token) and
|
||||
//! [`finish_node`](build::GreenNodeBuilder::finish_node) from your parser
|
||||
//!
|
||||
//! 3. Call [`SyntaxNode::new_root`](syntax::SyntaxNode::new_root) or
|
||||
//! [`SyntaxNode::new_root_with_resolver`](syntax::SyntaxNode::new_root_with_resolver) with the resulting
|
||||
//! [`GreenNode`](green::GreenNode) to obtain a syntax tree that you can traverse
|
||||
//! [`SyntaxNode::new_root_with_resolver`](syntax::SyntaxNode::new_root_with_resolver) with the resulting
|
||||
//! [`GreenNode`](green::GreenNode) to obtain a syntax tree that you can traverse
|
||||
//!
|
||||
//! There's a full [getting started guide] that walks through each of the above steps in detail in the documentation for
|
||||
//! the `getting_started` module. The walkthrough goes through the necessary steps bit by bit and skips the lexer, but
|
||||
|
@ -86,7 +86,11 @@
|
|||
|
||||
#![forbid(missing_debug_implementations, unconditional_recursion)]
|
||||
#![deny(unsafe_code, future_incompatible)]
|
||||
#![allow(unstable_name_collisions)] // strict provenance - must come after `future_incompatible` to take precedence
|
||||
#![allow(
|
||||
unstable_name_collisions, // strict provenance - must come after `future_incompatible` to take precedence
|
||||
unexpected_cfgs, // nightly docs.rs features and `salsa-2022` feature until that is figured out
|
||||
clippy::duplicated_attributes, // interning modules
|
||||
)]
|
||||
#![warn(missing_docs)]
|
||||
// Docs.rs
|
||||
#![doc(html_root_url = "https://docs.rs/cstree/0.12.0")]
|
||||
|
|
|
@ -400,6 +400,7 @@ impl<S: Syntax, D> SyntaxNode<S, D> {
|
|||
}
|
||||
|
||||
/// Returns the data associated with this node, if any.
|
||||
#[allow(clippy::useless_asref)] // make `Arc::clone` explicit
|
||||
pub fn get_data(&self) -> Option<Arc<D>> {
|
||||
let ptr = self.data().data.read();
|
||||
(*ptr).as_ref().map(Arc::clone)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue