SYMBOL INDEX (1364 symbols across 72 files) FILE: circom_algebra/src/modular_arithmetic.rs type ArithmeticError (line 4) | pub enum ArithmeticError { function modulus (line 9) | fn modulus(a: &BigInt, b: &BigInt) -> BigInt { function bit_representation (line 14) | fn bit_representation(elem: &BigInt) -> (Sign, Vec) { function mask (line 18) | fn mask(field: &BigInt) -> BigInt { function add (line 26) | pub fn add(left: &BigInt, right: &BigInt, field: &BigInt) -> BigInt { function mul (line 31) | pub fn mul(left: &BigInt, right: &BigInt, field: &BigInt) -> BigInt { function sub (line 36) | pub fn sub(left: &BigInt, right: &BigInt, field: &BigInt) -> BigInt { function div (line 41) | pub fn div(left: &BigInt, right: &BigInt, field: &BigInt) -> Result Result Result BigInt { function prefix_sub (line 64) | pub fn prefix_sub(elem: &BigInt, field: &BigInt) -> BigInt { function complement_256 (line 72) | pub fn complement_256(elem: &BigInt, field: &BigInt) -> BigInt { function shift_l (line 87) | pub fn shift_l(left: &BigInt, right: &BigInt, field: &BigInt) -> Result<... function shift_r (line 98) | pub fn shift_r(left: &BigInt, right: &BigInt, field: &BigInt) -> Result<... function bit_or (line 109) | pub fn bit_or(left: &BigInt, right: &BigInt, field: &BigInt) -> BigInt { function bit_and (line 112) | pub fn bit_and(left: &BigInt, right: &BigInt, field: &BigInt) -> BigInt { function bit_xor (line 115) | pub fn bit_xor(left: &BigInt, right: &BigInt, field: &BigInt) -> BigInt { function constant_true (line 120) | fn constant_true() -> BigInt { function constant_false (line 123) | fn constant_false() -> BigInt { function val (line 126) | fn val(elem: &BigInt, field: &BigInt) -> BigInt { function comparable_element (line 134) | fn comparable_element(elem: &BigInt, field: &BigInt) -> BigInt { function normalize (line 137) | fn normalize(elem: &BigInt, field: &BigInt) -> BigInt { function as_bool (line 146) | pub fn as_bool(elem: &BigInt, field: &BigInt) -> bool { function not (line 149) | pub fn not(elem: &BigInt, field: &BigInt) -> BigInt { function bool_or (line 152) | pub fn bool_or(left: &BigInt, right: &BigInt, field: &BigInt) -> BigInt { function bool_and (line 155) | pub fn bool_and(left: &BigInt, right: &BigInt, field: &BigInt) -> BigInt { function eq (line 158) | pub fn eq(left: &BigInt, right: &BigInt, field: &BigInt) -> BigInt { function lesser (line 167) | pub fn lesser(left: &BigInt, right: &BigInt, field: &BigInt) -> BigInt { function not_eq (line 176) | pub fn not_eq(left: &BigInt, right: &BigInt, field: &BigInt) -> BigInt { function lesser_eq (line 179) | pub fn lesser_eq(left: &BigInt, right: &BigInt, field: &BigInt) -> BigInt { function greater (line 182) | pub fn greater(left: &BigInt, right: &BigInt, field: &BigInt) -> BigInt { function greater_eq (line 185) | pub fn greater_eq(left: &BigInt, right: &BigInt, field: &BigInt) -> BigI... constant FIELD (line 192) | const FIELD: &str = "257"; function mod_check (line 194) | fn mod_check() { function comparison_check (line 201) | fn comparison_check() { function mod_operation_check (line 210) | fn mod_operation_check() { function complement_of_complement_is_the_original_test (line 222) | fn complement_of_complement_is_the_original_test() { function lesser_eq_test (line 233) | fn lesser_eq_test() { FILE: cli/src/main.rs type Cli (line 18) | struct Cli { function cli_styles (line 49) | fn cli_styles() -> clap::builder::Styles { function filter_by_file (line 61) | fn filter_by_file(report: &Report, user_inputs: &HashSet) -> bool { function filter_by_level (line 67) | fn filter_by_level(report: &Report, output_level: &MessageCategory) -> b... function filter_by_id (line 72) | fn filter_by_id(report: &Report, allow_list: &[String]) -> bool { function main (line 76) | fn main() -> ExitCode { FILE: parser/build.rs function main (line 3) | fn main() { FILE: parser/src/errors.rs type UnclosedCommentError (line 6) | pub struct UnclosedCommentError { method into_report (line 12) | pub fn into_report(self) -> Report { type ParsingError (line 19) | pub struct ParsingError { method into_report (line 26) | pub fn into_report(self) -> Report { type FileOsError (line 37) | pub struct FileOsError { method into_report (line 41) | pub fn into_report(self) -> Report { type IncludeError (line 46) | pub struct IncludeError { method into_report (line 52) | pub fn into_report(self) -> Report { type MultipleMainError (line 62) | pub struct MultipleMainError; method produce_report (line 64) | pub fn produce_report() -> Report { type CompilerVersionError (line 72) | pub struct CompilerVersionError { method into_report (line 78) | pub fn into_report(self) -> Report { type NoCompilerVersionWarning (line 89) | pub struct NoCompilerVersionWarning { method produce_report (line 94) | pub fn produce_report(error: Self) -> Report { type AnonymousComponentError (line 106) | pub struct AnonymousComponentError { method new (line 113) | pub fn new(meta: Option<&Meta>, message: &str, primary: Option<&str>) ... method into_report (line 121) | pub fn into_report(self) -> Report { method boxed_report (line 130) | pub fn boxed_report(meta: &Meta, message: &str) -> Box { type TupleError (line 135) | pub struct TupleError { method new (line 142) | pub fn new(meta: Option<&Meta>, message: &str, primary: Option<&str>) ... method into_report (line 150) | pub fn into_report(self) -> Report { method boxed_report (line 159) | pub fn boxed_report(meta: &Meta, message: &str) -> Box { function version_string (line 164) | fn version_string(version: &Version) -> String { FILE: parser/src/include_logic.rs type FileStack (line 13) | pub struct FileStack { method new (line 28) | pub fn new(paths: &[PathBuf], libs: &[PathBuf], reports: &mut ReportCo... method add_libraries (line 43) | fn add_libraries(&mut self, libs: &[PathBuf], reports: &mut ReportColl... method add_files (line 63) | fn add_files(&mut self, paths: &[PathBuf], reports: &mut ReportCollect... method add_include (line 87) | pub fn add_include(&mut self, include: &Include) -> Result<(), Box Result<(), Box Option { method is_user_input (line 160) | pub fn is_user_input(&self, path: &PathBuf) -> bool { type Library (line 22) | struct Library { FILE: parser/src/lib.rs type ParseResult (line 32) | pub enum ParseResult { function parse_files (line 39) | pub fn parse_files( function parse_file (line 136) | pub fn parse_file( function open_file (line 163) | fn open_file(file_path: &PathBuf) -> Result<(String, String), Box Result Result> { function parse_string (line 114) | pub fn parse_string(src: &str) -> Option { function parse_definition (line 122) | pub fn parse_definition(src: &str) -> Option { function format_expected (line 130) | fn format_expected(tokens: &[String]) -> String { function test_parse_string (line 157) | fn test_parse_string() { FILE: parser/src/syntax_sugar_remover.rs function remove_syntactic_sugar (line 20) | pub(crate) fn remove_syntactic_sugar( function remove_anonymous_from_statement (line 90) | fn remove_anonymous_from_statement( function remove_anonymous_from_expression (line 309) | fn remove_anonymous_from_expression( function separate_declarations_in_comp_var_subs (line 570) | fn separate_declarations_in_comp_var_subs( function remove_tuples_from_statement (line 594) | fn remove_tuples_from_statement(stmt: Statement) -> Result) -> Vec Result (HashMap, File... FILE: parser/src/syntax_sugar_traits.rs type ContainsExpression (line 6) | pub(crate) trait ContainsExpression { method contains_expr (line 10) | fn contains_expr( method contains_tuple (line 18) | fn contains_tuple(&self, reports: Option<&mut ReportCollection>) -> bo... method contains_anonymous_component (line 40) | fn contains_anonymous_component(&self, reports: Option<&mut ReportColl... method contains_expr (line 62) | fn contains_expr( method contains_expr (line 130) | fn contains_expr( FILE: program_analysis/src/analysis_context.rs type AnalysisError (line 10) | pub enum AnalysisError { type AnalysisContext (line 34) | pub trait AnalysisContext { method is_function (line 38) | fn is_function(&self, name: &str) -> bool; method is_template (line 43) | fn is_template(&self, name: &str) -> bool; method function (line 46) | fn function(&mut self, name: &str) -> Result<&Cfg, AnalysisError>; method template (line 49) | fn template(&mut self, name: &str) -> Result<&Cfg, AnalysisError>; method underlying_str (line 52) | fn underlying_str( FILE: program_analysis/src/analysis_runner.rs type CfgCache (line 25) | type CfgCache = HashMap; type ReportCache (line 26) | type ReportCache = HashMap; type AnalysisRunner (line 31) | pub struct AnalysisRunner { method new (line 51) | pub fn new(curve: Curve) -> Self { method with_libraries (line 55) | pub fn with_libraries(mut self, libraries: &[PathBuf]) -> Self { method with_files (line 60) | pub fn with_files(mut self, input_files: &[PathBuf]) -> (Self, ReportC... method with_src (line 81) | pub fn with_src(mut self, file_contents: &[&str]) -> Self { method file_library (line 99) | pub fn file_library(&self) -> &FileLibrary { method template_names (line 103) | pub fn template_names(&self, user_input_only: bool) -> Vec { method function_names (line 118) | pub fn function_names(&self, user_input_only: bool) -> Vec { method analyze_template (line 133) | fn analyze_template(&mut self, name: &str... method analyze_templates (line 153) | pub fn analyze_templates( method analyze_function (line 163) | fn analyze_function(&mut self, name: &str... method analyze_functions (line 183) | pub fn analyze_functions( method append_template_reports (line 195) | fn append_template_reports(&mut self, name: &str, reports: &mut Report... method take_template_reports (line 201) | fn take_template_reports(&mut self, name: &str) -> ReportCollection { method append_function_reports (line 207) | fn append_function_reports(&mut self, name: &str, reports: &mut Report... method take_function_reports (line 213) | fn take_function_reports(&mut self, name: &str) -> ReportCollection { method cache_template (line 217) | fn cache_template(&mut self, name: &str) -> Result<&Cfg, AnalysisError> { method cache_function (line 243) | fn cache_function(&mut self, name: &str) -> Result<&Cfg, AnalysisError> { method take_template (line 269) | pub fn take_template(&mut self, name: &str) -> Result Result bool { method replace_function (line 285) | pub fn replace_function(&mut self, name: &str, cfg: Cfg) -> bool { method is_template (line 291) | fn is_template(&self, name: &str) -> bool { method is_function (line 295) | fn is_function(&self, name: &str) -> bool { method template (line 299) | fn template(&mut self, name: &str) -> Result<&Cfg, AnalysisError> { method function (line 303) | fn function(&mut self, name: &str) -> Result<&Cfg, AnalysisError> { method underlying_str (line 307) | fn underlying_str( function generate_cfg (line 326) | fn generate_cfg( function test_function (line 344) | fn test_function() { function test_template (line 373) | fn test_template() { function test_underlying_str (line 404) | fn test_underlying_str() { FILE: program_analysis/src/bitwise_complement.rs type BitwiseComplementWarning (line 9) | pub struct BitwiseComplementWarning { method into_report (line 15) | pub fn into_report(self) -> Report { function find_bitwise_complement (line 34) | pub fn find_bitwise_complement(cfg: &Cfg) -> ReportCollection { function visit_statement (line 46) | fn visit_statement(stmt: &Statement, reports: &mut ReportCollection) { function visit_expression (line 73) | fn visit_expression(expr: &Expression, reports: &mut ReportCollection) { function build_report (line 121) | fn build_report(meta: &Meta) -> Report { function test_bitwise_complement (line 134) | fn test_bitwise_complement() { function validate_reports (line 150) | fn validate_reports(src: &str, expected_len: usize) { FILE: program_analysis/src/bn254_specific_circuit.rs constant PROBLEMATIC_GOLDILOCK_TEMPLATES (line 12) | const PROBLEMATIC_GOLDILOCK_TEMPLATES: [&str; 26] = [ constant PROBLEMATIC_BLS12_381_TEMPLATES (line 41) | const PROBLEMATIC_BLS12_381_TEMPLATES: [&str; 13] = [ type Bn254SpecificCircuitWarning (line 57) | pub struct Bn254SpecificCircuitWarning { method into_report (line 64) | pub fn into_report(self) -> Report { function find_bn254_specific_circuits (line 117) | pub fn find_bn254_specific_circuits(cfg: &Cfg) -> ReportCollection { function visit_statement (line 137) | fn visit_statement( function build_report (line 162) | fn build_report(meta: &Meta, name: &str) -> Report { function test_num2bits_strict (line 179) | fn test_num2bits_strict() { function validate_reports (line 209) | fn validate_reports(src: &str, expected_len: usize) { FILE: program_analysis/src/config.rs constant COMPILER_VERSION (line 3) | pub const COMPILER_VERSION: Version = (2, 1, 4); constant DEFAULT_LEVEL (line 4) | pub const DEFAULT_LEVEL: &str = "WARNING"; constant DEFAULT_CURVE (line 5) | pub const DEFAULT_CURVE: &str = "BN254"; FILE: program_analysis/src/constant_conditional.rs type ConstantBranchConditionWarning (line 10) | pub struct ConstantBranchConditionWarning { method into_report (line 17) | pub fn into_report(self) -> Report { function find_constant_conditional_statement (line 35) | pub fn find_constant_conditional_statement(cfg: &Cfg) -> ReportCollection { function visit_statement (line 47) | fn visit_statement(stmt: &Statement, reports: &mut ReportCollection) { function build_report (line 58) | fn build_report(meta: &Meta, value: bool) -> Report { function test_constant_conditional (line 75) | fn test_constant_conditional() { function validate_reports (line 105) | fn validate_reports(src: &str, expected_len: usize) { FILE: program_analysis/src/constraint_analysis.rs type ConstraintAnalysis (line 14) | pub struct ConstraintAnalysis { method new (line 21) | fn new() -> ConstraintAnalysis { method add_definition (line 26) | fn add_definition(&mut self, var: &VariableUse) { method get_definition (line 42) | pub fn get_definition(&self, var: &VariableName) -> Option { method definitions (line 46) | pub fn definitions(&self) -> impl Iterator { method add_declaration (line 51) | fn add_declaration(&mut self, var: &VariableUse) { method get_declaration (line 56) | pub fn get_declaration(&self, var: &VariableName) -> Option impl Iterator { method add_constraint_step (line 65) | fn add_constraint_step(&mut self, source: &VariableName, sink: &Variab... method single_step_constraint (line 71) | pub fn single_step_constraint(&self, source: &VariableName) -> HashSet... method multi_step_constraint (line 76) | pub fn multi_step_constraint(&self, source: &VariableName) -> HashSet<... method constrains_any (line 87) | pub fn constrains_any(&self, source: &VariableName, sinks: &HashSet HashSet { function run_constraint_analysis (line 98) | pub fn run_constraint_analysis(cfg: &Cfg) -> ConstraintAnalysis { function test_single_step_constraint (line 149) | fn test_single_step_constraint() { function validate_constraints (line 189) | fn validate_constraints(src: &str, sources: &[VariableName], sinks: &[us... FILE: program_analysis/src/definition_complexity.rs type TooManyArgumentsWarning (line 6) | pub struct TooManyArgumentsWarning { method into_report (line 14) | pub fn into_report(self) -> Report { type CyclomaticComplexityWarning (line 33) | pub struct CyclomaticComplexityWarning { method into_report (line 39) | pub fn into_report(self) -> Report { constant MAX_NOF_PARAMETERS (line 51) | const MAX_NOF_PARAMETERS: usize = 7; constant MAX_CYCLOMATIC_COMPLEXITY (line 52) | const MAX_CYCLOMATIC_COMPLEXITY: usize = 20; function run_complexity_analysis (line 54) | pub fn run_complexity_analysis(cfg: &Cfg) -> ReportCollection { function test_small_template (line 100) | fn test_small_template() { function validate_reports (line 111) | fn validate_reports(src: &str, expected_len: usize) { FILE: program_analysis/src/field_arithmetic.rs type FieldElementArithmeticWarning (line 9) | pub struct FieldElementArithmeticWarning { method into_report (line 15) | pub fn into_report(self) -> Report { function find_field_element_arithmetic (line 35) | pub fn find_field_element_arithmetic(cfg: &Cfg) -> ReportCollection { function visit_statement (line 47) | fn visit_statement(stmt: &Statement, reports: &mut ReportCollection) { function visit_expression (line 74) | fn visit_expression(expr: &Expression, reports: &mut ReportCollection) { function is_arithmetic_infix_op (line 121) | fn is_arithmetic_infix_op(op: &ExpressionInfixOpcode) -> bool { function may_overflow (line 129) | fn may_overflow(op: &ExpressionInfixOpcode) -> bool { function build_report (line 135) | fn build_report(meta: &Meta) -> Report { function test_field_arithmetic (line 148) | fn test_field_arithmetic() { function validate_reports (line 159) | fn validate_reports(src: &str, expected_len: usize) { FILE: program_analysis/src/field_comparisons.rs type FieldElementComparisonWarning (line 9) | pub struct FieldElementComparisonWarning { method into_report (line 15) | pub fn into_report(self) -> Report { function find_field_element_comparisons (line 44) | pub fn find_field_element_comparisons(cfg: &Cfg) -> ReportCollection { function visit_statement (line 56) | fn visit_statement(stmt: &Statement, reports: &mut ReportCollection) { function visit_expression (line 83) | fn visit_expression(expr: &Expression, reports: &mut ReportCollection) { function is_comparison_op (line 130) | fn is_comparison_op(op: &ExpressionInfixOpcode) -> bool { function build_report (line 135) | fn build_report(meta: &Meta) -> Report { function test_field_comparisons (line 148) | fn test_field_comparisons() { function validate_reports (line 165) | fn validate_reports(src: &str, expected_len: usize) { FILE: program_analysis/src/lib.rs type AnalysisPass (line 33) | type AnalysisPass = dyn Fn(&mut dyn AnalysisContext, &Cfg) -> ReportColl... function get_analysis_passes (line 35) | pub fn get_analysis_passes() -> Vec> { FILE: program_analysis/src/nonstrict_binary_conversion.rs type NonStrictBinaryConversionWarning (line 12) | pub enum NonStrictBinaryConversionWarning { method into_report (line 18) | pub fn into_report(self) -> Report { function find_nonstrict_binary_conversion (line 64) | pub fn find_nonstrict_binary_conversion(cfg: &Cfg) -> ReportCollection { function visit_statement (line 86) | fn visit_statement(stmt: &Statement, prime_size: &BigInt, reports: &mut ... function build_num2bits (line 129) | fn build_num2bits(meta: &Meta) -> Report { function build_bits2num (line 137) | fn build_bits2num(meta: &Meta) -> Report { function test_nonstrict_num2bits (line 153) | fn test_nonstrict_num2bits() { function validate_reports (line 184) | fn validate_reports(src: &str, expected_len: usize) { FILE: program_analysis/src/side_effect_analysis.rs type UnusedVariableWarning (line 16) | pub struct UnusedVariableWarning { method into_report (line 21) | pub fn into_report(self) -> Report { type UnconstrainedSignalWarning (line 39) | pub struct UnconstrainedSignalWarning { method into_report (line 47) | pub fn into_report(self) -> Report { type UnusedSignalWarning (line 82) | pub struct UnusedSignalWarning { method into_report (line 90) | pub fn into_report(self) -> Report { type UnusedParameterWarning (line 125) | pub struct UnusedParameterWarning { method into_report (line 131) | pub fn into_report(self) -> Report { type VariableWithoutSideEffectsWarning (line 151) | pub struct VariableWithoutSideEffectsWarning { method into_report (line 157) | pub fn into_report(self) -> Report { type ParamWithoutSideEffectsWarning (line 184) | pub struct ParamWithoutSideEffectsWarning { method into_report (line 190) | pub fn into_report(self) -> Report { function run_side_effect_analysis (line 228) | pub fn run_side_effect_analysis(cfg: &Cfg) -> ReportCollection { function build_unused_variable (line 383) | fn build_unused_variable(definition: &VariableUse) -> Report { function build_unused_param (line 387) | fn build_unused_param(definition: &VariableUse, cfg_name: &str) -> Report { function build_unused_signal (line 392) | fn build_unused_signal(declaration: &Declaration) -> Report { function build_unconstrained_signal (line 402) | fn build_unconstrained_signal(declaration: &Declaration) -> Report { function build_variable_without_side_effect (line 412) | fn build_variable_without_side_effect( function build_param_without_side_effect (line 420) | fn build_param_without_side_effect(definition: &VariableUse, cfg_type: &... function dimensions_to_string (line 425) | fn dimensions_to_string(dimensions: &[Expression]) -> String { function test_side_effect_analysis (line 442) | fn test_side_effect_analysis() { function validate_reports (line 558) | fn validate_reports(src: &str, expected_len: usize) { FILE: program_analysis/src/signal_assignments.rs type SignalAssignmentWarning (line 12) | pub struct SignalAssignmentWarning { method into_report (line 20) | pub fn into_report(self) -> Report { type UnecessarySignalAssignmentWarning (line 63) | pub struct UnecessarySignalAssignmentWarning { method into_report (line 70) | pub fn into_report(self) -> Report { type AssignmentSet (line 96) | type AssignmentSet = HashSet; type Assignment (line 99) | struct Assignment { method new (line 107) | fn new( method is_quadratic (line 121) | fn is_quadratic(&self) -> bool { type ConstraintSet (line 130) | type ConstraintSet = HashSet; type Constraint (line 133) | struct Constraint { method new (line 140) | fn new(meta: &Meta, lhe: &Expression, rhe: &Expression) -> Constraint { type SignalUse (line 148) | struct SignalUse { method new (line 155) | fn new() -> SignalUse { method add_assignment (line 160) | fn add_assignment( method add_constraint (line 172) | fn add_constraint(&mut self, lhe: &Expression, rhe: &Expression, meta:... method get_assignments (line 178) | fn get_assignments(&self) -> &AssignmentSet { method get_constraints (line 183) | fn get_constraints(&self, signal: &VariableName, access: &Vec ReportCollection { function visit_statement (line 245) | fn visit_statement(stmt: &Statement, signal_use: &mut SignalUse) { function build_unecessary_assignment_report (line 273) | fn build_unecessary_assignment_report( function build_assignment_report (line 286) | fn build_assignment_report( function access_to_string (line 302) | fn access_to_string(access: &[AccessType]) -> String { function test_signal_assignments (line 314) | fn test_signal_assignments() { function validate_reports (line 358) | fn validate_reports(src: &str, expected_len: usize) { FILE: program_analysis/src/taint_analysis.rs type TaintAnalysis (line 12) | pub struct TaintAnalysis { method new (line 19) | fn new(parameters: &Parameters) -> TaintAnalysis { method add_definition (line 32) | fn add_definition(&mut self, var: &VariableUse) { method get_definition (line 48) | pub fn get_definition(&self, var: &VariableName) -> Option { method definitions (line 52) | pub fn definitions(&self) -> impl Iterator { method add_declaration (line 57) | fn add_declaration(&mut self, var: &VariableUse) { method get_declaration (line 62) | pub fn get_declaration(&self, var: &VariableName) -> Option impl Iterator { method add_taint_step (line 71) | fn add_taint_step(&mut self, source: &VariableName, sink: &VariableNam... method single_step_taint (line 77) | pub fn single_step_taint(&self, source: &VariableName) -> HashSet HashSet TaintAnalysis { function test_taint_analysis (line 181) | fn test_taint_analysis() { function validate_taint (line 233) | fn validate_taint(src: &str, taint_map: &HashMap<&str, HashSet>) { FILE: program_analysis/src/unconstrained_division.rs type UnconstrainedDivisionWarning (line 15) | pub struct UnconstrainedDivisionWarning { method into_report (line 22) | pub fn into_report(self) -> Report { type VariableAccess (line 39) | struct VariableAccess { method new (line 45) | fn new(var: &VariableName, access: &[AccessType]) -> Self { type Component (line 53) | struct Component { method new (line 59) | fn new() -> Self { method ensures_nonzero (line 63) | fn ensures_nonzero(&self, expr: &Expression) -> bool { method output (line 74) | fn output(&self) -> Option { function find_unconstrained_division (line 100) | pub fn find_unconstrained_division(cfg: &Cfg) -> ReportCollection { function update_divisors (line 135) | fn update_divisors(stmt: &Statement, divisors: &mut Vec) { function update_constraints (line 160) | fn update_constraints(stmt: &Statement, constraints: &mut HashMap Report { function vec_to_display (line 252) | fn vec_to_display(elems: &[T], sep: &str) -> String { function test_unconstrained_less_than (line 264) | fn test_unconstrained_less_than() { function validate_reports (line 368) | fn validate_reports(src: &str, expected_len: usize) { FILE: program_analysis/src/unconstrained_less_than.rs type UnconstrainedLessThanWarning (line 13) | pub struct UnconstrainedLessThanWarning { method primary_meta (line 18) | fn primary_meta(&self) -> &Meta { method into_report (line 22) | pub fn into_report(self) -> Report { type VariableAccess (line 47) | struct VariableAccess { method new (line 53) | fn new(var: &VariableName, access: &[AccessType]) -> Self { type Component (line 61) | enum Component { method less_than (line 67) | fn less_than() -> Self { method num_2_bits (line 71) | fn num_2_bits(bit_size: &Expression) -> Self { type ComponentInput (line 78) | enum ComponentInput { method less_than (line 84) | fn less_than(value: &Expression) -> Self { method num_2_bits (line 88) | fn num_2_bits(value: &Expression, bit_size: &Expression) -> Self { type ConstraintData (line 95) | struct ConstraintData { function find_unconstrained_less_than (line 117) | pub fn find_unconstrained_less_than(cfg: &Cfg) -> ReportCollection { function update_components (line 175) | fn update_components(stmt: &Statement, components: &mut HashMap Report { function vec_to_display (line 273) | fn vec_to_display(elems: &[T], sep: &str) -> String { function test_unconstrained_less_than (line 285) | fn test_unconstrained_less_than() { function validate_reports (line 372) | fn validate_reports(src: &str, expected_len: usize) { FILE: program_analysis/src/under_constrained_signals.rs constant MIN_CONSTRAINT_COUNT (line 13) | const MIN_CONSTRAINT_COUNT: usize = 2; type ConstraintLocation (line 16) | enum ConstraintLocation { method file_location (line 22) | fn file_location(&self) -> Option { type ConstraintLocations (line 31) | type ConstraintLocations = HashMap>; type UnderConstrainedSignalWarning (line 33) | pub struct UnderConstrainedSignalWarning { method into_report (line 42) | pub fn into_report(self) -> Report { function find_under_constrained_signals (line 90) | pub fn find_under_constrained_signals(cfg: &Cfg) -> ReportCollection { function visit_statement (line 143) | fn visit_statement( function build_report (line 171) | fn build_report( function test_under_constrained_signals (line 196) | fn test_under_constrained_signals() { function validate_reports (line 260) | fn validate_reports(src: &str, expected_len: usize) { FILE: program_analysis/src/unused_output_signal.rs constant ALLOW_LIST (line 17) | const ALLOW_LIST: [&str; 1] = ["Num2Bits"]; type UnusedOutputSignalWarning (line 19) | struct UnusedOutputSignalWarning { method into_report (line 32) | pub fn into_report(self) -> Report { type VariableAccess (line 52) | struct VariableAccess { method new (line 58) | fn new(var: &VariableName, access: &[AccessType]) -> Self { type MaybeEqual (line 66) | trait MaybeEqual { method maybe_equal (line 67) | fn maybe_equal(&self, other: &Self) -> bool; method maybe_equal (line 80) | fn maybe_equal(&self, other: &VariableAccess) -> bool { type MaybeContains (line 119) | trait MaybeContains { method maybe_contains (line 120) | fn maybe_contains(&self, element: &T) -> bool; function maybe_contains (line 127) | fn maybe_contains(&self, element: &T) -> bool { type ComponentData (line 132) | struct ComponentData { method new (line 140) | pub fn new( type SignalData (line 155) | struct SignalData { method new (line 163) | pub fn new( function find_unused_output_signals (line 178) | pub fn find_unused_output_signals( function maybe_accesses (line 256) | fn maybe_accesses(accesses: &Vec, signal_access: &Variab... function visit_statement (line 272) | fn visit_statement( function visit_expression (line 309) | fn visit_expression(expr: &Expression, accesses: &mut Vec bool { FILE: program_structure/src/abstract_syntax_tree/ast.rs type FillMeta (line 5) | pub trait FillMeta { method fill (line 6) | fn fill(&mut self, file_id: usize, elem_id: &mut usize); type MainComponent (line 9) | pub type MainComponent = (Vec, Expression); function build_main_component (line 11) | pub fn build_main_component(public: Vec, call: Expression) -> Ma... type Version (line 15) | pub type Version = (usize, usize, usize); type TagList (line 16) | pub type TagList = Vec; type Include (line 19) | pub struct Include { function build_include (line 24) | pub fn build_include(meta: Meta, path: String) -> Include { type Meta (line 29) | pub struct Meta { method new (line 40) | pub fn new(start: usize, end: usize) -> Meta { method change_location (line 52) | pub fn change_location(&mut self, location: FileLocation, file_id: Opt... method get_start (line 56) | pub fn get_start(&self) -> usize { method get_end (line 59) | pub fn get_end(&self) -> usize { method get_file_id (line 62) | pub fn get_file_id(&self) -> usize { method get_memory_knowledge (line 69) | pub fn get_memory_knowledge(&self) -> &MemoryKnowledge { method get_type_knowledge (line 72) | pub fn get_type_knowledge(&self) -> &TypeKnowledge { method get_mut_memory_knowledge (line 75) | pub fn get_mut_memory_knowledge(&mut self) -> &mut MemoryKnowledge { method get_mut_type_knowledge (line 78) | pub fn get_mut_type_knowledge(&mut self) -> &mut TypeKnowledge { method file_location (line 81) | pub fn file_location(&self) -> FileLocation { method set_file_id (line 84) | pub fn set_file_id(&mut self, file_id: usize) { type AST (line 90) | pub struct AST { method new (line 100) | pub fn new( type Definition (line 124) | pub enum Definition { method name (line 165) | pub fn name(&self) -> String { function build_template (line 142) | pub fn build_template( function build_function (line 154) | pub fn build_function( type Statement (line 174) | pub enum Statement { type SignalElementType (line 235) | pub enum SignalElementType { type SignalType (line 242) | pub enum SignalType { type VariableType (line 249) | pub enum VariableType { type Expression (line 257) | pub enum Expression { type Access (line 316) | pub enum Access { function build_component_access (line 320) | pub fn build_component_access(acc: String) -> Access { function build_array_access (line 323) | pub fn build_array_access(expr: Expression) -> Access { type AssignOp (line 328) | pub enum AssignOp { type ExpressionInfixOpcode (line 335) | pub enum ExpressionInfixOpcode { type ExpressionPrefixOpcode (line 359) | pub enum ExpressionPrefixOpcode { type LogArgument (line 366) | pub enum LogArgument { function build_log_string (line 371) | pub fn build_log_string(acc: String) -> LogArgument { function build_log_expression (line 375) | pub fn build_log_expression(expr: Expression) -> LogArgument { type TypeReduction (line 381) | pub enum TypeReduction { type TypeKnowledge (line 389) | pub struct TypeKnowledge { method new (line 393) | pub fn new() -> TypeKnowledge { method set_reduces_to (line 396) | pub fn set_reduces_to(&mut self, reduces_to: TypeReduction) { method reduces_to (line 399) | pub fn reduces_to(&self) -> TypeReduction { method is_var (line 406) | pub fn is_var(&self) -> bool { method is_component (line 409) | pub fn is_component(&self) -> bool { method is_signal (line 412) | pub fn is_signal(&self) -> bool { method is_tag (line 415) | pub fn is_tag(&self) -> bool { type MemoryKnowledge (line 421) | pub struct MemoryKnowledge { method new (line 427) | pub fn new() -> MemoryKnowledge { method set_concrete_dimensions (line 430) | pub fn set_concrete_dimensions(&mut self, value: Vec) { method set_abstract_memory_address (line 434) | pub fn set_abstract_memory_address(&mut self, value: usize) { method concrete_dimensions (line 437) | pub fn concrete_dimensions(&self) -> &[usize] { method full_length (line 444) | pub fn full_length(&self) -> usize { method abstract_memory_address (line 451) | pub fn abstract_memory_address(&self) -> usize { FILE: program_structure/src/abstract_syntax_tree/ast_impl.rs method get_includes (line 4) | pub fn get_includes(&self) -> &Vec { method get_version (line 8) | pub fn get_version(&self) -> &Option { method get_definitions (line 12) | pub fn get_definitions(&self) -> &Vec { method decompose (line 15) | pub fn decompose( FILE: program_structure/src/abstract_syntax_tree/ast_shortcuts.rs type Symbol (line 8) | pub struct Symbol { type TupleInit (line 14) | pub struct TupleInit { function assign_with_op_shortcut (line 18) | pub fn assign_with_op_shortcut( function plusplus (line 30) | pub fn plusplus(meta: Meta, variable: (String, Vec)) -> Statement { function subsub (line 35) | pub fn subsub(meta: Meta, variable: (String, Vec)) -> Statement { function for_into_while (line 40) | pub fn for_into_while( function split_declaration_into_single_nodes (line 52) | pub fn split_declaration_into_single_nodes( function split_declaration_into_single_nodes_and_multi_substitution (line 90) | pub fn split_declaration_into_single_nodes_and_multi_substitution( FILE: program_structure/src/abstract_syntax_tree/expression_builders.rs function build_infix (line 5) | pub fn build_infix( function build_prefix (line 14) | pub fn build_prefix(meta: Meta, prefix_op: ExpressionPrefixOpcode, rhe: ... function build_inline_switch_op (line 18) | pub fn build_inline_switch_op( function build_parallel_op (line 32) | pub fn build_parallel_op(meta: Meta, rhe: Expression) -> Expression { function build_variable (line 36) | pub fn build_variable(meta: Meta, name: String, access: Vec) -> ... function build_number (line 40) | pub fn build_number(meta: Meta, value: BigInt) -> Expression { function build_call (line 44) | pub fn build_call(meta: Meta, id: String, args: Vec) -> Expr... function build_anonymous_component (line 48) | pub fn build_anonymous_component( function build_array_in_line (line 59) | pub fn build_array_in_line(meta: Meta, values: Vec) -> Expre... function build_tuple (line 63) | pub fn build_tuple(meta: Meta, values: Vec) -> Expression { function unzip_3 (line 67) | pub fn unzip_3( FILE: program_structure/src/abstract_syntax_tree/expression_impl.rs method meta (line 7) | pub fn meta(&self) -> &Meta { method meta_mut (line 22) | pub fn meta_mut(&mut self) -> &mut Meta { method is_array (line 38) | pub fn is_array(&self) -> bool { method is_infix (line 43) | pub fn is_infix(&self) -> bool { method is_prefix (line 48) | pub fn is_prefix(&self) -> bool { method is_switch (line 53) | pub fn is_switch(&self) -> bool { method is_variable (line 58) | pub fn is_variable(&self) -> bool { method is_number (line 63) | pub fn is_number(&self) -> bool { method is_call (line 68) | pub fn is_call(&self) -> bool { method is_parallel (line 73) | pub fn is_parallel(&self) -> bool { method is_tuple (line 78) | pub fn is_tuple(&self) -> bool { method is_anonymous_component (line 83) | pub fn is_anonymous_component(&self) -> bool { method make_anonymous_parallel (line 88) | pub fn make_anonymous_parallel(self) -> Expression { method fill (line 100) | fn fill(&mut self, file_id: usize, element_id: &mut usize) { function fill_number (line 125) | fn fill_number(meta: &mut Meta, file_id: usize, _element_id: &mut usize) { function fill_variable (line 129) | fn fill_variable(meta: &mut Meta, access: &mut [Access], file_id: usize,... function fill_infix (line 138) | fn fill_infix( function fill_prefix (line 150) | fn fill_prefix(meta: &mut Meta, rhe: &mut Expression, file_id: usize, el... function fill_inline_switch_op (line 155) | fn fill_inline_switch_op( function fill_call (line 169) | fn fill_call(meta: &mut Meta, args: &mut [Expression], file_id: usize, e... function fill_array_inline (line 176) | fn fill_array_inline( function fill_anonymous_component (line 188) | fn fill_anonymous_component( function fill_tuple (line 204) | fn fill_tuple(meta: &mut Meta, values: &mut [Expression], file_id: usize... function fill_parallel (line 211) | fn fill_parallel(meta: &mut Meta, rhe: &mut Expression, file_id: usize, ... method fmt (line 217) | fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error> { method fmt (line 235) | fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error> { method fmt (line 263) | fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error> { method fmt (line 291) | fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error> { method fmt (line 302) | fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error> { function vec_to_string (line 311) | fn vec_to_string(elems: &[Expression]) -> String { function signals_to_string (line 315) | fn signals_to_string(names: &Option>, signals: &... FILE: program_structure/src/abstract_syntax_tree/statement_builders.rs function build_conditional_block (line 4) | pub fn build_conditional_block( function build_while_block (line 13) | pub fn build_while_block(meta: Meta, cond: Expression, stmt: Statement) ... function build_initialization_block (line 17) | pub fn build_initialization_block( function build_block (line 24) | pub fn build_block(meta: Meta, stmts: Vec) -> Statement { function build_return (line 28) | pub fn build_return(meta: Meta, value: Expression) -> Statement { function build_declaration (line 32) | pub fn build_declaration( function build_substitution (line 42) | pub fn build_substitution( function build_constraint_equality (line 52) | pub fn build_constraint_equality(meta: Meta, lhe: Expression, rhe: Expre... function build_log_call (line 56) | pub fn build_log_call(meta: Meta, args: Vec) -> Statement { function split_string (line 71) | fn split_string(str: String) -> Vec { function build_assert (line 83) | pub fn build_assert(meta: Meta, arg: Expression) -> Statement { function build_multi_substitution (line 87) | pub fn build_multi_substitution( function build_anonymous_component_statement (line 96) | pub fn build_anonymous_component_statement(meta: Meta, arg: Expression) ... FILE: program_structure/src/abstract_syntax_tree/statement_impl.rs method get_meta (line 6) | pub fn get_meta(&self) -> &Meta { method get_mut_meta (line 22) | pub fn get_mut_meta(&mut self) -> &mut Meta { method is_if_then_else (line 39) | pub fn is_if_then_else(&self) -> bool { method is_while (line 44) | pub fn is_while(&self) -> bool { method is_return (line 49) | pub fn is_return(&self) -> bool { method is_initialization_block (line 54) | pub fn is_initialization_block(&self) -> bool { method is_declaration (line 59) | pub fn is_declaration(&self) -> bool { method is_substitution (line 64) | pub fn is_substitution(&self) -> bool { method is_multi_substitution (line 69) | pub fn is_multi_substitution(&self) -> bool { method is_constraint_equality (line 74) | pub fn is_constraint_equality(&self) -> bool { method is_log_call (line 79) | pub fn is_log_call(&self) -> bool { method is_block (line 84) | pub fn is_block(&self) -> bool { method is_assert (line 89) | pub fn is_assert(&self) -> bool { method fill (line 96) | fn fill(&mut self, file_id: usize, element_id: &mut usize) { function fill_conditional (line 128) | fn fill_conditional( function fill_while (line 144) | fn fill_while( function fill_return (line 156) | fn fill_return(meta: &mut Meta, value: &mut Expression, file_id: usize, ... function fill_initialization (line 161) | fn fill_initialization( function fill_declaration (line 173) | fn fill_declaration( function fill_substitution (line 185) | fn fill_substitution( function fill_multi_substitution (line 201) | fn fill_multi_substitution( function fill_constraint_equality (line 213) | fn fill_constraint_equality( function fill_log_call (line 225) | fn fill_log_call( function fill_block (line 239) | fn fill_block(meta: &mut Meta, stmts: &mut [Statement], file_id: usize, ... function fill_assert (line 246) | fn fill_assert(meta: &mut Meta, arg: &mut Expression, file_id: usize, el... method fmt (line 252) | fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error> { method fmt (line 271) | fn fmt(&self, f: &mut Formatter) -> Result<(), Error> { method fmt (line 299) | fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error> { method fmt (line 310) | fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error> { method fmt (line 334) | fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error> { method fmt (line 345) | fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error> { function vec_to_string (line 354) | fn vec_to_string(elems: &[T]) -> String { FILE: program_structure/src/control_flow_graph/basic_block.rs type Index (line 13) | type Index = usize; type IndexSet (line 14) | type IndexSet = HashSet; type BasicBlock (line 17) | pub struct BasicBlock { method new (line 28) | pub fn new(meta: Meta, index: Index, loop_depth: usize) -> BasicBlock { method from_raw_parts (line 41) | pub fn from_raw_parts( method len (line 53) | pub fn len(&self) -> usize { method is_empty (line 58) | pub fn is_empty(&self) -> bool { method in_loop (line 63) | pub fn in_loop(&self) -> bool { method loop_depth (line 68) | pub fn loop_depth(&self) -> usize { method iter (line 72) | pub fn iter(&self) -> impl Iterator { method iter_mut (line 76) | pub(crate) fn iter_mut(&mut self) -> impl Iterator Index { method meta (line 85) | pub fn meta(&self) -> &Meta { method meta_mut (line 90) | pub(crate) fn meta_mut(&mut self) -> &mut Meta { method statements (line 95) | pub fn statements(&self) -> &Vec { method statements_mut (line 100) | pub(crate) fn statements_mut(&mut self) -> &mut Vec { method prepend_statement (line 104) | pub(crate) fn prepend_statement(&mut self, stmt: Statement) { method append_statement (line 108) | pub(crate) fn append_statement(&mut self, stmt: Statement) { method predecessors (line 113) | pub fn predecessors(&self) -> &IndexSet { method successors (line 118) | pub fn successors(&self) -> &IndexSet { method add_predecessor (line 122) | pub(crate) fn add_predecessor(&mut self, predecessor: Index) { method add_successor (line 127) | pub(crate) fn add_successor(&mut self, successor: Index) { method propagate_degrees (line 132) | pub fn propagate_degrees(&mut self, env: &mut DegreeEnvironment) -> bo... method propagate_values (line 141) | pub fn propagate_values(&mut self, env: &mut ValueEnvironment) -> bool { method propagate_types (line 150) | pub fn propagate_types(&mut self, vars: &Declarations) { method fmt (line 236) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { method index (line 159) | fn index(&self) -> Index { method predecessors (line 162) | fn predecessors(&self) -> &IndexSet { method successors (line 165) | fn successors(&self) -> &IndexSet { method cache_variable_use (line 171) | fn cache_variable_use(&mut self) { method locals_read (line 210) | fn locals_read(&self) -> &VariableUses { method locals_written (line 214) | fn locals_written(&self) -> &VariableUses { method signals_read (line 218) | fn signals_read(&self) -> &VariableUses { method signals_written (line 222) | fn signals_written(&self) -> &VariableUses { method components_read (line 226) | fn components_read(&self) -> &VariableUses { method components_written (line 230) | fn components_written(&self) -> &VariableUses { FILE: program_structure/src/control_flow_graph/cfg.rs type Index (line 23) | pub type Index = usize; constant MAX_ANALYSIS_DURATION (line 25) | const MAX_ANALYSIS_DURATION: Duration = Duration::from_secs(10); type DefinitionType (line 28) | pub enum DefinitionType { method fmt (line 35) | fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { type Cfg (line 44) | pub struct Cfg { method new (line 55) | pub(crate) fn new( method entry_block (line 76) | pub fn entry_block(&self) -> &BasicBlock { method get_basic_block (line 81) | pub fn get_basic_block(&self, index: Index) -> Option<&BasicBlock> { method len (line 87) | pub fn len(&self) -> usize { method is_empty (line 93) | pub fn is_empty(&self) -> bool { method into_ssa (line 98) | pub fn into_ssa(mut self) -> SSAResult { method name (line 140) | pub fn name(&self) -> &str { method file_id (line 146) | pub fn file_id(&self) -> &Option { method definition_type (line 151) | pub fn definition_type(&self) -> &DefinitionType { method constants (line 156) | pub fn constants(&self) -> &UsefulConstants { method parameters (line 162) | pub fn parameters(&self) -> &Parameters { method declarations (line 168) | pub fn declarations(&self) -> &Declarations { method variables (line 173) | pub fn variables(&self) -> impl Iterator { method input_signals (line 178) | pub fn input_signals(&self) -> impl Iterator { method output_signals (line 190) | pub fn output_signals(&self) -> impl Iterator { method get_declaration (line 203) | pub fn get_declaration(&self, name: &VariableName) -> Option<&Declarat... method get_type (line 209) | pub fn get_type(&self, name: &VariableName) -> Option<&VariableType> { method iter (line 215) | pub fn iter(&self) -> impl Iterator { method iter_mut (line 220) | pub fn iter_mut(&mut self) -> impl Iterator { method get_dominators (line 228) | pub fn get_dominators(&self, basic_block: &BasicBlock) -> Vec<&BasicBl... method get_immediate_dominator (line 239) | pub fn get_immediate_dominator(&self, basic_block: &BasicBlock) -> Opt... method get_dominator_successors (line 248) | pub fn get_dominator_successors(&self, basic_block: &BasicBlock) -> Ve... method get_dominance_frontier (line 261) | pub fn get_dominance_frontier(&self, basic_block: &BasicBlock) -> Vec<... method get_predecessors (line 270) | pub fn get_predecessors(&self, basic_block: &BasicBlock) -> Vec<&Basic... method get_successors (line 295) | pub fn get_successors(&self, basic_block: &BasicBlock) -> Vec<&BasicBl... method get_interval (line 322) | pub fn get_interval( method get_true_branch (line 376) | pub fn get_true_branch(&self, header_block: &BasicBlock) -> Vec<&Basic... method get_false_branch (line 406) | pub fn get_false_branch(&self, header_block: &BasicBlock) -> Vec<&Basi... method cache_variable_use (line 440) | pub(crate) fn cache_variable_use(&mut self) { method propagate_degrees (line 448) | pub(crate) fn propagate_degrees(&mut self) { method propagate_values (line 480) | pub(crate) fn propagate_values(&mut self) { method propagate_types (line 500) | pub(crate) fn propagate_types(&mut self) { method fmt (line 512) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { FILE: program_structure/src/control_flow_graph/errors.rs type CFGError (line 10) | pub enum CFGError { method into_report (line 34) | pub fn into_report(self) -> Report { method from (line 113) | fn from(error: IRError) -> CFGError { type CFGResult (line 31) | pub type CFGResult = Result; method from (line 126) | fn from(error: CFGError) -> Report { FILE: program_structure/src/control_flow_graph/lifting.rs type Index (line 27) | type Index = usize; type IndexSet (line 28) | type IndexSet = HashSet; type BasicBlockVec (line 29) | type BasicBlockVec = NonEmptyVec; type IntoCfg (line 34) | pub trait IntoCfg { method into_cfg (line 35) | fn into_cfg(self, curve: &Curve, reports: &mut ReportCollection) -> CF... method into_cfg (line 42) | fn into_cfg(self, curve: &Curve, reports: &mut ReportCollection) -> CF... method from (line 49) | fn from(params: &Parameters) -> LiftingEnvironment { type IR (line 66) | type IR = Cfg; type Error (line 67) | type Error = CFGError; function try_lift (line 69) | fn try_lift( type IR (line 88) | type IR = Cfg; type Error (line 89) | type Error = CFGError; function try_lift (line 91) | fn try_lift( type IR (line 106) | type IR = Cfg; type Error (line 107) | type Error = CFGError; method try_lift (line 109) | fn try_lift( function try_lift_impl (line 146) | fn try_lift_impl( function build_basic_blocks (line 187) | pub(crate) fn build_basic_blocks( function visit_statement (line 212) | fn visit_statement( function complete_basic_block (line 371) | fn complete_basic_block( FILE: program_structure/src/control_flow_graph/parameters.rs type Parameters (line 8) | pub struct Parameters { method new (line 16) | pub fn new( method file_id (line 29) | pub fn file_id(&self) -> &Option { method file_location (line 34) | pub fn file_location(&self) -> &FileLocation { method len (line 39) | pub fn len(&self) -> usize { method is_empty (line 44) | pub fn is_empty(&self) -> bool { method iter (line 48) | pub fn iter(&self) -> impl Iterator { method iter_mut (line 52) | pub fn iter_mut(&mut self) -> impl Iterator { method contains (line 56) | pub fn contains(&self, param_name: &VariableName) -> bool { method from (line 62) | fn from(function: &FunctionData) -> Parameters { method from (line 72) | fn from(template: &TemplateData) -> Parameters { method from (line 82) | fn from(definition: &Definition) -> Parameters { FILE: program_structure/src/control_flow_graph/ssa_impl.rs type Version (line 16) | type Version = usize; type Config (line 18) | pub struct Config {} type Version (line 21) | type Version = Version; type Variable (line 22) | type Variable = VariableName; type Environment (line 23) | type Environment = Environment; type Statement (line 24) | type Statement = Statement; type BasicBlock (line 25) | type BasicBlock = BasicBlock; type Environment (line 30) | pub struct Environment { method new (line 45) | pub fn new(parameters: &Parameters, declarations: &Declarations) -> En... method get_current_version (line 58) | pub fn get_current_version(&self, name: &VariableName) -> Option Option Version { method is_local (line 87) | fn is_local(&self, name: &VariableName) -> bool { method add_variable_scope (line 94) | fn add_variable_scope(&mut self) { method remove_variable_scope (line 99) | fn remove_variable_scope(&mut self) { method prepend_statement (line 105) | fn prepend_statement(&mut self, stmt: Statement) { method statements (line 109) | fn statements<'a>(&'a self) -> Box + ... method statements_mut (line 113) | fn statements_mut<'a>(&'a mut self) -> Box HashSet { method new_phi_statement (line 123) | fn new_phi_statement(name: &VariableName, env: &Environment) -> Self { method is_phi_statement (line 147) | fn is_phi_statement(&self) -> bool { method is_phi_statement_for (line 153) | fn is_phi_statement_for(&self, name: &VariableName) -> bool { method ensure_phi_argument (line 162) | fn ensure_phi_argument(&mut self, env: &Environment) { method insert_ssa_variables (line 189) | fn insert_ssa_variables(&mut self, env: &mut Environment) -> SSAResult<(... function visit_expression (line 244) | fn visit_expression(expr: &mut Expression, env: &mut Environment) -> SSA... function update_declarations (line 369) | pub fn update_declarations( FILE: program_structure/src/control_flow_graph/unique_vars.rs type Version (line 12) | type Version = usize; type Declaration (line 15) | struct Declaration { method new (line 21) | fn new(file_id: Option, file_location: FileLocation) -> Declar... method file_id (line 25) | fn file_id(&self) -> Option { method file_location (line 29) | fn file_location(&self) -> FileLocation { type DeclarationEnvironment (line 34) | struct DeclarationEnvironment { method new (line 49) | pub fn new() -> DeclarationEnvironment { method get_declaration (line 58) | pub fn get_declaration(&self, name: &str) -> Option<&Declaration> { method add_declaration (line 63) | pub fn add_declaration( method get_current_version (line 74) | pub fn get_current_version(&self, name: &str) -> Option<&Version> { method get_next_version (line 79) | fn get_next_version(&mut self, name: &str) -> Option { method add_variable_block (line 103) | pub fn add_variable_block(&mut self) { method remove_variable_block (line 109) | pub fn remove_variable_block(&mut self) { type Error (line 116) | type Error = CFGError; method try_from (line 118) | fn try_from(params: &Parameters) -> CFGResult { function ensure_unique_variables (line 178) | pub fn ensure_unique_variables( function visit_statement (line 191) | fn visit_statement( function visit_expression (line 284) | fn visit_expression(expr: &mut Expression, env: &DeclarationEnvironment) { function build_report (line 354) | fn build_report(name: &str, primary_meta: &Meta, secondary_decl: &Declar... FILE: program_structure/src/intermediate_representation/declarations.rs type Declarations (line 8) | pub struct Declarations(HashMap); method new (line 12) | pub fn new() -> Declarations { method add_declaration (line 16) | pub fn add_declaration(&mut self, declaration: &Declaration) { method get_declaration (line 25) | pub fn get_declaration(&self, name: &VariableName) -> Option<&Declarat... method get_type (line 30) | pub fn get_type(&self, name: &VariableName) -> Option<&VariableType> { method iter (line 34) | pub fn iter(&self) -> impl Iterator usize { method is_empty (line 44) | pub fn is_empty(&self) -> bool { type Declaration (line 52) | pub struct Declaration { method new (line 61) | pub fn new( method file_id (line 78) | pub fn file_id(&self) -> Option { method file_location (line 83) | pub fn file_location(&self) -> FileLocation { method variable_name (line 88) | pub fn variable_name(&self) -> &VariableName { method variable_type (line 93) | pub fn variable_type(&self) -> &VariableType { method dimensions (line 98) | pub fn dimensions(&self) -> &Vec { FILE: program_structure/src/intermediate_representation/degree_meta.rs type Degree (line 10) | pub enum Degree { method partial_cmp (line 19) | fn partial_cmp(&self, other: &Degree) -> Option { method add (line 47) | pub fn add(&self, other: &Degree) -> Degree { method infix_sub (line 51) | pub fn infix_sub(&self, other: &Degree) -> Degree { method mul (line 55) | pub fn mul(&self, other: &Degree) -> Degree { method pow (line 65) | pub fn pow(&self, other: &Degree) -> Degree { method div (line 74) | pub fn div(&self, other: &Degree) -> Degree { method int_div (line 83) | pub fn int_div(&self, other: &Degree) -> Degree { method modulo (line 92) | pub fn modulo(&self, other: &Degree) -> Degree { method shift_left (line 101) | pub fn shift_left(&self, other: &Degree) -> Degree { method shift_right (line 110) | pub fn shift_right(&self, other: &Degree) -> Degree { method lesser (line 119) | pub fn lesser(&self, other: &Degree) -> Degree { method greater (line 128) | pub fn greater(&self, other: &Degree) -> Degree { method lesser_eq (line 137) | pub fn lesser_eq(&self, other: &Degree) -> Degree { method greater_eq (line 146) | pub fn greater_eq(&self, other: &Degree) -> Degree { method equal (line 154) | pub fn equal(&self, other: &Degree) -> Degree { method not_equal (line 163) | pub fn not_equal(&self, other: &Degree) -> Degree { method bit_or (line 172) | pub fn bit_or(&self, other: &Degree) -> Degree { method bit_and (line 181) | pub fn bit_and(&self, other: &Degree) -> Degree { method bit_xor (line 190) | pub fn bit_xor(&self, other: &Degree) -> Degree { method bool_or (line 199) | pub fn bool_or(&self, other: &Degree) -> Degree { method bool_and (line 208) | pub fn bool_and(&self, other: &Degree) -> Degree { method prefix_sub (line 217) | pub fn prefix_sub(&self) -> Degree { method complement (line 221) | pub fn complement(&self) -> Degree { method bool_not (line 226) | pub fn bool_not(&self) -> Degree { method fmt (line 233) | fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { method cmp (line 26) | fn cmp(&self, other: &Degree) -> Ordering { type DegreeRange (line 246) | pub struct DegreeRange(Degree, Degree); method new (line 250) | pub fn new(start: Degree, end: Degree) -> DegreeRange { method start (line 255) | pub fn start(&self) -> Degree { method end (line 260) | pub fn end(&self) -> Degree { method contains (line 265) | pub fn contains(&self, degree: Degree) -> bool { method is_constant (line 271) | pub fn is_constant(&self) -> bool { method is_linear (line 277) | pub fn is_linear(&self) -> bool { method is_quadratic (line 283) | pub fn is_quadratic(&self) -> bool { method inf (line 290) | pub fn inf(&self, other: &DegreeRange) -> DegreeRange { method iter_inf (line 300) | pub fn iter_inf<'a, T: IntoIterator>(ranges: T... method iter_opt (line 316) | pub fn iter_opt<'a, T: IntoIterator>>( method add (line 326) | pub fn add(&self, other: &DegreeRange) -> DegreeRange { method infix_sub (line 330) | pub fn infix_sub(&self, other: &DegreeRange) -> DegreeRange { method mul (line 334) | pub fn mul(&self, other: &DegreeRange) -> DegreeRange { method pow (line 338) | pub fn pow(&self, other: &DegreeRange) -> DegreeRange { method div (line 342) | pub fn div(&self, other: &DegreeRange) -> DegreeRange { method int_div (line 346) | pub fn int_div(&self, other: &DegreeRange) -> DegreeRange { method modulo (line 350) | pub fn modulo(&self, other: &DegreeRange) -> DegreeRange { method shift_left (line 354) | pub fn shift_left(&self, other: &DegreeRange) -> DegreeRange { method shift_right (line 361) | pub fn shift_right(&self, other: &DegreeRange) -> DegreeRange { method lesser (line 368) | pub fn lesser(&self, other: &DegreeRange) -> DegreeRange { method greater (line 372) | pub fn greater(&self, other: &DegreeRange) -> DegreeRange { method lesser_eq (line 376) | pub fn lesser_eq(&self, other: &DegreeRange) -> DegreeRange { method greater_eq (line 380) | pub fn greater_eq(&self, other: &DegreeRange) -> DegreeRange { method equal (line 386) | pub fn equal(&self, other: &DegreeRange) -> DegreeRange { method not_equal (line 390) | pub fn not_equal(&self, other: &DegreeRange) -> DegreeRange { method bit_or (line 394) | pub fn bit_or(&self, other: &DegreeRange) -> DegreeRange { method bit_and (line 398) | pub fn bit_and(&self, other: &DegreeRange) -> DegreeRange { method bit_xor (line 402) | pub fn bit_xor(&self, other: &DegreeRange) -> DegreeRange { method bool_or (line 406) | pub fn bool_or(&self, other: &DegreeRange) -> DegreeRange { method bool_and (line 410) | pub fn bool_and(&self, other: &DegreeRange) -> DegreeRange { method prefix_sub (line 414) | pub fn prefix_sub(&self) -> DegreeRange { method complement (line 418) | pub fn complement(&self) -> DegreeRange { method bool_not (line 422) | pub fn bool_not(&self) -> DegreeRange { method from (line 429) | fn from(degree: Degree) -> DegreeRange { method fmt (line 435) | fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { type DegreeEnvironment (line 443) | pub struct DegreeEnvironment { method new (line 452) | pub fn new() -> DegreeEnvironment { method set_degree (line 459) | pub fn set_degree(&mut self, var: &VariableName, range: &DegreeRange) ... method set_type (line 469) | pub fn set_type(&mut self, var: &VariableName, var_type: &VariableType) { method degree (line 477) | pub fn degree(&self, var: &VariableName) -> Option<&DegreeRange> { method is_local (line 483) | pub fn is_local(&self, var: &VariableName) -> bool { type DegreeMeta (line 488) | pub trait DegreeMeta { method propagate_degrees (line 491) | fn propagate_degrees(&mut self, env: &DegreeEnvironment) -> bool; method degree (line 495) | fn degree(&self) -> Option<&DegreeRange>; type DegreeKnowledge (line 499) | pub struct DegreeKnowledge { method new (line 506) | pub fn new() -> DegreeKnowledge { method set_degree (line 510) | pub fn set_degree(&mut self, range: &DegreeRange) -> bool { method degree (line 517) | pub fn degree(&self) -> Option<&DegreeRange> { method is_constant (line 524) | pub fn is_constant(&self) -> bool { method is_linear (line 535) | pub fn is_linear(&self) -> bool { method is_quadratic (line 546) | pub fn is_quadratic(&self) -> bool { function test_value_knowledge (line 560) | fn test_value_knowledge() { FILE: program_structure/src/intermediate_representation/errors.rs type IRError (line 9) | pub enum IRError { method produce_report (line 19) | pub fn produce_report(error: Self) -> Report { type IRResult (line 16) | pub type IRResult = Result; method from (line 55) | fn from(error: IRError) -> Report { FILE: program_structure/src/intermediate_representation/expression_impl.rs method meta (line 18) | pub fn meta(&self) -> &Meta { method meta_mut (line 35) | pub fn meta_mut(&mut self) -> &mut Meta { method eq (line 54) | fn eq(&self, other: &Expression) -> bool { method hash (line 97) | fn hash(&self, state: &mut H) { method propagate_degrees (line 141) | fn propagate_degrees(&mut self, env: &DegreeEnvironment) -> bool { method degree (line 270) | fn degree(&self) -> Option<&DegreeRange> { method propagate_types (line 276) | fn propagate_types(&mut self, vars: &Declarations) { method is_local (line 334) | fn is_local(&self) -> bool { method is_signal (line 338) | fn is_signal(&self) -> bool { method is_component (line 342) | fn is_component(&self) -> bool { method variable_type (line 346) | fn variable_type(&self) -> Option<&VariableType> { method cache_variable_use (line 352) | fn cache_variable_use(&mut self) { method locals_read (line 507) | fn locals_read(&self) -> &VariableUses { method locals_written (line 511) | fn locals_written(&self) -> &VariableUses { method signals_read (line 515) | fn signals_read(&self) -> &VariableUses { method signals_written (line 519) | fn signals_written(&self) -> &VariableUses { method components_read (line 523) | fn components_read(&self) -> &VariableUses { method components_written (line 527) | fn components_written(&self) -> &VariableUses { method propagate_values (line 533) | fn propagate_values(&mut self, env: &mut ValueEnvironment) -> bool { method is_constant (line 652) | fn is_constant(&self) -> bool { method is_boolean (line 656) | fn is_boolean(&self) -> bool { method is_field_element (line 660) | fn is_field_element(&self) -> bool { method value (line 664) | fn value(&self) -> Option<&ValueReduction> { method propagate_degrees (line 670) | fn propagate_degrees( method propagate_values (line 704) | fn propagate_values( method propagate_degrees (line 807) | fn propagate_degrees(&self, range: Option<&DegreeRange>) -> Option) -> Result<(), fmt::Error> { method fmt (line 904) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { method fmt (line 937) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { method fmt (line 965) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { method fmt (line 976) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { method fmt (line 986) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { function vec_to_debug (line 996) | fn vec_to_debug(elems: &[T], sep: &str) -> String { function vec_to_display (line 1001) | fn vec_to_display(elems: &[T], sep: &str) -> String { function test_propagate_values (line 1012) | fn test_propagate_values() { FILE: program_structure/src/intermediate_representation/ir.rs type Index (line 12) | type Index = usize; type Version (line 13) | type Version = usize; type Meta (line 16) | pub struct Meta { method new (line 27) | pub fn new(location: &FileLocation, file_id: &Option) -> Meta { method start (line 39) | pub fn start(&self) -> usize { method end (line 44) | pub fn end(&self) -> usize { method file_id (line 49) | pub fn file_id(&self) -> Option { method file_location (line 54) | pub fn file_location(&self) -> FileLocation { method degree_knowledge (line 59) | pub fn degree_knowledge(&self) -> &DegreeKnowledge { method type_knowledge (line 64) | pub fn type_knowledge(&self) -> &TypeKnowledge { method value_knowledge (line 69) | pub fn value_knowledge(&self) -> &ValueKnowledge { method variable_knowledge (line 74) | pub fn variable_knowledge(&self) -> &VariableKnowledge { method degree_knowledge_mut (line 79) | pub fn degree_knowledge_mut(&mut self) -> &mut DegreeKnowledge { method type_knowledge_mut (line 84) | pub fn type_knowledge_mut(&mut self) -> &mut TypeKnowledge { method value_knowledge_mut (line 89) | pub fn value_knowledge_mut(&mut self) -> &mut ValueKnowledge { method variable_knowledge_mut (line 94) | pub fn variable_knowledge_mut(&mut self) -> &mut VariableKnowledge { method hash (line 100) | fn hash(&self, state: &mut H) method eq (line 111) | fn eq(&self, other: &Meta) -> bool { type Statement (line 121) | pub enum Statement { type Expression (line 167) | pub enum Expression { type TagList (line 208) | pub type TagList = Vec; type VariableType (line 211) | pub enum VariableType { method fmt (line 219) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { type SignalType (line 242) | pub enum SignalType { method fmt (line 249) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { type VariableName (line 265) | pub struct VariableName { method from_string (line 281) | pub fn from_string(name: N) -> VariableName { method name (line 286) | pub fn name(&self) -> &String { method suffix (line 291) | pub fn suffix(&self) -> &Option { method version (line 296) | pub fn version(&self) -> &Option { method with_suffix (line 302) | pub fn with_suffix(&self, suffix: S) -> VariableName { method with_version (line 310) | pub fn with_version(&self, version: Version) -> VariableName { method without_suffix (line 318) | pub fn without_suffix(&self) -> VariableName { method without_version (line 326) | pub fn without_version(&self) -> VariableName { method fmt (line 335) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { method fmt (line 342) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { type AccessType (line 355) | pub enum AccessType { type AssignOp (line 361) | pub enum AssignOp { type ExpressionInfixOpcode (line 371) | pub enum ExpressionInfixOpcode { type ExpressionPrefixOpcode (line 395) | pub enum ExpressionPrefixOpcode { type LogArgument (line 402) | pub enum LogArgument { FILE: program_structure/src/intermediate_representation/lifting.rs type TryLift (line 12) | pub(crate) trait TryLift { method try_lift (line 17) | fn try_lift( type LiftingEnvironment (line 25) | pub(crate) struct LiftingEnvironment { method new (line 32) | pub fn new() -> LiftingEnvironment { method add_declaration (line 36) | pub fn add_declaration(&mut self, declaration: &Declaration) { method from (line 42) | fn from(env: LiftingEnvironment) -> Declarations { type IR (line 52) | type IR = ir::Statement; type Error (line 53) | type Error = IRError; function try_lift (line 55) | fn try_lift(&self, _: (), reports: &mut ReportCollection) -> IRResult IRResult IRResult { type IR (line 211) | type IR = ir::VariableType; type Error (line 212) | type Error = IRError; function try_lift (line 214) | fn try_lift(&self, _: (), reports: &mut ReportCollection) -> IRResult IRResult { type IR (line 242) | type IR = ir::VariableName; type Error (line 243) | type Error = IRError; method try_lift (line 245) | fn try_lift(&self, meta: &ast::Meta, _: &mut ReportCollection) -> IRResu... type IR (line 265) | type IR = ir::AccessType; type Error (line 266) | type Error = IRError; function try_lift (line 268) | fn try_lift(&self, _: (), reports: &mut ReportCollection) -> IRResult IRResult { type IR (line 294) | type IR = ir::ExpressionPrefixOpcode; type Error (line 295) | type Error = IRError; function try_lift (line 297) | fn try_lift(&self, _: (), _: &mut ReportCollection) -> IRResult { type IR (line 308) | type IR = ir::ExpressionInfixOpcode; type Error (line 309) | type Error = IRError; function try_lift (line 311) | fn try_lift(&self, _: (), _: &mut ReportCollection) -> IRResult { type IR (line 338) | type IR = ir::LogArgument; type Error (line 339) | type Error = IRError; method try_lift (line 341) | fn try_lift(&self, _: (), reports: &mut ReportCollection) -> IRResult &Meta { method meta_mut (line 27) | pub fn meta_mut(&mut self) -> &mut Meta { method propagate_degrees (line 40) | pub fn propagate_degrees(&mut self, env: &mut DegreeEnvironment) -> bool { method propagate_values (line 87) | pub fn propagate_values(&mut self, env: &mut ValueEnvironment) -> bool { method propagate_types (line 130) | pub fn propagate_types(&mut self, vars: &Declarations) { method fmt (line 173) | fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { method fmt (line 206) | fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { method fmt (line 242) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { method fmt (line 253) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { method fmt (line 263) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { method cache_variable_use (line 273) | fn cache_variable_use(&mut self) { method locals_read (line 376) | fn locals_read(&self) -> &VariableUses { method locals_written (line 380) | fn locals_written(&self) -> &VariableUses { method signals_read (line 384) | fn signals_read(&self) -> &VariableUses { method signals_written (line 388) | fn signals_written(&self) -> &VariableUses { method components_read (line 392) | fn components_read(&self) -> &VariableUses { method components_written (line 396) | fn components_written(&self) -> &VariableUses { function vec_to_debug (line 402) | fn vec_to_debug(elems: &[T], sep: &str) -> String { function vec_to_display (line 407) | fn vec_to_display(elems: &[T], sep: &str) -> String { FILE: program_structure/src/intermediate_representation/type_meta.rs type TypeMeta (line 4) | pub trait TypeMeta { method propagate_types (line 6) | fn propagate_types(&mut self, vars: &Declarations); method is_local (line 10) | fn is_local(&self) -> bool; method is_signal (line 14) | fn is_signal(&self) -> bool; method is_component (line 18) | fn is_component(&self) -> bool; method variable_type (line 23) | fn variable_type(&self) -> Option<&VariableType>; type TypeKnowledge (line 27) | pub struct TypeKnowledge { method new (line 33) | pub fn new() -> TypeKnowledge { method set_variable_type (line 38) | pub fn set_variable_type(&mut self, var_type: &VariableType) { method variable_type (line 45) | pub fn variable_type(&self) -> Option<&VariableType> { method is_local (line 51) | pub fn is_local(&self) -> bool { method is_signal (line 57) | pub fn is_signal(&self) -> bool { method is_component (line 63) | pub fn is_component(&self) -> bool { FILE: program_structure/src/intermediate_representation/value_meta.rs type ValueEnvironment (line 10) | pub struct ValueEnvironment { method new (line 16) | pub fn new(constants: &UsefulConstants) -> ValueEnvironment { method add_variable (line 26) | pub fn add_variable(&mut self, name: &VariableName, value: &ValueReduc... method get_variable (line 36) | pub fn get_variable(&self, name: &VariableName) -> Option<&ValueReduct... method prime (line 41) | pub fn prime(&self) -> &BigInt { type ValueMeta (line 46) | pub trait ValueMeta { method propagate_values (line 49) | fn propagate_values(&mut self, env: &mut ValueEnvironment) -> bool; method is_constant (line 53) | fn is_constant(&self) -> bool; method is_boolean (line 57) | fn is_boolean(&self) -> bool; method is_field_element (line 61) | fn is_field_element(&self) -> bool; method value (line 65) | fn value(&self) -> Option<&ValueReduction>; type ValueReduction (line 69) | pub enum ValueReduction { method fmt (line 75) | fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { type ValueKnowledge (line 85) | pub struct ValueKnowledge { method new (line 91) | pub fn new() -> ValueKnowledge { method set_reduces_to (line 97) | pub fn set_reduces_to(&mut self, reduces_to: ValueReduction) -> bool { method get_reduces_to (line 105) | pub fn get_reduces_to(&self) -> Option<&ValueReduction> { method is_constant (line 111) | pub fn is_constant(&self) -> bool { method is_boolean (line 117) | pub fn is_boolean(&self) -> bool { method is_field_element (line 124) | pub fn is_field_element(&self) -> bool { function test_value_knowledge (line 139) | fn test_value_knowledge() { FILE: program_structure/src/intermediate_representation/variable_meta.rs type VariableUse (line 8) | pub struct VariableUse { method new (line 15) | pub fn new(meta: &Meta, name: &VariableName, access: &[AccessType]) ->... method meta (line 19) | pub fn meta(&self) -> &Meta { method name (line 23) | pub fn name(&self) -> &VariableName { method access (line 27) | pub fn access(&self) -> &Vec { method fmt (line 33) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { type VariableUses (line 42) | pub type VariableUses = HashSet; type VariableMeta (line 44) | pub trait VariableMeta { method cache_variable_use (line 49) | fn cache_variable_use(&mut self); method locals_read (line 53) | fn locals_read(&self) -> &VariableUses; method locals_written (line 57) | fn locals_written(&self) -> &VariableUses; method signals_read (line 62) | fn signals_read(&self) -> &VariableUses; method signals_written (line 67) | fn signals_written(&self) -> &VariableUses; method components_read (line 72) | fn components_read(&self) -> &VariableUses; method components_written (line 78) | fn components_written(&self) -> &VariableUses; method variables_read (line 83) | fn variables_read<'a>(&'a self) -> Box(&'a self) -> Box(&'a self) -> Box VariableKnowledge { method set_locals_read (line 123) | pub fn set_locals_read(&mut self, uses: &VariableUses) -> &mut Variabl... method set_locals_written (line 128) | pub fn set_locals_written(&mut self, uses: &VariableUses) -> &mut Vari... method set_signals_read (line 133) | pub fn set_signals_read(&mut self, uses: &VariableUses) -> &mut Variab... method set_signals_written (line 138) | pub fn set_signals_written(&mut self, uses: &VariableUses) -> &mut Var... method set_components_read (line 143) | pub fn set_components_read(&mut self, uses: &VariableUses) -> &mut Var... method set_components_written (line 148) | pub fn set_components_written(&mut self, uses: &VariableUses) -> &mut ... method locals_read (line 154) | pub fn locals_read(&self) -> &VariableUses { method locals_written (line 159) | pub fn locals_written(&self) -> &VariableUses { method signals_read (line 166) | pub fn signals_read(&self) -> &VariableUses { method signals_written (line 173) | pub fn signals_written(&self) -> &VariableUses { method components_read (line 180) | pub fn components_read(&self) -> &VariableUses { method components_written (line 187) | pub fn components_written(&self) -> &VariableUses { method variables_read (line 194) | pub fn variables_read<'a>(&'a self) -> Box(&'a self) -> Box(&'a self) -> Box; type FileStorage (line 8) | type FileStorage = SimpleFiles; type FileLibrary (line 11) | pub struct FileLibrary { method new (line 23) | pub fn new() -> FileLibrary { method add_file (line 26) | pub fn add_file( method get_line (line 39) | pub fn get_line(&self, start: usize, file_id: FileID) -> Option { method to_storage (line 43) | pub fn to_storage(&self) -> &FileStorage { method user_inputs (line 47) | pub fn user_inputs(&self) -> &HashSet { method is_user_input (line 51) | pub fn is_user_input(&self, file_id: FileID) -> bool { method get_files (line 55) | fn get_files(&self) -> &FileStorage { method get_mut_files (line 59) | fn get_mut_files(&mut self) -> &mut FileStorage { method default (line 17) | fn default() -> Self { function generate_file_location (line 64) | pub fn generate_file_location(start: usize, end: usize) -> FileLocation { FILE: program_structure/src/program_library/function_data.rs type FunctionInfo (line 6) | pub type FunctionInfo = HashMap; type FunctionData (line 9) | pub struct FunctionData { method new (line 19) | pub fn new( method get_file_id (line 31) | pub fn get_file_id(&self) -> FileID { method get_body (line 34) | pub fn get_body(&self) -> &Statement { method get_body_as_vec (line 37) | pub fn get_body_as_vec(&self) -> &Vec { method get_mut_body (line 43) | pub fn get_mut_body(&mut self) -> &mut Statement { method replace_body (line 46) | pub fn replace_body(&mut self, new: Statement) -> Statement { method get_mut_body_as_vec (line 49) | pub fn get_mut_body_as_vec(&mut self) -> &mut Vec { method get_param_location (line 55) | pub fn get_param_location(&self) -> FileLocation { method get_num_of_params (line 58) | pub fn get_num_of_params(&self) -> usize { method get_name_of_params (line 61) | pub fn get_name_of_params(&self) -> &Vec { method get_name (line 64) | pub fn get_name(&self) -> &str { FILE: program_structure/src/program_library/program_archive.rs type Contents (line 10) | type Contents = HashMap>; type ProgramArchive (line 13) | pub struct ProgramArchive { method new (line 26) | pub fn new( method get_file_id_main (line 69) | pub fn get_file_id_main(&self) -> &FileID { method contains_template (line 73) | pub fn contains_template(&self, template_name: &str) -> bool { method get_template_data (line 76) | pub fn get_template_data(&self, template_name: &str) -> &TemplateData { method get_mut_template_data (line 80) | pub fn get_mut_template_data(&mut self, template_name: &str) -> &mut T... method get_template_names (line 84) | pub fn get_template_names(&self) -> &HashSet { method get_templates (line 87) | pub fn get_templates(&self) -> &TemplateInfo { method get_mut_templates (line 90) | pub fn get_mut_templates(&mut self) -> &mut TemplateInfo { method remove_template (line 94) | pub fn remove_template(&mut self, id: &str) { method contains_function (line 100) | pub fn contains_function(&self, function_name: &str) -> bool { method get_function_data (line 103) | pub fn get_function_data(&self, function_name: &str) -> &FunctionData { method get_mut_function_data (line 107) | pub fn get_mut_function_data(&mut self, function_name: &str) -> &mut F... method get_function_names (line 111) | pub fn get_function_names(&self) -> &HashSet { method get_functions (line 114) | pub fn get_functions(&self) -> &FunctionInfo { method get_mut_functions (line 117) | pub fn get_mut_functions(&mut self) -> &mut FunctionInfo { method remove_function (line 120) | pub fn remove_function(&mut self, id: &str) { method get_public_inputs_main_component (line 126) | pub fn get_public_inputs_main_component(&self) -> &Vec { method main_expression (line 129) | pub fn main_expression(&self) -> &Expression { method get_file_library (line 133) | pub fn get_file_library(&self) -> &FileLibrary { FILE: program_structure/src/program_library/program_merger.rs type Merger (line 9) | pub struct Merger { method new (line 16) | pub fn new() -> Merger { method add_definitions (line 20) | pub fn add_definitions( method contains_function (line 92) | pub fn contains_function(&self, function_name: &str) -> bool { method get_function_info (line 95) | fn get_function_info(&self) -> &FunctionInfo { method get_mut_function_info (line 98) | fn get_mut_function_info(&mut self) -> &mut FunctionInfo { method contains_template (line 102) | pub fn contains_template(&self, template_name: &str) -> bool { method get_template_info (line 105) | fn get_template_info(&self) -> &TemplateInfo { method get_mut_template_info (line 108) | fn get_mut_template_info(&mut self) -> &mut TemplateInfo { method decompose (line 112) | pub fn decompose(self) -> (usize, FunctionInfo, TemplateInfo) { FILE: program_structure/src/program_library/report.rs type ReportCollection (line 11) | pub type ReportCollection = Vec; type DiagnosticCode (line 12) | pub type DiagnosticCode = String; type ReportLabel (line 13) | pub type ReportLabel = Label; type ReportNote (line 14) | type ReportNote = String; type MessageCategory (line 17) | pub enum MessageCategory { method to_level (line 74) | pub fn to_level(&self) -> String { method partial_cmp (line 25) | fn partial_cmp(&self, other: &Self) -> Option { method cmp (line 31) | fn cmp(&self, other: &Self) -> Ordering { method fmt (line 49) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type Err (line 60) | type Err = anyhow::Error; method from_str (line 62) | fn from_str(category: &str) -> Result { type Report (line 86) | pub struct Report { method new (line 97) | fn new(category: MessageCategory, message: String, code: ReportCode) -... method error (line 109) | pub fn error(message: String, code: ReportCode) -> Report { method warning (line 113) | pub fn warning(message: String, code: ReportCode) -> Report { method info (line 117) | pub fn info(message: String, code: ReportCode) -> Report { method add_primary (line 121) | pub fn add_primary( method add_secondary (line 133) | pub fn add_secondary( method add_note (line 147) | pub fn add_note(&mut self, note: String) -> &mut Self { method to_diagnostic (line 152) | pub fn to_diagnostic(&self, verbose: bool) -> Diagnostic { method primary_file_ids (line 179) | pub fn primary_file_ids(&self) -> &Vec { method primary_file_ids_mut (line 183) | fn primary_file_ids_mut(&mut self) -> &mut Vec { method category (line 187) | pub fn category(&self) -> &MessageCategory { method message (line 191) | pub fn message(&self) -> &String { method primary (line 195) | pub fn primary(&self) -> &Vec { method primary_mut (line 199) | fn primary_mut(&mut self) -> &mut Vec { method secondary (line 203) | pub fn secondary(&self) -> &Vec { method secondary_mut (line 207) | fn secondary_mut(&mut self) -> &mut Vec { method notes (line 211) | pub fn notes(&self) -> &Vec { method notes_mut (line 215) | fn notes_mut(&mut self) -> &mut Vec { method code (line 219) | pub fn code(&self) -> &ReportCode { method id (line 223) | pub fn id(&self) -> String { method name (line 227) | pub fn name(&self) -> String { FILE: program_structure/src/program_library/report_code.rs constant DOC_URL (line 1) | const DOC_URL: &str = "https://github.com/trailofbits/circomspect/blob/m... type ReportCode (line 4) | pub enum ReportCode { method id (line 94) | pub fn id(&self) -> String { method name (line 187) | pub fn name(&self) -> String { method url (line 278) | pub fn url(&self) -> Option { FILE: program_structure/src/program_library/template_data.rs type TagInfo (line 7) | pub type TagInfo = HashSet; type TemplateInfo (line 8) | pub type TemplateInfo = HashMap; type SignalInfo (line 9) | type SignalInfo = BTreeMap; type SignalDeclarationOrder (line 10) | type SignalDeclarationOrder = Vec<(String, usize)>; type TemplateData (line 13) | pub struct TemplateData { method new (line 31) | pub fn new( method get_file_id (line 70) | pub fn get_file_id(&self) -> FileID { method get_body (line 74) | pub fn get_body(&self) -> &Statement { method get_body_as_vec (line 78) | pub fn get_body_as_vec(&self) -> &Vec { method get_mut_body (line 85) | pub fn get_mut_body(&mut self) -> &mut Statement { method get_mut_body_as_vec (line 89) | pub fn get_mut_body_as_vec(&mut self) -> &mut Vec { method get_num_of_params (line 96) | pub fn get_num_of_params(&self) -> usize { method get_param_location (line 100) | pub fn get_param_location(&self) -> FileLocation { method get_name_of_params (line 104) | pub fn get_name_of_params(&self) -> &Vec { method get_input_info (line 108) | pub fn get_input_info(&self, name: &str) -> Option<&(usize, TagInfo)> { method get_output_info (line 112) | pub fn get_output_info(&self, name: &str) -> Option<&(usize, TagInfo)> { method get_inputs (line 115) | pub fn get_inputs(&self) -> &SignalInfo { method get_outputs (line 118) | pub fn get_outputs(&self) -> &SignalInfo { method get_declaration_inputs (line 121) | pub fn get_declaration_inputs(&self) -> &SignalDeclarationOrder { method get_declaration_outputs (line 124) | pub fn get_declaration_outputs(&self) -> &SignalDeclarationOrder { method get_name (line 127) | pub fn get_name(&self) -> &str { method is_parallel (line 130) | pub fn is_parallel(&self) -> bool { method is_custom_gate (line 133) | pub fn is_custom_gate(&self) -> bool { function fill_inputs_and_outputs (line 138) | fn fill_inputs_and_outputs( FILE: program_structure/src/program_library/template_library.rs type Contents (line 8) | type Contents = HashMap>; type TemplateLibrary (line 10) | pub struct TemplateLibrary { method new (line 17) | pub fn new(library_contents: Contents, file_library: FileLibrary) -> T... method contains_template (line 69) | pub fn contains_template(&self, template_name: &str) -> bool { method get_template (line 73) | pub fn get_template(&self, template_name: &str) -> &TemplateData { method get_template_mut (line 78) | pub fn get_template_mut(&mut self, template_name: &str) -> &mut Templa... method get_templates (line 83) | pub fn get_templates(&self) -> &TemplateInfo { method get_templates_mut (line 87) | pub fn get_templates_mut(&mut self) -> &mut TemplateInfo { method contains_function (line 92) | pub fn contains_function(&self, function_name: &str) -> bool { method get_function (line 96) | pub fn get_function(&self, function_name: &str) -> &FunctionData { method get_function_mut (line 101) | pub fn get_function_mut(&mut self, function_name: &str) -> &mut Functi... method get_functions (line 106) | pub fn get_functions(&self) -> &FunctionInfo { method get_functions_mut (line 110) | pub fn get_functions_mut(&mut self) -> &mut FunctionInfo { method get_file_library (line 114) | pub fn get_file_library(&self) -> &FileLibrary { FILE: program_structure/src/static_single_assignment/dominator_tree.rs type Index (line 7) | type Index = usize; type DominatorInfo (line 8) | type DominatorInfo = Vec>; type ImmediateDominatorInfo (line 9) | type ImmediateDominatorInfo = Vec>; type DominatorTree (line 12) | pub struct DominatorTree { function new (line 21) | pub fn new(basic_blocks: &[T]) -> DominatorTree { function entry_block (line 37) | pub fn entry_block(&self) -> Index { function get_dominators (line 41) | pub fn get_dominators(&self, i: Index) -> HashSet { function get_immediate_dominator (line 45) | pub fn get_immediate_dominator(&self, i: Index) -> Option { function get_dominator_successors (line 49) | pub fn get_dominator_successors(&self, i: Index) -> HashSet { function get_dominance_frontier (line 53) | pub fn get_dominance_frontier(&self, i: Index) -> HashSet { function compute_dominators (line 59) | fn compute_dominators(basic_blocks: &[T]) -> Domin... function compute_immediate_dominators (line 87) | fn compute_immediate_dominators( function compute_dominance_frontier (line 138) | fn compute_dominance_frontier( FILE: program_structure/src/static_single_assignment/errors.rs type SSAError (line 7) | pub enum SSAError { method into_report (line 15) | pub fn into_report(&self) -> Report { type SSAResult (line 12) | pub type SSAResult = Result; method from (line 37) | fn from(error: SSAError) -> Report { FILE: program_structure/src/static_single_assignment/mod.rs function insert_phi_statements (line 15) | pub fn insert_phi_statements( function insert_ssa_variables (line 55) | pub fn insert_ssa_variables( function insert_ssa_variables_impl (line 64) | fn insert_ssa_variables_impl( FILE: program_structure/src/static_single_assignment/traits.rs type SSAConfig (line 7) | pub trait SSAConfig: Sized { type SSAEnvironment (line 25) | pub trait SSAEnvironment { method add_variable_scope (line 27) | fn add_variable_scope(&mut self); method remove_variable_scope (line 30) | fn remove_variable_scope(&mut self); type SSABasicBlock (line 34) | pub trait SSABasicBlock: DirectedGraphNode { method prepend_statement (line 36) | fn prepend_statement(&mut self, stmt: Cfg::Statement); method statements (line 43) | fn statements<'a>(&'a self) -> Box(&'a mut self) -> Box HashSet { method has_phi_statement (line 63) | fn has_phi_statement(&self, var: &Cfg::Variable) -> bool { method insert_phi_statement (line 69) | fn insert_phi_statement(&mut self, var: &Cfg::Variable, env: &Cfg::Env... method update_phi_statements (line 75) | fn update_phi_statements(&mut self, env: &Cfg::Environment) { method insert_ssa_variables (line 90) | fn insert_ssa_variables(&mut self, env: &mut Cfg::Environment) -> SSAR... type SSAStatement (line 100) | pub trait SSAStatement: Clone { method variables_written (line 102) | fn variables_written(&self) -> HashSet; method new_phi_statement (line 105) | fn new_phi_statement(name: &Cfg::Variable, env: &Cfg::Environment) -> ... method is_phi_statement (line 108) | fn is_phi_statement(&self) -> bool; method is_phi_statement_for (line 111) | fn is_phi_statement_for(&self, var: &Cfg::Variable) -> bool; method ensure_phi_argument (line 117) | fn ensure_phi_argument(&mut self, env: &Cfg::Environment); method insert_ssa_variables (line 121) | fn insert_ssa_variables(&mut self, env: &mut Cfg::Environment) -> SSAR... type Index (line 124) | pub type Index = usize; type IndexSet (line 125) | pub type IndexSet = HashSet; type DirectedGraphNode (line 129) | pub trait DirectedGraphNode { method index (line 130) | fn index(&self) -> Index; method predecessors (line 132) | fn predecessors(&self) -> &IndexSet; method successors (line 134) | fn successors(&self) -> &IndexSet; FILE: program_structure/src/utils/constants.rs type Curve (line 7) | pub enum Curve { method fmt (line 15) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { method fmt (line 26) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { method prime (line 32) | fn prime(&self) -> BigInt { type Err (line 48) | type Err = Error; method from_str (line 50) | fn from_str(curve: &str) -> Result { type UsefulConstants (line 61) | pub struct UsefulConstants { method new (line 67) | pub fn new(curve: &Curve) -> UsefulConstants { method curve (line 72) | pub fn curve(&self) -> &Curve { method prime (line 77) | pub fn prime(&self) -> &BigInt { method prime_size (line 82) | pub fn prime_size(&self) -> usize { FILE: program_structure/src/utils/environment.rs type VarInfo (line 5) | pub trait VarInfo {} type SignalInfo (line 6) | pub trait SignalInfo {} type ComponentInfo (line 7) | pub trait ComponentInfo {} type OnlyVars (line 10) | pub struct OnlyVars; type OnlySignals (line 13) | pub struct OnlySignals; type OnlyComponents (line 16) | pub struct OnlyComponents; type FullEnvironment (line 19) | pub struct FullEnvironment; type VarEnvironment (line 24) | pub type VarEnvironment = RawEnvironment; type SignalEnvironment (line 25) | pub type SignalEnvironment = RawEnvironment; type ComponentEnvironment (line 26) | pub type ComponentEnvironment = RawEnvironment = RawEnvironment { method default (line 43) | fn default() -> Self { function has_symbol (line 59) | pub fn has_symbol(&self, symbol: &str) -> bool { function merge (line 64) | pub fn merge( function block_with_variable_symbol (line 101) | fn block_with_variable_symbol(&self, symbol: &str) -> Option<&VariableBl... function mut_block_with_variable_symbol (line 112) | fn mut_block_with_variable_symbol(&mut self, symbol: &str) -> Option<&mu... function new (line 123) | pub fn new() -> RawEnvironment { function add_variable_block (line 126) | pub fn add_variable_block(&mut self) { function remove_variable_block (line 129) | pub fn remove_variable_block(&mut self) { function add_variable (line 133) | pub fn add_variable(&mut self, variable_name: &str, content: VC) { function has_variable (line 138) | pub fn has_variable(&self, symbol: &str) -> bool { function get_variable (line 142) | pub fn get_variable(&self, symbol: &str) -> Option<&VC> { function get_mut_variable (line 150) | pub fn get_mut_variable(&mut self, symbol: &str) -> Option<&mut VC> { function get_variable_res (line 158) | pub fn get_variable_res(&self, symbol: &str) -> Result<&VC, CircomEnviro... function remove_variable (line 166) | pub fn remove_variable(&mut self, symbol: &str) { function get_variable_or_break (line 172) | pub fn get_variable_or_break(&self, symbol: &str, file: &str, line: u32)... function get_mut_variable_mut (line 180) | pub fn get_mut_variable_mut( function get_mut_variable_or_break (line 191) | pub fn get_mut_variable_or_break(&mut self, symbol: &str, file: &str, li... function variable_iter (line 199) | pub fn variable_iter(&self) -> impl Iterator { function add_component (line 208) | pub fn add_component(&mut self, component_name: &str, content: CC) { function remove_component (line 211) | pub fn remove_component(&mut self, component_name: &str) { function has_component (line 214) | pub fn has_component(&self, symbol: &str) -> bool { function get_component (line 217) | pub fn get_component(&self, symbol: &str) -> Option<&CC> { function get_mut_component (line 220) | pub fn get_mut_component(&mut self, symbol: &str) -> Option<&mut CC> { function get_component_res (line 223) | pub fn get_component_res(&self, symbol: &str) -> Result<&CC, CircomEnvir... function get_component_or_break (line 226) | pub fn get_component_or_break(&self, symbol: &str, file: &str, line: u32... function get_mut_component_res (line 230) | pub fn get_mut_component_res( function get_mut_component_or_break (line 236) | pub fn get_mut_component_or_break(&mut self, symbol: &str, file: &str, l... function add_input (line 246) | pub fn add_input(&mut self, input_name: &str, content: SC) { function remove_input (line 249) | pub fn remove_input(&mut self, input_name: &str) { function add_output (line 252) | pub fn add_output(&mut self, output_name: &str, content: SC) { function remove_output (line 255) | pub fn remove_output(&mut self, output_name: &str) { function add_intermediate (line 258) | pub fn add_intermediate(&mut self, intermediate_name: &str, content: SC) { function remove_intermediate (line 261) | pub fn remove_intermediate(&mut self, intermediate_name: &str) { function has_input (line 264) | pub fn has_input(&self, symbol: &str) -> bool { function has_output (line 267) | pub fn has_output(&self, symbol: &str) -> bool { function has_intermediate (line 270) | pub fn has_intermediate(&self, symbol: &str) -> bool { function has_signal (line 273) | pub fn has_signal(&self, symbol: &str) -> bool { function get_input (line 276) | pub fn get_input(&self, symbol: &str) -> Option<&SC> { function get_mut_input (line 279) | pub fn get_mut_input(&mut self, symbol: &str) -> Option<&mut SC> { function get_input_res (line 282) | pub fn get_input_res(&self, symbol: &str) -> Result<&SC, CircomEnvironme... function get_input_or_break (line 285) | pub fn get_input_or_break(&self, symbol: &str, file: &str, line: u32) ->... function get_mut_input_res (line 289) | pub fn get_mut_input_res(&mut self, symbol: &str) -> Result<&mut SC, Cir... function get_mut_input_or_break (line 292) | pub fn get_mut_input_or_break(&mut self, symbol: &str, file: &str, line:... function get_output (line 297) | pub fn get_output(&self, symbol: &str) -> Option<&SC> { function get_mut_output (line 300) | pub fn get_mut_output(&mut self, symbol: &str) -> Option<&mut SC> { function get_output_res (line 303) | pub fn get_output_res(&self, symbol: &str) -> Result<&SC, CircomEnvironm... function get_output_or_break (line 306) | pub fn get_output_or_break(&self, symbol: &str, file: &str, line: u32) -... function get_mut_output_res (line 310) | pub fn get_mut_output_res(&mut self, symbol: &str) -> Result<&mut SC, Ci... function get_mut_output_or_break (line 313) | pub fn get_mut_output_or_break(&mut self, symbol: &str, file: &str, line... function get_intermediate (line 318) | pub fn get_intermediate(&self, symbol: &str) -> Option<&SC> { function get_mut_intermediate (line 321) | pub fn get_mut_intermediate(&mut self, symbol: &str) -> Option<&mut SC> { function get_intermediate_res (line 324) | pub fn get_intermediate_res(&self, symbol: &str) -> Result<&SC, CircomEn... function get_intermediate_or_break (line 327) | pub fn get_intermediate_or_break(&self, symbol: &str, file: &str, line: ... function get_mut_intermediate_res (line 331) | pub fn get_mut_intermediate_res( function get_mut_intermediate_or_break (line 337) | pub fn get_mut_intermediate_or_break( function get_signal (line 347) | pub fn get_signal(&self, symbol: &str) -> Option<&SC> { function get_mut_signal (line 358) | pub fn get_mut_signal(&mut self, symbol: &str) -> Option<&mut SC> { function get_signal_res (line 369) | pub fn get_signal_res(&self, symbol: &str) -> Result<&SC, CircomEnvironm... function get_signal_or_break (line 380) | pub fn get_signal_or_break(&self, symbol: &str, file: &str, line: u32) -... function get_mut_signal_res (line 388) | pub fn get_mut_signal_res(&mut self, symbol: &str) -> Result<&mut SC, Ci... function get_mut_signal_or_break (line 399) | pub fn get_mut_signal_or_break(&mut self, symbol: &str, file: &str, line... type VariableBlock (line 410) | struct VariableBlock { method default (line 414) | fn default() -> Self { function new (line 419) | pub fn new() -> VariableBlock { function add_variable (line 422) | pub fn add_variable(&mut self, symbol: &str, content: VC) { function remove_variable (line 425) | pub fn remove_variable(&mut self, symbol: &str) { function contains_variable (line 428) | pub fn contains_variable(&self, symbol: &str) -> bool { function get_variable (line 431) | pub fn get_variable(&self, symbol: &str) -> &VC { function get_mut_variable (line 435) | pub fn get_mut_variable(&mut self, symbol: &str) -> &mut VC { function iter (line 439) | pub fn iter(&self) -> impl Iterator { function merge (line 442) | pub fn merge( function hashmap_union (line 454) | fn hashmap_union( FILE: program_structure/src/utils/nonempty_vec.rs type NonEmptyVec (line 32) | pub struct NonEmptyVec { function new (line 38) | pub fn new(x: T) -> NonEmptyVec { function first (line 42) | pub fn first(&self) -> &T { function first_mut (line 46) | pub fn first_mut(&mut self) -> &mut T { function last (line 51) | pub fn last(&self) -> &T { function last_mut (line 59) | pub fn last_mut(&mut self) -> &mut T { function push (line 67) | pub fn push(&mut self, x: T) { function pop (line 84) | pub fn pop(&mut self) -> Option { function len (line 98) | pub fn len(&self) -> usize { function is_empty (line 103) | pub fn is_empty(&self) -> bool { function iter (line 108) | pub fn iter(&self) -> NonEmptyIter<'_, T> { type Item (line 115) | type Item = &'a T; type IntoIter (line 116) | type IntoIter = NonEmptyIter<'a, T>; method into_iter (line 118) | fn into_iter(self) -> Self::IntoIter { type NonEmptyIter (line 136) | pub struct NonEmptyIter<'a, T> { function new (line 142) | fn new(vec: &'a NonEmptyVec) -> NonEmptyIter<'a, T> { type Item (line 148) | type Item = &'a T; method next (line 150) | fn next(&mut self) -> Option { type Output (line 163) | type Output = T; function index (line 165) | fn index(&self, index: usize) -> &Self::Output { type Output (line 174) | type Output = T; function index (line 176) | fn index(&self, index: &usize) -> &Self::Output { function index_mut (line 185) | fn index_mut(&mut self, index: usize) -> &mut Self::Output { function index_mut (line 194) | fn index_mut(&mut self, index: &usize) -> &mut Self::Output { function from (line 203) | fn from(xs: NonEmptyVec) -> Vec { function from (line 212) | fn from(xs: &NonEmptyVec) -> Vec { type Error (line 218) | type Error = Error; function try_from (line 220) | fn try_from(mut xs: Vec) -> Result, Error> { type Error (line 230) | type Error = Error; function try_from (line 232) | fn try_from(xs: &Vec) -> Result, Error> { type Error (line 242) | type Error = Error; function try_from (line 244) | fn try_from(xs: &[T]) -> Result, Error> { type Error (line 254) | type Error = Error; function try_from (line 256) | fn try_from(xs: &[T; N]) -> Result, Error> { FILE: program_structure/src/utils/sarif_conversion.rs constant SARIF_VERSION (line 14) | const SARIF_VERSION: &str = "2.1.0"; constant DRIVER_NAME (line 15) | const DRIVER_NAME: &str = "Circomspect"; constant ORGANIZATION (line 16) | const ORGANIZATION: &str = "Trail of Bits"; constant DOWNLOAD_URI (line 17) | const DOWNLOAD_URI: &str = "https://github.com/trailofbits/circomspect"; type ToSarif (line 20) | pub trait ToSarif { method to_sarif (line 25) | fn to_sarif(&self, files: &FileLibrary) -> Result Result SarifResult { type Sarif (line 111) | type Sarif = sarif::Location; type Error (line 112) | type Error = SarifError; method to_sarif (line 114) | fn to_sarif(&self, files: &FileLibrary) -> SarifResult { type ToUri (line 156) | trait ToUri { method to_uri (line 158) | fn to_uri(&self, files: &FileLibrary) -> Result; type Error (line 162) | type Error = SarifError; method to_uri (line 164) | fn to_uri(&self, files: &FileLibrary) -> Result { type SarifError (line 178) | pub enum SarifError { method fmt (line 199) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { type SarifResult (line 196) | type SarifResult = Result; FILE: program_structure/src/utils/writers.rs type ReportFilter (line 17) | pub trait ReportFilter { method filter (line 19) | fn filter(&self, report: &Report) -> bool; method filter (line 23) | fn filter(&self, report: &Report) -> bool { type ReportWriter (line 28) | pub trait ReportWriter { method write_reports (line 30) | fn write_reports(&mut self, reports: &[Report], file_library: &FileLib... method write_report (line 33) | fn write_report(&mut self, report: Report, file_library: &FileLibrary)... method reports_written (line 39) | fn reports_written(&self) -> usize; method write_reports (line 100) | fn write_reports(&mut self, reports: &[Report], file_library: &FileLib... method reports_written (line 122) | fn reports_written(&self) -> usize { method write_reports (line 155) | fn write_reports(&mut self, reports: &[Report], file_library: &FileLib... method reports_written (line 160) | fn reports_written(&self) -> usize { method write_reports (line 206) | fn write_reports(&mut self, reports: &[Report], file_library: &FileLib... method reports_written (line 221) | fn reports_written(&self) -> usize { type LogWriter (line 42) | pub trait LogWriter { method write_messages (line 43) | fn write_messages(&mut self, messages: &[D]); method write_message (line 45) | fn write_message(&mut self, message: D) { method write_messages (line 82) | fn write_messages(&mut self, messages: &[D]) { method write_messages (line 149) | fn write_messages(&mut self, messages: &[D]) { type StdoutWriter (line 50) | pub struct StdoutWriter { method new (line 58) | pub fn new(verbose: bool) -> StdoutWriter { method add_filter (line 67) | pub fn add_filter(mut self, filter: impl ReportFilter + 'static) -> St... method filter (line 72) | fn filter(&self, reports: &[Report]) -> ReportCollection { type CachedStdoutWriter (line 128) | pub struct CachedStdoutWriter { method new (line 134) | pub fn new(verbose: bool) -> CachedStdoutWriter { method reports (line 138) | pub fn reports(&self) -> &ReportCollection { method add_filter (line 142) | pub fn add_filter(mut self, filter: impl ReportFilter + 'static) -> Ca... type SarifWriter (line 166) | pub struct SarifWriter { method new (line 173) | pub fn new(sarif_file: &Path) -> SarifWriter { method add_filter (line 177) | pub fn add_filter(mut self, filter: impl ReportFilter + 'static) -> Sa... method filter (line 182) | fn filter(&self, reports: &[Report]) -> ReportCollection { method serialize_reports (line 190) | fn serialize_reports( FILE: program_structure_tests/src/control_flow_graph.rs function test_cfg_from_if (line 10) | fn test_cfg_from_if() { function test_cfg_from_if_then_else (line 31) | fn test_cfg_from_if_then_else() { function test_cfg_from_while (line 55) | fn test_cfg_from_while() { function test_cfg_from_nested_if (line 89) | fn test_cfg_from_nested_if() { function test_cfg_from_nested_while (line 128) | fn test_cfg_from_nested_while() { function test_cfg_with_non_unique_variables (line 171) | fn test_cfg_with_non_unique_variables() { function test_dominance_from_nested_if (line 229) | fn test_dominance_from_nested_if() { function test_dominance_from_nested_if_then_else (line 273) | fn test_dominance_from_nested_if_then_else() { function test_branches_from_nested_if_then_else (line 322) | fn test_branches_from_nested_if_then_else() { function test_branches_from_nested_if (line 366) | fn test_branches_from_nested_if() { function validate_cfg (line 405) | fn validate_cfg( function validate_dominance (line 468) | fn validate_dominance( function validate_branches (line 498) | fn validate_branches( function lift (line 527) | fn lift(name: &str) -> VariableName { FILE: program_structure_tests/src/static_single_assignment.rs function test_ssa_with_array (line 12) | fn test_ssa_with_array() { function test_ssa_with_components_and_signals (line 29) | fn test_ssa_with_components_and_signals() { function test_ssa_from_if (line 46) | fn test_ssa_from_if() { function test_ssa_from_if_then_else (line 61) | fn test_ssa_from_if_then_else() { function test_ssa_from_while (line 79) | fn test_ssa_from_while() { function test_ssa_from_nested_if (line 93) | fn test_ssa_from_nested_if() { function test_ssa_from_nested_while (line 110) | fn test_ssa_from_nested_while() { function test_ssa_with_non_unique_variables (line 127) | fn test_ssa_with_non_unique_variables() { function validate_ssa (line 151) | fn validate_ssa(src: &str, variables: &[&str]) { function validate_reads (line 189) | fn validate_reads(current_block: &BasicBlock, cfg: &Cfg, env: &mut HashS...