Remove Engine::enable_doc_comments.

This commit is contained in:
Stephen Chung 2021-05-03 13:07:51 +08:00
parent bb5dc7b637
commit aad842fe50
5 changed files with 13 additions and 51 deletions

View File

@ -4,6 +4,11 @@ Rhai Release Notes
Version 0.20.2 Version 0.20.2
============== ==============
Breaking changes
----------------
* `Engine::disable_doc_comments` is removed because doc-comments are now placed under the `metadata` feature flag.
New features New features
------------ ------------

View File

@ -804,11 +804,6 @@ pub struct Engine {
/// Max limits. /// Max limits.
#[cfg(not(feature = "unchecked"))] #[cfg(not(feature = "unchecked"))]
pub(crate) limits: Limits, pub(crate) limits: Limits,
/// Disable doc-comments?
#[cfg(not(feature = "no_function"))]
#[cfg(feature = "metadata")]
pub(crate) disable_doc_comments: bool,
} }
impl fmt::Debug for Engine { impl fmt::Debug for Engine {
@ -926,10 +921,6 @@ impl Engine {
#[cfg(not(feature = "no_object"))] #[cfg(not(feature = "no_object"))]
max_map_size: None, max_map_size: None,
}, },
#[cfg(not(feature = "no_function"))]
#[cfg(feature = "metadata")]
disable_doc_comments: false,
}; };
engine.global_namespace.set_internal(true); engine.global_namespace.set_internal(true);
@ -987,10 +978,6 @@ impl Engine {
#[cfg(not(feature = "no_object"))] #[cfg(not(feature = "no_object"))]
max_map_size: None, max_map_size: None,
}, },
#[cfg(not(feature = "no_function"))]
#[cfg(feature = "metadata")]
disable_doc_comments: false,
}; };
engine.global_namespace.set_internal(true); engine.global_namespace.set_internal(true);

View File

@ -31,16 +31,6 @@ impl Engine {
pub fn optimization_level(&self) -> crate::OptimizationLevel { pub fn optimization_level(&self) -> crate::OptimizationLevel {
self.optimization_level self.optimization_level
} }
/// _(METADATA)_ Enable/disable doc-comments for functions.
/// Exported under the `metadata` feature only.
/// Not available under `no_function`.
#[cfg(not(feature = "no_function"))]
#[cfg(feature = "metadata")]
#[inline(always)]
pub fn enable_doc_comments(&mut self, enable: bool) -> &mut Self {
self.disable_doc_comments = !enable;
self
}
/// Set the maximum levels of function calls allowed for a script in order to avoid /// Set the maximum levels of function calls allowed for a script in order to avoid
/// infinite recursion and stack overflows. /// infinite recursion and stack overflows.
/// ///

View File

@ -973,10 +973,6 @@ pub struct TokenizeState {
pub comment_level: usize, pub comment_level: usize,
/// Include comments? /// Include comments?
pub include_comments: bool, pub include_comments: bool,
/// Disable doc-comments?
#[cfg(not(feature = "no_function"))]
#[cfg(feature = "metadata")]
pub disable_doc_comments: bool,
/// Is the current tokenizer position within the text stream of an interpolated string? /// Is the current tokenizer position within the text stream of an interpolated string?
pub is_within_text_terminated_by: Option<char>, pub is_within_text_terminated_by: Option<char>,
} }
@ -1357,8 +1353,7 @@ fn get_next_token_inner(
#[cfg(not(feature = "no_function"))] #[cfg(not(feature = "no_function"))]
#[cfg(feature = "metadata")] #[cfg(feature = "metadata")]
let include_comments = let include_comments = if is_doc_comment(comment.as_ref().unwrap()) {
if !state.disable_doc_comments && is_doc_comment(comment.as_ref().unwrap()) {
true true
} else { } else {
include_comments include_comments
@ -1705,7 +1700,7 @@ fn get_next_token_inner(
let mut comment = match stream.peek_next() { let mut comment = match stream.peek_next() {
#[cfg(not(feature = "no_function"))] #[cfg(not(feature = "no_function"))]
#[cfg(feature = "metadata")] #[cfg(feature = "metadata")]
Some('/') if !state.disable_doc_comments => { Some('/') => {
eat_next(stream, pos); eat_next(stream, pos);
// Long streams of `///...` are not doc-comments // Long streams of `///...` are not doc-comments
@ -1740,7 +1735,7 @@ fn get_next_token_inner(
let mut comment = match stream.peek_next() { let mut comment = match stream.peek_next() {
#[cfg(not(feature = "no_function"))] #[cfg(not(feature = "no_function"))]
#[cfg(feature = "metadata")] #[cfg(feature = "metadata")]
Some('*') if !state.disable_doc_comments => { Some('*') => {
eat_next(stream, pos); eat_next(stream, pos);
// Long streams of `/****...` are not doc-comments // Long streams of `/****...` are not doc-comments
@ -2239,9 +2234,6 @@ impl Engine {
non_unary: false, non_unary: false,
comment_level: 0, comment_level: 0,
include_comments: false, include_comments: false,
#[cfg(not(feature = "no_function"))]
#[cfg(feature = "metadata")]
disable_doc_comments: self.disable_doc_comments,
is_within_text_terminated_by: None, is_within_text_terminated_by: None,
}, },
pos: Position::new(1, 0), pos: Position::new(1, 0),

View File

@ -30,7 +30,7 @@ fn test_comments() -> Result<(), Box<EvalAltResult>> {
#[cfg(feature = "metadata")] #[cfg(feature = "metadata")]
#[test] #[test]
fn test_comments_doc() -> Result<(), Box<EvalAltResult>> { fn test_comments_doc() -> Result<(), Box<EvalAltResult>> {
let mut engine = Engine::new(); let engine = Engine::new();
let ast = engine.compile( let ast = engine.compile(
" "
@ -89,17 +89,5 @@ fn test_comments_doc() -> Result<(), Box<EvalAltResult>> {
) )
.is_err()); .is_err());
engine.enable_doc_comments(false);
engine.compile(
"
/// Hello world!
let x = 42;
/** Hello world! */
let x = 42;
",
)?;
Ok(()) Ok(())
} }