mirror of
https://github.com/gfx-rs/wgpu.git
synced 2024-11-24 15:54:00 +00:00
feat(wgsl-in): parse diagnostic
attrs. on fn
s
This commit is contained in:
parent
ed29b2b758
commit
92ca5a3850
@ -85,12 +85,12 @@ fn main(@builtin(position) p : vec4f) -> @location(0) vec4f {
|
|||||||
|
|
||||||
There are some limitations to keep in mind with this new functionality:
|
There are some limitations to keep in mind with this new functionality:
|
||||||
|
|
||||||
- We do not yet support `diagnostic(…)` rules in attribute position (i.e., `@diagnostic(…) fn my_func { … }`). This is being tracked in <https://github.com/gfx-rs/wgpu/issues/5320>. We expect that rules in `fn` attribute position will be relaxed shortly (see <https://github.com/gfx-rs/wgpu/pull/6353>), but the prioritization for statement positions is unclear. If you are blocked by not being able to parse `diagnostic(…)` rules in statement positions, please let us know in that issue, so we can determine how to prioritize it!
|
- We support `@diagnostic(…)` rules as `fn` attributes, but prioritization for rules in statement positions (i.e., `if (…) @diagnostic(…) { … }` is unclear. If you are blocked by not being able to parse `diagnostic(…)` rules in statement positions, please let us know in <https://github.com/gfx-rs/wgpu/issues/5320>, so we can determine how to prioritize it!
|
||||||
- Standard WGSL specifies `error`, `warning`, `info`, and `off` severity levels. These are all technically usable now! A caveat, though: warning- and info-level are only emitted to `stderr` via the `log` façade, rather than being reported through a `Result::Err` in Naga or the `CompilationInfo` interface in `wgpu{,-core}`. This will require breaking changes in Naga to fix, and is being tracked by <https://github.com/gfx-rs/wgpu/issues/6458>.
|
- Standard WGSL specifies `error`, `warning`, `info`, and `off` severity levels. These are all technically usable now! A caveat, though: warning- and info-level are only emitted to `stderr` via the `log` façade, rather than being reported through a `Result::Err` in Naga or the `CompilationInfo` interface in `wgpu{,-core}`. This will require breaking changes in Naga to fix, and is being tracked by <https://github.com/gfx-rs/wgpu/issues/6458>.
|
||||||
- Not all lints can be controlled with `diagnostic(…)` rules. In fact, only the `derivative_uniformity` triggering rule exists in the WGSL standard. That said, Naga contributors are excited to see how this level of control unlocks a new ecosystem of configurable diagnostics.
|
- Not all lints can be controlled with `diagnostic(…)` rules. In fact, only the `derivative_uniformity` triggering rule exists in the WGSL standard. That said, Naga contributors are excited to see how this level of control unlocks a new ecosystem of configurable diagnostics.
|
||||||
- Finally, `diagnostic(…)` rules are not yet emitted in WGSL output. This means that `wgsl-in` → `wgsl-out` is currently a lossy process. We felt that it was important to unblock users who needed `diagnostic(…)` rules (i.e., <https://github.com/gfx-rs/wgpu/issues/3135>) before we took significant effort to fix this (tracked in <https://github.com/gfx-rs/wgpu/issues/6496>).
|
- Finally, `diagnostic(…)` rules are not yet emitted in WGSL output. This means that `wgsl-in` → `wgsl-out` is currently a lossy process. We felt that it was important to unblock users who needed `diagnostic(…)` rules (i.e., <https://github.com/gfx-rs/wgpu/issues/3135>) before we took significant effort to fix this (tracked in <https://github.com/gfx-rs/wgpu/issues/6496>).
|
||||||
|
|
||||||
By @ErichDonGubler in [#6456](https://github.com/gfx-rs/wgpu/pull/6456), [#6148](https://github.com/gfx-rs/wgpu/pull/6148), [#6533](https://github.com/gfx-rs/wgpu/pull/6533).
|
By @ErichDonGubler in [#6456](https://github.com/gfx-rs/wgpu/pull/6456), [#6148](https://github.com/gfx-rs/wgpu/pull/6148), [#6533](https://github.com/gfx-rs/wgpu/pull/6533), [#6353](https://github.com/gfx-rs/wgpu/pull/6353).
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
|
@ -1066,6 +1066,7 @@ impl Frontend {
|
|||||||
expressions,
|
expressions,
|
||||||
named_expressions: crate::NamedExpressions::default(),
|
named_expressions: crate::NamedExpressions::default(),
|
||||||
body,
|
body,
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
'outer: for decl in declaration.overloads.iter_mut() {
|
'outer: for decl in declaration.overloads.iter_mut() {
|
||||||
|
@ -60,6 +60,7 @@ impl<I: Iterator<Item = u32>> super::Frontend<I> {
|
|||||||
),
|
),
|
||||||
named_expressions: crate::NamedExpressions::default(),
|
named_expressions: crate::NamedExpressions::default(),
|
||||||
body: crate::Block::new(),
|
body: crate::Block::new(),
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -311,6 +312,7 @@ impl<I: Iterator<Item = u32>> super::Frontend<I> {
|
|||||||
expressions: Arena::new(),
|
expressions: Arena::new(),
|
||||||
named_expressions: crate::NamedExpressions::default(),
|
named_expressions: crate::NamedExpressions::default(),
|
||||||
body: crate::Block::new(),
|
body: crate::Block::new(),
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// 1. copy the inputs from arguments to privates
|
// 1. copy the inputs from arguments to privates
|
||||||
|
@ -1284,6 +1284,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> {
|
|||||||
expressions,
|
expressions,
|
||||||
named_expressions: crate::NamedExpressions::default(),
|
named_expressions: crate::NamedExpressions::default(),
|
||||||
body: crate::Block::default(),
|
body: crate::Block::default(),
|
||||||
|
diagnostic_filter_leaf: f.diagnostic_filter_leaf,
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut typifier = Typifier::default();
|
let mut typifier = Typifier::default();
|
||||||
|
@ -133,6 +133,7 @@ pub struct Function<'a> {
|
|||||||
pub arguments: Vec<FunctionArgument<'a>>,
|
pub arguments: Vec<FunctionArgument<'a>>,
|
||||||
pub result: Option<FunctionResult<'a>>,
|
pub result: Option<FunctionResult<'a>>,
|
||||||
pub body: Block<'a>,
|
pub body: Block<'a>,
|
||||||
|
pub diagnostic_filter_leaf: Option<Handle<DiagnosticFilterNode>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
@ -2219,6 +2219,7 @@ impl Parser {
|
|||||||
fn function_decl<'a>(
|
fn function_decl<'a>(
|
||||||
&mut self,
|
&mut self,
|
||||||
lexer: &mut Lexer<'a>,
|
lexer: &mut Lexer<'a>,
|
||||||
|
diagnostic_filter_leaf: Option<Handle<DiagnosticFilterNode>>,
|
||||||
out: &mut ast::TranslationUnit<'a>,
|
out: &mut ast::TranslationUnit<'a>,
|
||||||
dependencies: &mut FastIndexSet<ast::Dependency<'a>>,
|
dependencies: &mut FastIndexSet<ast::Dependency<'a>>,
|
||||||
) -> Result<ast::Function<'a>, Error<'a>> {
|
) -> Result<ast::Function<'a>, Error<'a>> {
|
||||||
@ -2291,6 +2292,7 @@ impl Parser {
|
|||||||
arguments,
|
arguments,
|
||||||
result,
|
result,
|
||||||
body,
|
body,
|
||||||
|
diagnostic_filter_leaf,
|
||||||
};
|
};
|
||||||
|
|
||||||
// done
|
// done
|
||||||
@ -2526,13 +2528,13 @@ impl Parser {
|
|||||||
Some(ast::GlobalDeclKind::Var(var))
|
Some(ast::GlobalDeclKind::Var(var))
|
||||||
}
|
}
|
||||||
(Token::Word("fn"), _) => {
|
(Token::Word("fn"), _) => {
|
||||||
if !diagnostic_filters.is_empty() {
|
let diagnostic_filter_leaf = Self::write_diagnostic_filters(
|
||||||
return Err(Error::DiagnosticAttributeNotYetImplementedAtParseSite {
|
&mut out.diagnostic_filters,
|
||||||
site_name_plural: "functions",
|
diagnostic_filters,
|
||||||
spans: diagnostic_filters.spans().collect(),
|
out.diagnostic_filter_leaf,
|
||||||
});
|
);
|
||||||
}
|
let function =
|
||||||
let function = self.function_decl(lexer, out, &mut dependencies)?;
|
self.function_decl(lexer, diagnostic_filter_leaf, out, &mut dependencies)?;
|
||||||
Some(ast::GlobalDeclKind::Fn(ast::Function {
|
Some(ast::GlobalDeclKind::Fn(ast::Function {
|
||||||
entry_point: if let Some(stage) = stage.value {
|
entry_point: if let Some(stage) = stage.value {
|
||||||
if stage == ShaderStage::Compute && workgroup_size.value.is_none() {
|
if stage == ShaderStage::Compute && workgroup_size.value.is_none() {
|
||||||
|
@ -2121,6 +2121,14 @@ pub struct Function {
|
|||||||
pub named_expressions: NamedExpressions,
|
pub named_expressions: NamedExpressions,
|
||||||
/// Block of instructions comprising the body of the function.
|
/// Block of instructions comprising the body of the function.
|
||||||
pub body: Block,
|
pub body: Block,
|
||||||
|
/// The leaf of all diagnostic filter rules tree (stored in [`Module::diagnostic_filters`])
|
||||||
|
/// parsed on this function.
|
||||||
|
///
|
||||||
|
/// In WGSL, this corresponds to `@diagnostic(…)` attributes.
|
||||||
|
///
|
||||||
|
/// See [`DiagnosticFilterNode`] for details on how the tree is represented and used in
|
||||||
|
/// validation.
|
||||||
|
pub diagnostic_filter_leaf: Option<Handle<DiagnosticFilterNode>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The main function for a pipeline stage.
|
/// The main function for a pipeline stage.
|
||||||
|
@ -1150,7 +1150,7 @@ impl ModuleInfo {
|
|||||||
expressions: vec![ExpressionInfo::new(); fun.expressions.len()].into_boxed_slice(),
|
expressions: vec![ExpressionInfo::new(); fun.expressions.len()].into_boxed_slice(),
|
||||||
sampling: crate::FastHashSet::default(),
|
sampling: crate::FastHashSet::default(),
|
||||||
dual_source_blending: false,
|
dual_source_blending: false,
|
||||||
diagnostic_filter_leaf: module.diagnostic_filter_leaf,
|
diagnostic_filter_leaf: fun.diagnostic_filter_leaf,
|
||||||
};
|
};
|
||||||
let resolve_context =
|
let resolve_context =
|
||||||
ResolveContext::with_locals(module, &fun.local_variables, &fun.arguments);
|
ResolveContext::with_locals(module, &fun.local_variables, &fun.arguments);
|
||||||
|
@ -122,6 +122,7 @@ impl super::Validator {
|
|||||||
ref expressions,
|
ref expressions,
|
||||||
ref named_expressions,
|
ref named_expressions,
|
||||||
ref body,
|
ref body,
|
||||||
|
ref diagnostic_filter_leaf,
|
||||||
} = function;
|
} = function;
|
||||||
|
|
||||||
for arg in arguments.iter() {
|
for arg in arguments.iter() {
|
||||||
@ -165,6 +166,10 @@ impl super::Validator {
|
|||||||
|
|
||||||
Self::validate_block_handles(body, expressions, functions)?;
|
Self::validate_block_handles(body, expressions, functions)?;
|
||||||
|
|
||||||
|
if let Some(handle) = *diagnostic_filter_leaf {
|
||||||
|
handle.check_valid_for(diagnostic_filters)?;
|
||||||
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1 +1,6 @@
|
|||||||
diagnostic(off, derivative_uniformity);
|
diagnostic(off, derivative_uniformity);
|
||||||
|
|
||||||
|
fn thing() {}
|
||||||
|
|
||||||
|
@diagnostic(warning, derivative_uniformity)
|
||||||
|
fn with_diagnostic() {}
|
||||||
|
@ -923,6 +923,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("test_matrix_within_array_within_struct_accesses"),
|
name: Some("test_matrix_within_array_within_struct_accesses"),
|
||||||
@ -1527,6 +1528,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("read_from_private"),
|
name: Some("read_from_private"),
|
||||||
@ -1560,6 +1562,7 @@
|
|||||||
value: Some(1),
|
value: Some(1),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("test_arr_as_arg"),
|
name: Some("test_arr_as_arg"),
|
||||||
@ -1602,6 +1605,7 @@
|
|||||||
value: Some(2),
|
value: Some(2),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("assign_through_ptr_fn"),
|
name: Some("assign_through_ptr_fn"),
|
||||||
@ -1630,6 +1634,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("assign_array_through_ptr_fn"),
|
name: Some("assign_array_through_ptr_fn"),
|
||||||
@ -1690,6 +1695,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("fetch_arg_ptr_member"),
|
name: Some("fetch_arg_ptr_member"),
|
||||||
@ -1727,6 +1733,7 @@
|
|||||||
value: Some(2),
|
value: Some(2),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("assign_to_arg_ptr_member"),
|
name: Some("assign_to_arg_ptr_member"),
|
||||||
@ -1763,6 +1770,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("fetch_arg_ptr_array_element"),
|
name: Some("fetch_arg_ptr_array_element"),
|
||||||
@ -1800,6 +1808,7 @@
|
|||||||
value: Some(2),
|
value: Some(2),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("assign_to_arg_ptr_array_element"),
|
name: Some("assign_to_arg_ptr_array_element"),
|
||||||
@ -1836,6 +1845,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
entry_points: [
|
entry_points: [
|
||||||
@ -2138,6 +2148,7 @@
|
|||||||
value: Some(52),
|
value: Some(52),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
@ -2329,6 +2340,7 @@
|
|||||||
value: Some(31),
|
value: Some(31),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
@ -2410,6 +2422,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
@ -2473,6 +2486,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -923,6 +923,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("test_matrix_within_array_within_struct_accesses"),
|
name: Some("test_matrix_within_array_within_struct_accesses"),
|
||||||
@ -1527,6 +1528,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("read_from_private"),
|
name: Some("read_from_private"),
|
||||||
@ -1560,6 +1562,7 @@
|
|||||||
value: Some(1),
|
value: Some(1),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("test_arr_as_arg"),
|
name: Some("test_arr_as_arg"),
|
||||||
@ -1602,6 +1605,7 @@
|
|||||||
value: Some(2),
|
value: Some(2),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("assign_through_ptr_fn"),
|
name: Some("assign_through_ptr_fn"),
|
||||||
@ -1630,6 +1634,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("assign_array_through_ptr_fn"),
|
name: Some("assign_array_through_ptr_fn"),
|
||||||
@ -1690,6 +1695,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("fetch_arg_ptr_member"),
|
name: Some("fetch_arg_ptr_member"),
|
||||||
@ -1727,6 +1733,7 @@
|
|||||||
value: Some(2),
|
value: Some(2),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("assign_to_arg_ptr_member"),
|
name: Some("assign_to_arg_ptr_member"),
|
||||||
@ -1763,6 +1770,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("fetch_arg_ptr_array_element"),
|
name: Some("fetch_arg_ptr_array_element"),
|
||||||
@ -1800,6 +1808,7 @@
|
|||||||
value: Some(2),
|
value: Some(2),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("assign_to_arg_ptr_array_element"),
|
name: Some("assign_to_arg_ptr_array_element"),
|
||||||
@ -1836,6 +1845,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
entry_points: [
|
entry_points: [
|
||||||
@ -2138,6 +2148,7 @@
|
|||||||
value: Some(52),
|
value: Some(52),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
@ -2329,6 +2340,7 @@
|
|||||||
value: Some(31),
|
value: Some(31),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
@ -2410,6 +2422,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
@ -2473,6 +2486,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -254,6 +254,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
entry_points: [
|
entry_points: [
|
||||||
@ -276,6 +277,7 @@
|
|||||||
result: None,
|
result: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -279,6 +279,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
entry_points: [
|
entry_points: [
|
||||||
@ -301,6 +302,7 @@
|
|||||||
result: None,
|
result: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -248,6 +248,7 @@
|
|||||||
value: Some(23),
|
value: Some(23),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
entry_points: [
|
entry_points: [
|
||||||
@ -327,6 +328,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -248,6 +248,7 @@
|
|||||||
value: Some(23),
|
value: Some(23),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
entry_points: [
|
entry_points: [
|
||||||
@ -327,6 +328,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -48,6 +48,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
entry_points: [],
|
entry_points: [],
|
||||||
|
@ -48,6 +48,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
entry_points: [],
|
entry_points: [],
|
||||||
|
@ -9,7 +9,36 @@
|
|||||||
overrides: [],
|
overrides: [],
|
||||||
global_variables: [],
|
global_variables: [],
|
||||||
global_expressions: [],
|
global_expressions: [],
|
||||||
functions: [],
|
functions: [
|
||||||
|
(
|
||||||
|
name: Some("thing"),
|
||||||
|
arguments: [],
|
||||||
|
result: None,
|
||||||
|
local_variables: [],
|
||||||
|
expressions: [],
|
||||||
|
named_expressions: {},
|
||||||
|
body: [
|
||||||
|
Return(
|
||||||
|
value: None,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
diagnostic_filter_leaf: Some(0),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: Some("with_diagnostic"),
|
||||||
|
arguments: [],
|
||||||
|
result: None,
|
||||||
|
local_variables: [],
|
||||||
|
expressions: [],
|
||||||
|
named_expressions: {},
|
||||||
|
body: [
|
||||||
|
Return(
|
||||||
|
value: None,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
diagnostic_filter_leaf: Some(1),
|
||||||
|
),
|
||||||
|
],
|
||||||
entry_points: [],
|
entry_points: [],
|
||||||
diagnostic_filters: [
|
diagnostic_filters: [
|
||||||
(
|
(
|
||||||
@ -19,6 +48,13 @@
|
|||||||
),
|
),
|
||||||
parent: None,
|
parent: None,
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
inner: (
|
||||||
|
new_severity: Warning,
|
||||||
|
triggering_rule: DerivativeUniformity,
|
||||||
|
),
|
||||||
|
parent: Some(0),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
diagnostic_filter_leaf: Some(0),
|
diagnostic_filter_leaf: Some(0),
|
||||||
)
|
)
|
@ -9,7 +9,36 @@
|
|||||||
overrides: [],
|
overrides: [],
|
||||||
global_variables: [],
|
global_variables: [],
|
||||||
global_expressions: [],
|
global_expressions: [],
|
||||||
functions: [],
|
functions: [
|
||||||
|
(
|
||||||
|
name: Some("thing"),
|
||||||
|
arguments: [],
|
||||||
|
result: None,
|
||||||
|
local_variables: [],
|
||||||
|
expressions: [],
|
||||||
|
named_expressions: {},
|
||||||
|
body: [
|
||||||
|
Return(
|
||||||
|
value: None,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
diagnostic_filter_leaf: Some(0),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: Some("with_diagnostic"),
|
||||||
|
arguments: [],
|
||||||
|
result: None,
|
||||||
|
local_variables: [],
|
||||||
|
expressions: [],
|
||||||
|
named_expressions: {},
|
||||||
|
body: [
|
||||||
|
Return(
|
||||||
|
value: None,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
diagnostic_filter_leaf: Some(1),
|
||||||
|
),
|
||||||
|
],
|
||||||
entry_points: [],
|
entry_points: [],
|
||||||
diagnostic_filters: [
|
diagnostic_filters: [
|
||||||
(
|
(
|
||||||
@ -19,6 +48,13 @@
|
|||||||
),
|
),
|
||||||
parent: None,
|
parent: None,
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
inner: (
|
||||||
|
new_severity: Warning,
|
||||||
|
triggering_rule: DerivativeUniformity,
|
||||||
|
),
|
||||||
|
parent: Some(0),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
diagnostic_filter_leaf: Some(0),
|
diagnostic_filter_leaf: Some(0),
|
||||||
)
|
)
|
@ -167,6 +167,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
entry_points: [
|
entry_points: [
|
||||||
@ -189,6 +190,7 @@
|
|||||||
result: None,
|
result: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -237,6 +237,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
entry_points: [
|
entry_points: [
|
||||||
@ -259,6 +260,7 @@
|
|||||||
result: None,
|
result: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -127,6 +127,7 @@
|
|||||||
value: Some(2),
|
value: Some(2),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("index_let_array"),
|
name: Some("index_let_array"),
|
||||||
@ -214,6 +215,7 @@
|
|||||||
value: Some(10),
|
value: Some(10),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("index_let_matrix"),
|
name: Some("index_let_matrix"),
|
||||||
@ -289,6 +291,7 @@
|
|||||||
value: Some(10),
|
value: Some(10),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
entry_points: [
|
entry_points: [
|
||||||
@ -366,6 +369,7 @@
|
|||||||
value: Some(9),
|
value: Some(9),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -127,6 +127,7 @@
|
|||||||
value: Some(2),
|
value: Some(2),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("index_let_array"),
|
name: Some("index_let_array"),
|
||||||
@ -214,6 +215,7 @@
|
|||||||
value: Some(10),
|
value: Some(10),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("index_let_matrix"),
|
name: Some("index_let_matrix"),
|
||||||
@ -289,6 +291,7 @@
|
|||||||
value: Some(10),
|
value: Some(10),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
entry_points: [
|
entry_points: [
|
||||||
@ -366,6 +369,7 @@
|
|||||||
value: Some(9),
|
value: Some(9),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -133,6 +133,7 @@
|
|||||||
end: 5,
|
end: 5,
|
||||||
)),
|
)),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
entry_points: [],
|
entry_points: [],
|
||||||
|
@ -133,6 +133,7 @@
|
|||||||
end: 5,
|
end: 5,
|
||||||
)),
|
)),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
entry_points: [],
|
entry_points: [],
|
||||||
|
@ -122,6 +122,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -122,6 +122,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -253,6 +253,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -253,6 +253,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -193,6 +193,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -193,6 +193,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -540,6 +540,7 @@
|
|||||||
value: Some(34),
|
value: Some(34),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("fs_main"),
|
name: Some("fs_main"),
|
||||||
@ -948,6 +949,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
entry_points: [
|
entry_points: [
|
||||||
@ -1023,6 +1025,7 @@
|
|||||||
value: Some(5),
|
value: Some(5),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -795,6 +795,7 @@
|
|||||||
value: Some(70),
|
value: Some(70),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
name: Some("fs_main"),
|
name: Some("fs_main"),
|
||||||
@ -1226,6 +1227,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
entry_points: [
|
entry_points: [
|
||||||
@ -1301,6 +1303,7 @@
|
|||||||
value: Some(5),
|
value: Some(5),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -486,6 +486,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
entry_points: [
|
entry_points: [
|
||||||
@ -606,6 +607,7 @@
|
|||||||
value: Some(14),
|
value: Some(14),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -592,6 +592,7 @@
|
|||||||
value: None,
|
value: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
entry_points: [
|
entry_points: [
|
||||||
@ -712,6 +713,7 @@
|
|||||||
value: Some(14),
|
value: Some(14),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
diagnostic_filter_leaf: None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
Loading…
Reference in New Issue
Block a user