rust_port/rust_port_status.md
This file tracks the progress of porting OCaml files from flow/src/ to Rust.
~/fbsource/fbcode/flow/src)flow_analysis/src/scope_builder_tests.rsflow_analysis/src/ssa_builder_tests.rsflow_analysis/src/test_utils.rsflow_env_builder_resolver/src/env_builder_refinement_test.rsflow_env_builder/src/find_provider_test.rsflow_env_builder_resolver/src/name_def_test.rsflow_env_builder_resolver/src/dependency_sigs.rs
Context traitFlow traitflow_env_builder/src/env_api.rsflow_env_builder/src/eq_test.rsflow_env_builder/src/find_providers.rsflow_env_builder/src/invalidation_api.rsflow_env_builder/src/name_def.rsflow_env_builder_resolver/src/name_def_ordering.rsflow_env_builder/src/name_def_types.rsflow_env_builder_resolver/src/name_resolver.rsflow_env_builder/src/nonvoid_return.rsflow_env_builder/src/pattern_helper.rsflow_env_builder/src/provider_api.rsflow_env_builder/src/refinement_key.rsflow_env_builder/src/selector.rsflow_env_builder/src/ssa_val.rsflow_analysis/src/bindings.rs
addallow_forward_refallow_redeclarationemptyexistspushsingletonto_assocto_mapflow_analysis/src/hoister.rsflow_analysis/src/property_assignment.rsflow_analysis/src/scope_api.rsflow_analysis/src/scope_builder.rsflow_analysis/src/ssa_api.rs
Values typeWriteLoc typewrite_locs_of_read_locprint_valuesflow_analysis/src/ssa_builder.rs
programprogram_with_scopeprogram_with_scope_and_jsx_pragmaAbruptCompletion typeSsaBuilder struct with full AstVisitor implementationflow_codemods/src/utils/codemod_annotator.rs
Queries module → queriesty_or_type_ast type → TyOrTypeAstNSpecSet type → NSpecSetHardCodedImportMap module → HardCodedImportMapvalidate_tyget_tyget_validated_tyMake functor → Make / Mapperflow_codemods/src/utils/codemod_ast_mapper.rs
name type → Namemapper class → CodemodAstMapperlogflow_codemods/src/utils/codemod_ast_reducer.rs
name type → Namereducer class → CodemodAstReducerlogflow_codemods/src/utils/codemod_context.rs
Typed.t → typed::TypedCodemodContextTyped.error → typed::ErrorTyped.fileTyped.ty_at_locTyped.file_sigTyped.metadataTyped.contextTyped.typed_astTyped.lint_severitiesTyped.flowfixme_astUntyped.t → untyped::UntypedCodemodContextUntyped.fileUntypedFlowInit.t → untyped_flow_init::UntypedFlowInitCodemodContextUntypedFlowInit.fileflow_codemods/src/utils/codemod_printer.rs
print_resultsprint_ast_file_dryprint_ast_file_realprint_astsflow_codemods/src/utils/codemod_report.rs
reporter_options type → ReporterOptionsreporter type → Reportert type → CodemodReportunit_reporterS module type → CodemodReportSflow_codemods/src/utils/codemod_runner.rs
log_input_filesget_target_filename_setextract_flowlibs_or_exitunit_result type → UnitResultresult_list type → ResultListabstract_visitor type → AbstractVisitorSIMPLE_TYPED_RUNNER_CONFIG → SimpleTypedRunnerConfigUNTYPED_RUNNER_CONFIG → UntypedRunnerConfigUNTYPED_FLOW_INIT_RUNNER_CONFIG → UntypedFlowInitRunnerConfigSTEP_RUNNER → StepRunnerRUNNABLE → Runnablemerge_targetsmerge_jobpost_checkmk_checkmk_next_for_checkTYPED_RUNNER_WITH_PREPASS_CONFIG → TypedRunnerWithPrepassConfigTYPED_RUNNER_CONFIG → TypedRunnerConfigSimpleTypedRunnerSimpleTypedTwoPassRunnerTypedRunnerWithPrepassTypedRunneruntyped_runner_jobuntyped_digestUntypedRunnerUntypedFlowInitRunnerRepeatRunnerMakeSimpleTypedRunnerMakeSimpleTypedTwoPassRunnerMakeTypedRunnerWithPrepassMakeUntypedFlowInitRunnerMakeUntypedRunnerflow_codemods/src/utils/codemod_utils.rs
abstract_codemod_runner type → AbstractCodemodRunnercodemod_runner type → CodemodRunnerjob_config type → JobConfigsave_ast_diffmake_visitorinitialize_logsMakeMain.main → MakeMain::mainflow_codemods/src/annotate_exports.rs
SignatureVerification module → signature_verificationSignatureVerificationErrorStats module/type → signature_verification_error_stats::SignatureVerificationErrorStatsCodemod_exports_annotator — functor instantiation; in Rust used inline as codemod_annotator::Mapper<'_, '_, SignatureVerificationErrorStats>Acc — functor instantiation; in Rust used inline as flow_services_code_action::insert_type_utils::Acc<SignatureVerificationErrorStats>mapper → AnnotateExportsMapperflow_codemods/src/annotate_literal_declarations.rs
Stats module/type → stats::StatsCodemod_exports_annotator — functor instantiation; in Rust used inline as codemod_annotator::Mapper<'_, '_, Stats>Acc — functor instantiation; in Rust used inline as flow_services_code_action::insert_type_utils::Acc<Stats>mapper → AnnotateLiteralDeclarationsMapperflow_codemods/src/annotate_optional_properties.rs
prop_data type → PropDataPropDataSetprop_accessesdata_of_prop_missing_errorErrorStats module/type → error_stats::ErrorStatsCodemod_lti_annotator — functor instantiation; in Rust used inline as codemod_annotator::Mapper<'_, '_, ErrorStats>Acc — functor instantiation; in Rust used inline as flow_services_code_action::insert_type_utils::Acc<ErrorStats>mapper → AnnotateOptionalPropertiesMapperflow_codemods/src/remove_react_import.rs
RemoveReactImportStats module/type → remove_react_import_stats::RemoveReactImportStatsAccreact_import_def_loc_opt_of_stmthas_unaccounted_react_value_usage_visitor → HasUnaccountedReactValueUsageVisitormapper → RemoveReactImportMapperflow_config/src/flowconfig.rs
file_watcher type → FileWatcherlazy_mode type → LazyModeconfig type → FlowConfig (pub fields)warning type → Warningerror type → Errorconfig_result type — Rust uses Result<(FlowConfig, Vec<Warning>, String), Error> directlyget → getget_hash — not needed separately; get returns the hash as the third tuple elementget_with_hash — same as get in Rust (always returns config + warnings + hash)get_with_ignored_version → get_with_ignored_versionempty_configinitwriteconfig is an abstract type
requiring accessor functions. In Rust, FlowConfig and Opts have public fields, so
callers access config.ignores, config.options.all, etc. directly. No getters needed.ignores — config.ignoresuntyped — config.untypeddeclarations — config.declarationsincludes — config.includeslibs — config.libsenabled_rollouts — config.rollouts (callers map .enabled_group directly)lint_severities — config.lint_severitiesstrict_mode — config.strict_moderequired_version — config.versionconfig.options.* getters — direct field access on config.optionscfg(fbcode_build) gate live in
flow_cli/src/extra_commands.rsflow_cli/src/glean_command.rsflow_cli/src/glean_runner.rs
module DocumentationFullspanMap → mod documentation_fullspan_map
doc_span type → DocSpancombinecreateclass member_searcher → struct MemberSearcherclass type_reference_searcher → struct TypeReferenceSearcherremove_dot_flow_suffixmodule_of_module_refloc_of_indexloc_of_defsource_of_type_exportsexport_of_export_nametype_import_declarationstype_declaration_referencesextract_member_defmember_declaration_referencesimport_declarationsloc_of_obj_value_proploc_of_obj_annot_propsource_of_exportslocal_declaration_referencesclass declaration_info_collectormodule_documentationsdeclaration_infosfile_of_string_modulesfile_linessall_schema_versionflow_schema_versioncreate_typed_runner_config → impl SimpleTypedRunnerConfig for GleanRunnerConfig
check_optionsexpand_rootsreportervisitmakeflow_cli/src/glean_schema.rsflow_cli/src/offset_cache.rsflow_cli/src/apply_code_action_command.rsflow_cli/src/ast_command.rsflow_cli/src/autocomplete_command.rsflow_cli/src/autofix_command.rsflow_cli/src/batch_coverage_command.rsflow_cli/src/foreground_check_commands.rsflow_cli/src/check_contents_command.rsflow_cli/src/codemod_command.rsflow_cli/src/command_connect.rsflow_cli/src/command_connect_simple.rsunnecessary interfaceflow_cli/src/command_mean_kill.rsflow_cli/src/command_spec.rsflow_cli/src/command_utils.rs
run_commandexpand_file_listget_filenames_from_inputprint_versionexpand_pathcollect_error_flagswarning_flags → add_warning_flagsprofile_flag → add_profile_flagerror_flags → add_error_flagscollect_json_flags — inlined in get_json_flagsjson_flags → add_json_flagstemp_dir_flag → add_temp_dir_flagcollect_lazy_flags — inlined in get_connect_flagslazy_flags → add_lazy_flagsinput_file_flag → add_input_file_flagverbose_focus_flag → add_verbose_focus_flagtype shared_mem_params → struct SharedMemParamscollect_shm_flags → get_shm_flagsshm_flags → add_shm_flagsshm_configfrom_flag → add_from_flagfrom_flag (collector logic) → apply_from_flag + default_from_flagstrip_root_flag → add_strip_root_flagwait_for_recheck_flag → add_wait_for_recheck_flagvpn_less_flag → add_vpn_less_flagpath_flag → add_path_flagautostop_flag → add_autostop_flagverbose_flags → add_verbose_flags + verbose_flagsslow_to_check_logging_flags → add_slow_to_check_logging_flagsquiet_flag → add_quiet_flagtype on_mismatch_behavior → enum OnMismatchBehavioron_mismatch_flag → add_on_mismatch_flagroot_flag → add_root_flagignore_version_flag → add_ignore_version_flaglog_file_flags → add_log_file_flags + get_log_file_flagstype offset_style → enum OffsetStyleoffset_style_flag → add_offset_style_flag + get_offset_styleoffset_kind_of_offset_styleflowconfig_multi_errorflowconfig_multi_warnread_config_or_exitread_config_and_hash_or_exitcheck_versionassert_versiontype flowconfig_params → struct FlowconfigFlagslist_of_string_argcollect_flowconfig_flags — inlined in get_options_flagsremove_exclusionfile_options — inlined in make_optionsfile_options_of_flowconfigignore_flag → add_ignore_flaguntyped_flag → add_untyped_flagdeclaration_flag → add_declaration_flaginclude_flag → add_include_flaglib_flag → add_lib_flaglints_flag → add_lints_flagno_restart_flag → add_no_restart_flagflowconfig_flags → add_flowconfig_flagstype connect_params → struct ConnectParamscollect_connect_flags → get_connect_flagscollect_connect_flags_without_lazy — inlined in add_connect_flags_no_lazyconnect_flags_with_lazy_collector → add_connect_flags_with_lazy_collectorconnect_flags_no_lazy → add_connect_flags_no_lazyconnect_flags → add_connect_flagsconnect_and_json_flags → add_connect_and_json_flags + get_connect_and_json_flagsserver_log_filemonitor_log_filemodule Options_flags / type t → struct OptionsFlagsmodule Saved_state_flags / type t → struct SavedStateFlagsmodule Base_flags / type t → struct BaseFlagsparse_lints_flagoptions_flags (incl. collect_options_flags) → add_options_flags + get_options_flagssaved_state_flags (incl. collect_saved_state_flags) → add_saved_state_flags + get_saved_state_flagsflowconfig_name_flag → add_flowconfig_name_flagbase_flags → add_base_flags + get_base_flagsdefault_file_watcher_timeout → DEFAULT_FILE_WATCHER_TIMEOUTdefault_file_watcher_mergebase_with → DEFAULT_FILE_WATCHER_MERGEBASE_WITHfile_watcher_flag → file_watcher_flag + file_watcher_arg + add_file_watcher_flagsoptions_and_json_flags → add_options_and_json_flagsjson_version_flag → add_json_version_flag + get_json_versionno_cgroup_flag (incl. get_systemd_binary, can_run_systemd, exec_in_cgroup_if_systemd_available, collect_no_cgroup_flag) → add_no_cgroup_flag + maybe_run_in_cgroup + exec_in_cgroup_if_systemd_availableget_temp_dirmake_optionsmake_envsearch_for_rootguess_rootfind_a_rootget_the_rootconvert_input_posget_path_of_fileget_file_from_filename_or_stdinparse_location_with_optional_filenameexe_nameconnect_and_make_request (recursive inner) → connect_and_make_request_innerconnect_and_make_request (outer with timeout)failwith_bad_responseget_check_or_status_exit_codechoose_file_watcherchoose_file_watcher_mergebase_withchoose_file_watcher_timeoutsubcommand_spectype codemod_params → struct CodemodParamscollect_codemod_flags → get_codemod_flagscodemod_flags → add_codemod_flagsflow_cli/src/config_command.rsflow_cli/src/coverage_command.rsflow_cli/src/cycle_command.rsflow_cli/src/dump_impl_deps_command.rsflow_cli/src/dump_types_command.rsflow_cli/src/env_builder_debug_command.rsflow_cli/src/find_module_command.rsflow_cli/src/force_recheck_command.rsflow_cli/src/get_def_command.rsflow_cli/src/graph_command.rsflow_cli/src/init_command.rsflow_cli/src/inlay_hint_command.rsflow_cli/src/llm_context_command.rsflow_cli/src/ls_command.rsflow_cli/src/lsp_command.rsflow_cli/src/save_state_command.rsflow_cli/src/server_command.rsflow_cli/src/shell_complete_command.rsflow_cli/src/start_command.rsflow_cli/src/status_command.rsflow_cli/src/stop_command.rsflow_cli/src/type_at_pos_command.rsflow_cli/src/type_of_name_command.rsflow_cli/src/version_command.rsflow_common/src/bitset.rs
all_oneall_zerofrom_int_uncheckedis_subsetmemno_overlapsetto_intunsetcompare → #[derive(Ord)]equal → #[derive(Eq)]max_size → const MAX_SIZEto_string → impl Displayflow_common_build_id/src/lib.rs
get_build_idflow_common_cycle_hash/src/lib.rs
create_cxcreate_nodecollect_scccalc_cycle_hashstrongconnectrootread_hashflow_common_errors/src/error_codes.rsflow_common_errors/src/error_utils.rs
capitalizecodecode_of_printable_errorconjunction_concatdeprecated_json_props_of_locdescdesc_of_reason_descformat_errorsformat_single_styled_error_for_vscodefull_status_json_of_errorshardcoded_string_desc_refjson_of_errors_with_contextkind_of_printable_errorloc_of_printable_errorlsp_of_errormessage_of_stringmk_errormk_speculation_errorno_desc_refno_desc_ref_mappatch_misplaced_errorpatch_unsuppressable_errorprint_errorsrefref_mapstring_of_kindstring_of_loctextflow_common_exit/src/lib.rs
set_json_modeunset_json_modeexitflow_common_exit_status/src/lib.rs
json_props_of_tflow_services_export/src/fuzzy_path/score_match.rsflow_common_leb128/src/unsigned.rsflow_common_leb128/src/unsigned.rs
read → unsigned::read()write → unsigned::write()flow_lint_settings/src/lint_severity_cover.rs
new_builder → Builder::new()update_range → Builder::update_range()update_settings → Builder::update_settings()update_settings_and_running → Builder::update_settings_and_running()bake → Builder::bake()find → LintSeverityCover::find()find_opt → LintSeverityCover::find_opt()get_severity → LintSeverityCover::get_severity()is_explicit → LintSeverityCover::is_explicit()to_string → LintSeverityCover::to_debug_string()flow_lint_settings/src/lint_settings.rs
of_default → LintSettings::of_default()set_value → LintSettings::set_value()set_all → LintSettings::set_all()get_default → LintSettings::get_default()get_value → LintSettings::get_value()is_explicit → LintSettings::is_explicit()get_loc → LintSettings::get_loc()iter → LintSettings::iter()fold → LintSettings::fold()map → LintSettings::replace_with_mapped()empty_severities → LintSettings::empty_severities()default_severities → LintSettings::default_severities()is_enabled → LintSettings::is_enabled()of_lines → LintSettings::of_lines()to_string → LintSettings::to_debug_string()flow_lint_settings/src/lints.rs (2/2 functions, 100% complete)
string_of_kind → LintKind::as_str()kinds_of_string → LintKind::parse_from_str()flow_lint_settings/src/severity.rs (6/6 functions, 100% complete)
string_of_severity → Severity::as_str()output_string_of_severity → Severity::as_output_str()severity_of_string → Severity::severity_of_str()severity_cmp → Ord trait derive (automatic via PartialOrd/Ord)severity_min → Severity::min_of()severity_max → Severity::max_of()flow_lint_settings/src/strict_mode_settings.rs
emptyfolditerof_linesflow_logging_utils/src/lib.rs
hh_logger_level_of_envset_hh_logger_min_levelinit_loggersset_server_optionsdump_server_optionsdisable_logging (only disables flow_event_logger; EventLogger and FlowInteractionLogger calls are not ported)lz4_flex crateflow_common_modulename/src/haste_module_info.rs
mkmodule_namenamespace_bitsetcompare → impl Ordequal → #[derive(Eq)]to_string → impl Displayflow_common_modulename/src/modulename.rs
Modulename enum (Haste/Filename variants)ModulenameSet type aliasModulenameMap type aliasunnecessary monad in rustflow_packed_locs/src/packed_locs.rs (inline tests)flow_packed_locs/src/packed_locs.rs
compare_locspackunpackflow_common_semver/src/semver_parser.rs (inline tests)flow_common_semver/src/semver_range.rs (inline tests)flow_common_semver/src/semver.rs (inline tests; OUnit aggregator dropped)flow_common_semver/src/semver_version.rs (inline tests)flow_common_semver/src/semver.rsflow_common_semver/src/semver_comparator.rsflow_common_semver/src/semver_lexer.rsflow_common_semver/src/semver_parser.rsflow_common_semver/src/semver_range.rsflow_common_semver/src/semver_version.rsflow_common/src/span_map.rsflow_common_tarjan/src/tarjan_test.rsflow_common_tarjan/src/lib.rs
topsortcompare (TarjanNode trait method)find (TarjanMap trait method + Graph impl)to_string (TarjanNode trait method)flow_common_transaction/src/lib.rs
addcommitrollbackwith_transaction_syncflow_common_ty/src/
flow_common_ty/src/ty_printer_test.rsflow_common_ty/src/ty_simplifier_test.rsflow_common_ty/src/ty.rs
bk_union → bk_union()bk_inter → bk_inter()mk_union → mk_union()mk_inter → mk_inter()explicit_any → explicit_any()is_dynamic → is_dynamic()mk_maybe → mk_maybe()mk_generic_class → mk_generic_class()mk_generic_interface → mk_generic_interface()mk_generic_talias → mk_generic_talias()mk_exact → mk_exact()mk_array → mk_array()debug_string_of_generic_kind → debug_string_of_generic_kind()string_of_utility_ctor → string_of_utility_ctor()types_of_utility → types_of_utility()string_of_prop_source → string_of_prop_source()ComparatorTy in ty_utilssymbols_of_elt → symbols_of_elt()map_loc_symbol - Symbol::map_locsflow_common_ty/src/ty_ancestors.rs (6/6 traits, 100% complete)
class iter_ty_base → trait TyIterBase<Env, L>class iter2_ty_base → trait TyIter2Base<Env, L>class map_ty_base → trait TyMapBase<Env, L>class endo_ty_base → trait TyEndoBase<Env, L>class reduce_ty_base → trait TyReduceBase<Env, L> + trait Monoidclass mapreduce_ty_base → trait TyMapReduceBase<Env, L>flow_common_ty/src/ty_debug.rs
flow_common_ty/src/ty_printer.rs
better_quote → better_quote()property_key_quotes_needed → property_key_quotes_needed()string_of_elt → string_of_elt()string_of_elt_single_line → string_of_elt_single_line()string_of_decl_single_line → string_of_decl_single_line()string_of_t → string_of_t()string_of_t_single_line → string_of_t_single_line()string_of_symbol_set → string_of_symbol_set()string_of_type_at_pos_result → string_of_type_at_pos_result()utf8_escape → utf8_escape()flow_common_ty/src/ty_serializer.rs (1/1 functions, 100% complete)
type_ → Serializer::type_()type options → struct SerializerOptionsflow_common_ty/src/ty_symbol.rs (1/1 functions, 100% complete)
builtin_symbol → builtin_symbol()flow_common_ty/src/ty_utils.rs (9/9 functions, 100% complete)
size_of_type → size_of_type()size_of_elt → size_of_elt()simplify_type → simplify_type()simplify_decl → simplify_decl()simplify_elt → simplify_elt()unmaybe_ty → unmaybe_ty()elt_equal → elt_equal()typify_elt → typify_elt()reinterpret_elt_as_type_identifier → reinterpret_elt_as_type_identifier()flow_common/src/bitset.rs (inline tests)flow_common_utils/src/cache.rs (inline tests)irrelevant (OUnit aggregator, replaced by cargo test discovery)flow_common_utils/src/graph.rs (inline tests)flow_common_utils/src/line.rs (inline tests)irrelevantirrelevantflow_common_utils/src/checked_set.rs
addallcardinaldebug_counts_to_stringdebug_equaldebug_to_stringdependenciesdependencies_cardinaldependentsdependents_cardinaldiffemptyfilterfocusedfocused_cardinalis_dependencyis_dependentis_emptyis_focusedmemmem_dependencymem_dependentmem_focusedof_focused_listpartition_dependenciesremoveunionflow_common_utils/src/filename_cache.rs
include Cache.Make (Utils_js.FilenameMap) surface → type Cache<V> = crate::cache::Cache<FileKey, V> plus wrapper fnsmakeclearremove_entryget_from_cachewith_cachewith_cache_syncunnecessaryflow_parser/src/loc_sig.rsflow_common_utils/src/cache.rs
Make functor → Cache<K, V> implmakeclearremove_entryget_from_cachewith_cachewith_cache_syncflow_common_utils/src/cache.rs)flow_common_utils/src/graph.rsunnecessaryflow_common_utils/src/line.rsVec in rustflow_common_utils/src/utils_js.rsflow_common_utils/src/utils_jsx.rsflow_common_vcs/src/eden.rsflow_common_vcs/src/git.rsflow_common_vcs/src/hg.rsflow_common_vcs/src/vcs.rsflow_common_vcs/src/vcs_utils.rsflow_common_xx/src/lib.rs
init → State::newupdate → State::updateupdate_int → State::update_intupdate_int64 → State::update_int64digest → State::digesthashXxHasher (Rust-only: std::hash::Hasher adapter over State)content_hash_of (Rust-only: replaces Type_sig_bin.hash_serialized for structured data)equal → derived Eq on u64to_string → unnecessary for u64modulopp_hash → unnecessary for u64flow_common/src/docblock.rsEnclosingContext enum with variantsis_conditional_test_contextflow_common/src/files.rs
absolute_pathchop_flow_extchop_platform_suffix_for_filechop_platform_suffix_for_haste_moduleconstruct_pathexpand_builtin_root_tokenexpand_project_root_tokenfilename_from_stringget_all_watched_extensionsgrouped_platform_extension_opthas_flow_exthaste_name_optis_declarationis_flow_fileis_ignoredis_in_flowlibis_includedis_json_fileis_prefixis_untypedis_valid_pathis_within_node_modulesmake_next_filesmake_path_absolutemodule_declaration_dirnamesmodule_file_extsnode_resolver_dirnamesnormalize_pathplatform_specific_extensions_and_indices_optrelative_interface_mref_of_possibly_platform_specific_filerelative_pathsplit_pathwantedwatched_pathsabsolute_path_regexp → ABSOLUTE_PATH_REGEXP lazy_staticcanonicalize_filenames → canonicalize_filenames()current_dir_name → CURRENT_DIR_NAME lazy_staticdefault_lib_dir → pub field on FileOptionsdefault_options → Default::default() impl for FileOptionsdir_sep → DIR_SEP lazy_staticeponymous_module → in flow_common_modulename crate (circular dep)flow_ext → pub const FLOW_EXTget_all → get_all()get_flowtyped_path → get_flowtyped_path()global_file_name → pub const GLOBAL_FILE_NAMEignores → pub field on FileOptionsimaginary_realpath → imaginary_realpath()implicitly_include_root → pub field on FileOptionsincludes → pub field on FileOptionsmk_options → pub struct construction for FileOptionsmkdirp → mkdirp()module_resource_exts → pub field on FileOptionsmulti_platform → pub field on FileOptionsmulti_platform_extension_group_mapping → pub field on FileOptionsmulti_platform_extensions → pub field on FileOptionsnode_modules_containers → parameter passing (intentional Rust idiom)ordered_and_unordered_lib_pathsparent_dir_name → PARENT_DIR_NAME lazy_staticuntyped → pub field on FileOptionsflow_common/src/flow_symbol.rs (100% complete)
kind type → SymbolKind enum (all 16 variants)string_of_kind → SymbolKind::as_str()symbol type → Symbol(Arc<SymbolInner>)mk_symbol → Symbol::new()mk_class_symbol → Symbol::mk_class_symbol()mk_component_symbol → Symbol::mk_component_symbol()mk_constant_symbol → Symbol::mk_constant_symbol()mk_enum_symbol → Symbol::mk_enum_symbol()mk_module_symbol → Symbol::mk_module_symbol()mk_namespace_symbol → Symbol::mk_namespace_symbol()mk_type_alias_symbol → Symbol::mk_type_alias_symbol()mk_type_parameter_symbol → Symbol::mk_type_parameter_symbol()mk_variable_symbol → Symbol::mk_variable_symbol()kind_of_symbol → Symbol::kind()name_of_symbol → Symbol::name()def_loc_of_symbol → Symbol::def_loc_of_symbol()dump_symbol → dump_symbol()dump_symbol_opt → dump_symbol_opt()flow_common/src/flow_import_specifier.rs (5/5 functions, 100% complete)
userland → Userland::from_smol_str() (constructor)display_userland → Userland::display()map_userland → Userland::map()unwrap_userland → Userland::into_inner() / Userland::as_str()userland_specifier → FlowImportSpecifier::userland()flow_server_env/src/flow_lsp_conversions.rs
markup_stringselection_range_of_locfunc_details_result_to_lspflow_signature_help_to_lspflow_completion_item_to_lspflow_completions_to_lspfile_key_to_uriloc_to_lsploc_to_lsp_with_defaultflow_edit_to_texteditlsp_DocumentIdentifier_to_flow_pathposition_of_document_positiondiagnostics_of_flow_errorssynthetic_diagnostics_of_switch_to_match_eligible_locationssynthetic_diagnostics_of_refined_locationsflow_common/src/flow_projects.rs
default_options → ProjectsOptions::default() (via Default trait)mk_options → ProjectsOptions::mk()from_bitset_unchecked → FlowProjects::from_bitset_unchecked()to_bitset → FlowProjects::to_bitset()bitset_of_project_string → FlowProjects::from_project_str()projects_bitset_of_path → FlowProjects::from_path()is_common_code_path → ProjectsOptions::is_common_code_path()projects_strict_boundary_validate_import_pattern_opt_outs → ProjectsOptions::projects_strict_boundary_validate_import_pattern_opt_outs()is_import_specifier_that_opt_out_of_strict_boundary → ProjectsOptions::is_import_specifier_that_opt_out_of_strict_boundary()reachable_projects_bitsets_from_projects_bitset → ProjectsOptions::reachable_projects_bitsets_from_projects_bitset()individual_projects_bitsets_from_common_project_bitset → ProjectsOptions::individual_projects_bitsets_from_common_project_bitset()individual_projects_bitsets_from_common_project_bitset_excluding_first → ProjectsOptions::individual_projects_bitsets_from_common_project_bitset_excluding_first()multi_platform_ambient_supports_platform_for_project → ProjectsOptions::multi_platform_ambient_supports_platform_for_project()equal (FlowProjects has PartialEq derive)flow_common/src/flow_version.rsflow_common/src/hint.rs (6/6 functions, 100% complete)
string_of_predicate_kind → string_of_predicate_kind()string_of_hint_unknown_kind → HintDecomposition::to_debug_string()string_of_hints → Hint::string_of_hints()decompose_hints → Hint::decompose()map_decomp_op → HintDecomposition::map()map → Hint::map()flow_common/src/js_number.rs
is_float_safe_integermax_safe_integer → pub const MAX_SAFE_INTEGERmin_safe_integer → pub const MIN_SAFE_INTEGERirrelevant (directly use BTreeMap)flow_common/src/options.rsflow_common/src/path_matcher.rs
emptymatchesstemsadd → PathMatcher::add_pathflow_common/src/platform_set.rs
available_platformsis_subsetno_overlapplatform_specific_implementation_mrefs_of_possibly_interface_fileto_platform_string_setflow_common/src/reason.rs
code_desc_of_expressioncode_desc_of_patternconcretize_equaldump_reasonfunc_reasonin_rangeinvalidate_rtype_alias → VirtualReasonDesc::invalidate_rtype_alias()is_array_reasonis_instantiable_reasonis_literal_array_reasonis_literal_function_reasonis_literal_object_reasonis_nullish_reasonis_record_reasonis_scalar_reasonlocationless_reasonmk_expression_reasonmk_idmk_initial_arguments_reasonmk_obj_lit_reasonmk_pattern_reasonmk_reasonmk_typed_expression_reasonreact_element_desc_of_component_reasonstring_of_alocstring_of_descstring_of_locstring_of_reasonstring_of_sourceannot_loc_of_reason → VirtualReason::annot_loc()def_loc_of_reason → VirtualReason::def_loc()def_loc_opt_of_reason → VirtualReason::def_loc_opt()desc_of_reason → VirtualReason::desc()is_blamable_reason → VirtualReasonDesc::is_blamable()is_lib_reason → VirtualReasonDesc::is_lib()is_lib_reason_def → VirtualReasonDesc::is_lib_def()is_promise_reason → VirtualReasonDesc::is_promise()is_scalar_reason_desc → VirtualReasonDesc::is_scalar()loc_of_reason → VirtualReason::loc()map_desc_locs → VirtualReasonDesc::map_locs()map_reason_locs → VirtualReason::map_locs()opt_annot_reason → VirtualReason::opt_annotate()replace_desc_new_reason → VirtualReason::replace_desc_new()replace_desc_reason → VirtualReason::replace_desc()repos_reason → VirtualReason::reposition()unwrap_reason_desc → VirtualReasonDesc::unwrap()update_desc_new_reason → VirtualReason::update_desc_new()update_desc_reason → VirtualReason::update_desc()mk_annot_reason → mk_annot_reason()display_string_of_name → Display for Name trait impl (also Name::as_str())json_of_loc → json_of_loc()json_of_loc_props → json_of_loc_props()json_of_source → json_of_source()json_source_type_of_source → json_source_type_of_source()pp_virtual_reason_desc → just use Debugrange_string_of_loc → range_string_of_loc()show_reason_desc_function → just use Debugshow_virtual_reason_desc → just use Debugflow_common/src/refinement_invalidation.rs
Reason enumRefinementInvalidation structsingletonstring_of_reasonunionmergeflow_common/src/relay_options.rsflow_common/src/slow_to_check_logging.rsflow_common/src/subst_name.rsflow_common/src/verbose.rsflow_flowlib/src/lib.rsflow_dfind/src/lib.rsflow_dfind/src/lib.rsflow_dfind/src/lib.rsflow_dfind/src/lib.rsflow_dfind/src/dfind_server.rsflow_edenfs_watcher/src/lib.rs (thin Rust wrapper over rust_edenfs_watcher::flow_api)rust_edenfs_watcher::typesrust notify craterust notify craterust notify craterust notify crateflow_common_socket/src/socket.rs
addr type → Socket::Addrwith_addrget_pathaddr_for_openinit_unix_socket → flow_common_socket/src/socket.rs::init_tcp_socketcfg(debug_assertions)cfg(debug_assertions)flow_server/src/cgroup.rsirrelevant, (use BTreeMap, HashMap or FlowOrdMap)irrelevant (use BTreeSet, HashSet or FlowOrdSet)irrelevant (directly use things like BTreeMap<i32, T>)irrelevant (directly use things like BTreeSet<i32>)irrelevant (directly use queue in rust)irrelevant (only useful for iMap, but iMap is useless in Rust)irrelevant (directly use things like BTreeMap<String>)irrelevant (directly use things like BTreeSet<String>)irrelevant (only useful for sMap, but sMap is useless in Rust)flow_utils_union_find/src/lib.rs (6/6 functions, 100% complete)
create_root → Node::create_root()create_goto → Node::create_goto()find_root → Graph::find_root()find_root_id → Graph::find_root_id()find_constraints → Graph::find_constraints()find_graph → Graph::find_graph()irrelevant, (use BTreeMap, HashMap or FlowOrdMap)irrelevant, (use BTreeMap, HashMap or FlowOrdMap)flow_hh_json/src/lib.rs (partial: JSON printing functions only)
json_string_of_valuejson_to_multilineprint_json_endlineprerr_json_endlinelsp_types crate (standard LSP types) + flow_monitor_rpc/src/lsp_prot.rs (Flow extensions)flow_server_env/src/lsp_helpers.rs
lsp_uri_to_pathpath_to_lsp_urilsp_textDocumentIdentifier_to_filenamelsp_position_to_fclsp_range_to_fclsp_edit_to_fcapply_changesget_char_from_lsp_positionapply_changes_unsafepos_compareranges_overlapget_range_overlapupdate_pos_due_to_prior_replaceupdate_range_due_to_replaceupdate_diagnostics_due_to_changeget_rootsupports_codeActionKindssupports_experimental_snippet_text_editsupports_configurationsupports_statussupports_snippetssupports_tagssupports_preselectsupports_completion_item_insert_replacesupports_completion_item_label_detailssupports_hierarchical_document_symbolsupports_connectionStatusflow_monitor_rpc/src/lsp_mapper.rs (uses lsp_types crate)flow_common/src/string_utils.rs)
filename_escapeflow_daemon/src/daemon.rsflow_common/src/lock.rs (full port: grab, release, blocking_grab_then_release, fd_of, check)flow_daemon/src/pid_log.rsflow_common/src/sys_utils.rs)
null_pathtemp_dir_namewith_umaskexpanduserexecutable_pathmkdir_no_failpid_of_handlenormalize_filename_dir_sepflow_watchman/src/lib.rsflow_heap/src/entity.rs
flow_lsp/src/lsp_errors.rsflow_lsp/src/document_symbol_provider.rsflow_lsp/src/flow_lsp.rs (persistent TCP connection to standalone server, server auto-start/kill, LSP request keying, and connected-mode event loop are now functional; shared connect params live in flow_server_env/src/lsp_connect_params.rs; see remaining function-level gaps)
wrapped_id type → WrappedIdencode_wrappeddecode_wrappedserver_conn type → ServerConnshow_status_t type → ShowStatusTopen_file_info type → OpenFileInfoinitialized_env type → InitializedEnvevent type → Eventread_flowconfig_from_diskstring_of_server_statestring_of_stateto_stdoutget_ienvupdate_ienvupdate_recent_summarieslog_of_summariescommand_key_of_ienvcommand_key_of_server_statecommand_key_of_stateupdate_open_filenew_metadataselectively_omit_errorsget_next_event_from_server (now uses persistent_rpc over TCP to poll for server messages)get_next_event_from_clientget_next_event (now uses get_next_event_sync which polls both server and client)convert_to_client_urisconvert_to_server_urissend_request_to_clientshow_status (Nuclide window/status capability is unported, so this only exercises the ShowMessage fallback path)send_to_server (now uses persistent_rpc over TCP)send_lsp_to_serverrequest_configurationsubscribe_to_config_changesdo_initializeshow_connected_status (status UX is downgraded because window/status support is not modeled)track_to_servertrack_from_serverparse_and_cachedo_documentSymboldo_selectionRangedo_rage (log-file/temp-dir/PID-stack collection helpers are still unported, so rage output only includes adapter state)parse_jsoncollect_interaction_stategc_pending_interactionsstart_interactionlog_interactiondismiss_tracksdo_live_diagnosticsget_local_request_handler (no OCaml-style mistyped-handler validation; non-error results are dispatched through a generic closure path)try_connect (now implements persistent TCP connection with server auto-start, stale server kill, and handshake via persistent_rpc)log_needed typerun (main loop now polls both server and client via get_next_event_sync; still synchronous rather than Lwt-based, and no periodic tick/select)get_next_event_sync (Rust-only: synchronous event multiplexer for server + client)persistent_rpc (Rust-only: TCP-based server RPC for standalone mode)try_decode_wrappedlsp_fmt_parse_idlsp_helpers_supports_statuslsp_helpers_supports_connection_statuslsp_helpers_lsp_uri_to_pathlsp_helpers_get_rootparse_lsp_requestlsp_fmt_print_code_action_resultstart_flow_serverkill_stale_serverflow_lsp/src/lsp_errors.rsflow_lsp/src/lsp_interaction.rs
id type → Idtrigger type → Triggersource type → Sourceux type → Uxserver_status type → ServerStatusbuffer_status type → BufferStatusstate type → Statestring_of_triggerlsp_id_of_triggerstring_of_uxuri_of_uxstring_of_server_statusstring_of_buffer_statussource_of_triggerstring_of_sourcepending_interaction type → PendingInteractioninternal_state type → InternalStatestartrecheck_startlog_pushed_errorsloggcdismiss_tracksinitflushtrigger_of_lsp_msgflow_lsp/src/selection_range_provider.rsflow_server_monitor/src/flow_server_monitor_connection.rs (type alias EphemeralConnection)flow_server_monitor/src/flow_server_monitor_connection.rs
ConnectionProcessor trait, Command enum, Connection<P> generic structwrite, write_and_close, close_immediately, try_flush_and_close, is_closed, wait_for_closed, createflow_server_monitor/src/flow_server_monitor_connection.rs (type alias MonitorPersistentConnection)flow_server_monitor/src/flow_server_monitor_connection.rs (type alias ServerConnection)flow_server_monitor/src/flow_server_monitor_logger.rs
dest type, WriteLoop (as synchronous log::Log), init_loggerfatal/error/warn/info/debug (async → log macros)fatal_s/error_s/warn_s/info_s/debug_s (sync → log macros)flow_monitor_rpc/src/monitor_rpc.rs
channels type → Channelsstate type → Statewith_channel, with_infd, with_outfdinit, disableread (structure ported, Marshal transport stubbed)send (structure ported, Marshal transport stubbed)respond_to_request, request_failedrespond_to_persistent_connection, send_telemetrystatus_updateflow_monitor_rpc/src/file_watcher_status.rs
file_watcher type → FileWatcherstatus' type → StatusKindstatus type → Statusstring_of_file_watcherstring_of_statusflow_monitor_rpc/src/server_status.rs
progress type → Progressdeadline type → Deadlineevent type → Eventtypecheck_status type → TypecheckStatusrestart_reason type → RestartReasontypecheck_mode type → TypecheckModestatus type → Statusstring_of_progressstring_of_eventstring_of_typecheck_statusstring_of_restart_reasonstring_of_statusupdateinitial_status → INITIAL_STATUSis_freeis_significant_transitionget_progresschange_init_to_restartflow_server_monitor/src/exit_signal.rs
signal → SIGNAL (ExitCondition with Condvar+Mutex)flow_server_monitor/src/file_watcher.rs
exit_reason type → ExitReasonwatcher class type → Watcher traitdummy class → Dummy structchanges_since_mergebase, query_mergebasedfind class → flow_server_monitor/src/file_watcher.rs::dfind_file_watcherWatchmanFileWatcher module → watchman_file_watcher modEdenFSFileWatcher module → edenfs_file_watcher modflow_server_monitor/src/flow_server_monitor.rs
handle_waiting_start_commandfallback_error_handlerlog_monitor_optionsdaemonizestartflow_server_monitor/src/flow_server_monitor_daemon.rs
start_function type → StartFunctionwait_msg type → WaitMsgstate type → Stateregister_entry_pointwait_loopdaemonizeflow_server_monitor/src/flow_server_monitor_options.rs
watchman_options type → WatchmanOptionsedenfs_options type → EdenfsOptionsfile_watcher type → FileWatchert type → MonitorOptionsstring_of_file_watcherflow_server_monitor/src/flow_server_monitor_server.rs
command type → Commandexit, stop, StopReasonDoomsday module → doomsday modcommand_stream, push_to_command_streamServerInstance module → server_instance modKeepAliveLoop → keep_alive_loop_mainsetup_signal_handlersstartsend_request, send_persistent_requestnotify_new_persistent_connection, notify_dead_persistent_connectionflow_server_monitor/src/persistent_connection_map.rs
add, get, remove, cardinal, get_all_clientsflow_server_monitor/src/request_map.rs
add, remove, remove_all, cardinalflow_server_monitor/src/socket_acceptor.rs
handle_ephemeral_request, handle_persistent_messageStatusWriter trait, status_loop_runcreate_ephemeral_connection, create_persistent_connectionclose, perform_handshake_and_get_client_handshakeHandler trait, socket_acceptor_loopAutostop module, MonitorSocketHandler, LegacySocketHandlerrun, run_legacyflow_server_monitor/src/status_stream.rs
StatusInfo type, check_if_free, broadcast_significant_transitionprocess_update (from UpdateLoop)file_watcher_for_status, empty, call_on_freefile_watcher_ready, file_watcher_deferredreset, get_status, ever_been_freewait_for_significant_status, updateflow_parser/src/flow_ast_mapper_test.rsflow_parser/src/jsdoc_test.rsflow_parser/src/comment_attachment.rsflow_parser/src/comment_utils.rsflow_parser/src/declaration_parser.rsflow_parser/src/enum_common.rsflow_parser/src/enum_parser.rsflow_parser/src/estree_translator.rsflow_parser/src/expression_parser.rsflow_parser/src/file_key.rsflow_parser/src/ast.rsflow_parser/src/ast_visitor.rsflow_parser/src/ast_utils.rs
acceptable_statement_in_declaration_contextextract_bigint_literalextract_number_literalfold_bindings_of_patternfold_bindings_of_variable_declarationsget_call_to_jest_module_mocking_fnget_call_to_object_dot_freeze_argget_inferred_type_guard_candidatehoist_function_and_component_declarationshook_callhook_functionhook_nameis_bigint_literalis_call_to_invariantis_call_to_is_arrayis_call_to_object_dot_freezeis_call_to_object_static_methodis_call_to_requireis_module_dot_exportsis_number_literalis_super_member_accessis_type_only_declaration_statementmatch_pattern_has_bindingmatch_root_identmerge_commentsmerge_comments_with_internalmk_commentsmk_comments_optmk_comments_with_internal_optnegate_bigint_literalnegate_number_literalpartition_directivespattern_has_bindingsplit_commentsexpression_of_match_member_patternident_of_sourceloc_of_annotation_or_hintloc_of_expressionloc_of_identloc_of_patternloc_of_return_annotloc_of_statementmatch_root_name → pub const MATCH_ROOT_NAMEname_of_identpush_toplevel_typesource_of_identstring_of_assignment_operatorstring_of_bigintstring_of_binary_operatorstring_of_variable_kindto_string (as expression_sort::Kind::as_str())unwrap_nonnull_lhsunwrap_nonnull_lhs_exprwell_known_symbol_nameflow_parser/src/flow_lexer.rs
tokenis_valid_identifier_namejsx_childjsx_tagregexptemplate_tailtype_tokenflow_parser/src/js_id_unicode.rsflow_parser/src/js_id_unicode.rsflow_parser/src/jsdoc.rsflow_parser/src/jsx_parser.rsflow_parser/src/lex_env.rsflow_parser/src/flow_lexer.rs (LexResult struct)flow_parser/src/loc.rs
char_before → char_before()compare_ignore_source → compare_ignore_source()contains → contains()cursor → cursor()debug_to_string → debug_to_string()end_loc → end_loc()first_char → first_char()intersects → intersects()is_none → is_none()is_none_ignore_source → is_none_ignore_source()lines_intersect → lines_intersect()source → source()span_compare → span_compare()start_loc → start_loc()start_pos_to_string_for_vscode_loc_uri_fragment → start_pos_to_string_for_vscode_loc_uri_fragment()to_string_no_source → to_string_no_source()update_source → update_source()btwn → between()compare → Ord trait implequal → PartialEq trait derivemk_loc → mk()none → LOC_NONE constantpos_cmp → Ord for Position trait implflow_parser/src/match_pattern_parser.rsflow_parser/src/object_parser.rsflow_parser/src/offset_utils.rs
makecontains_multibyte_characterdebug_stringline_lengthsoffsetflow_parser/src/parse_error.rsflow_parser/src/parse_error.rs (camelize function)flow_parser/src/parser_common.rsflow_parser/src/parser_env.rsflow_parser/src/main_parser.rsflow_parser/src/pattern_cover.rs (97 lines, 100% complete)flow_parser/src/pattern_parser.rs (647 lines, 100% complete)flow_parser/src/statement_parser.rs (4176 lines, 100% complete)flow_parser/src/token.rs (591 lines, 100% complete)flow_parser/src/type_parser.rs (3286 lines, 100% complete)flow_parser_utils/src/file_sig_tests.rsflow_aloc/src/lib.rsflow_aloc/src/lib.rs
compare → ALoc::compare()concretize_compare → ALoc::concretize_compare()concretize_equal → ALoc::concretize_equal()debug_to_string → ALoc::debug_to_string()equal → ALoc::equal()get_key_exn → aloc_representation_do_not_use::get_key_exn()init_table → aloc_representation_do_not_use::init_table()is_keyed → aloc_representation_do_not_use::is_keyed()make_id → aloc_representation_do_not_use::make_id()make_keyed → aloc_representation_do_not_use::make_keyed()make_table → aloc_representation_do_not_use::make_table()none → ALoc::none()of_loc → ALoc::of_loc()quick_compare → ALoc::quick_compare()source → ALoc::source()string_of_key → aloc_representation_do_not_use::string_of_key()to_loc → ALoc::to_loc()to_loc_exn → ALoc::to_loc_exn()to_loc_with_tables → ALoc::to_loc_with_tables()to_string_no_source → ALoc::to_string_no_source()update_source → ALoc::update_source()compare_id → ALocId::compare()empty_table → ALocTable::empty()equal_id → ALocId::equal()id_none → ALocId::none()id_of_aloc → ALocId::of_aloc()flow_imports_exports/src/exports_tests.rsflow_imports_exports/src/exports.rs
emptyof_builtinsof_moduleflow_imports_exports/src/imports.rs
add_globalsof_file_sigflow_parser_utils/src/iloc.rs
ILoc type (tuple struct with Loc and u32)Display, Ord, PartialOrd implsLocSig implflow_parser_utils_output/src/js_layout_generator_test.rsflow_parser_utils_output/src/js_layout_generator_test.rsflow_parser_utils_output/src/js_layout_generator_test.rsflow_parser_utils_output/src/js_layout_generator_test.rsflow_parser_utils_output/src/js_layout_generator_test.rsflow_parser_utils_output/src/js_layout_generator_test.rsflow_parser_utils_output/src/js_layout_generator_test.rsflow_parser_utils_output/src/js_layout_generator_test.rsflow_parser_utils_output/src/js_layout_generator_test.rsflow_parser_utils_output/src/js_layout_generator_test.rsflow_parser_utils_output/src/js_layout_generator_test.rsflow_parser_utils_output/src/js_layout_generator_test.rsflow_parser_utils_output/src/layout_generator_test_utils.rsflow_parser_utils_output/src/layout_test.rsflow_parser_utils_output/src/layout_test_utils.rsflow_parser_utils_output/src/pretty_printer_test.rsflow_parser_utils_output/src/ast_diff_printer.rsflow_parser_utils_output/src/compact_printer.rsflow_parser_utils_output/src/pretty_printer.rsflow_parser_utils_output/src/replacement_printer.rsflow_parser_utils_output/src/js_layout_generator.rs (fully ported)flow_parser_utils_output/src/layout.rs
LayoutNode enumWhenToBreak enumListConfig structprint_prettyprint_single_lineflow_parser_utils_output/src/source.rs
Source struct with builder methodsflow_type_sig/src/expected_annotation_sort.rs (1/1 function, 100% complete)
to_string → Display trait implementation (idiomatic Rust)flow_type_sig/src/signature_error.rsflow_type_sig/src/compact_table.rs
create → Builder::new()push → Builder::push()tail_exn → Builder::tail_exn()splice → Builder::splice() (test-only)value → Node::data()modify → Node::data_mut()mark → Node::mark()compact → Builder::compact_with_merge() / compact_without_merge()index_exn → Node::index_exn()copy → Indexed::copy()get → Table::get()length → Table::len()iter → Table::iter()to_array → Table::into_vec() (similar functionality)Interned.create → InternedBuilder::new()Interned.push → InternedBuilder::push()Interned.compact → InternedBuilder::compact_without_merge()init → Table::init()iteri → Table::iteri()map → Table::map()mapi → Table::mapi()to_array_map → Table::to_array_map()IndexSet module → pub type IndexSet<Marker> = BTreeSet<Index<Marker>>flow_type_sig/src/packed_type_sig.rsflow_type_sig/src/type_sig.rs (2547 lines, 100% complete)
TArg typeArg typeTypeGuard typeTParam type with polymorphic mappingirrelevant (Rust heap stores type sigs in-memory)irrelevant (just use Table<T> directly)flow_type_sig/src/type_sig_hash.rs
checked_dep type (CJS/ES)dependency type (Cyclic/Acyclic/Resource/Unchecked)file typerequireimportimport_nsedge_local_defedge_remote_refedge_patternedge_pattern_defedge_requireedge_importedge_import_nsvisit_refvisit_tyrefvisit_packedvisit_evalvisit_annotvisit_valuevisit_opvisit_defvisit_remote_refvisit_patternvisit_exportvisit_type_exportflow_type_sig/src/type_sig_mark.rs (4/4 functions, 100% complete)
mark_binding → mark_binding() (pub(crate))mark_exports → mark_exports() (pub(super))mark_errors → mark_errors() (pub(super))mark_builtin_module → mark_builtin_module() (pub(super))flow_type_sig/src/type_sig_options.rs
TypeSigOptions structof_optionsbuiltin_optionsflow_type_sig/src/type_sig_pack.rs (1035 lines, 100% complete)
RemoteRef enumPackedRef enumTyRef enumPacked typePattern typeExport typeModuleKind typeflow_type_sig/src/type_sig_parse.rs (9132 lines, 100% complete)flow_type_sig/src/type_sig_utils.rs
parse_and_pack_builtinsparse_and_pack_moduleflow_parser_utils/src/ast_builder.rs
identifiers moduletypes module (with functions, objects submodules)literals modulepatterns modulefunctions moduleclasses module (with methods submodule)jsxs modulestatements module (with enum_declarations submodule)expressions module (with members, literals submodules)comments modulemk_programtest_ast_of_stringtest_expression_of_stringtest_statement_of_stringtest_program_of_stringflow_parser_utils/src/ast_loc_utils.rs
LocToALocMapper struct implementing LocMapper traitflow_parser_utils/src/export_condition_map.rs
createcreate_from_shorthandemptyparse
resolve_package_targetflow_parser_utils/src/file_sig.rs
empty → FileSig::empty()default_opts → FileSigOptions::default() (via Default trait)program → FileSig::from_program()require_loc_map → FileSig::require_loc_map()require_set → FileSig::require_set()requires → FileSig::requires()to_string → to_debug_string()flow_services_code_action/src/contains_mapper.rs (ported as composition helper)flow_parser_utils/src/flow_ast_differ.rsflow_parser/src/ast_visitor.rs
AstVisitor trait with comprehensive visitor patternTraversable trait for AST nodesflow_parser/src/polymorphic_ast_mapper.rs
LocMapper traitflow_parser_utils/src/graphql.rs (56 lines, 100% complete)flow_parser_utils/src/indexed_ast_mapper.rs
IndexMapper struct with LocMapper implUnindexMapper struct with LocMapper implflow_analysis/src/infer_type_hoister.rs
hoist_infer_typesflow_parser_utils/src/package_exports.rs
createemptyparseresolve_packageflow_parser_utils/src/package_json.rs
createemptyexportshaste_commonjsmainnameparseflow_parser_utils/src/record_utils.rs
defaulted_props_of_recordflow_parser_utils/src/signature_utils.rs
procedure_decider modulethis_finder module with AstVisitor implementationsflow_parser_utils/src/this_finder.rsflow_parsing/src/docblock_parser.rs
docblock_max_tokens → DOCBLOCK_MAX_TOKENS constantparse_docblock → parse_docblock()flow_parsing/src/parsing_service.rs
do_parsecontent_hash_matches_file_hashdoes_content_match_file_hashcontent_hash_matches_old_file_hashfold_failedreducermergeparseensure_parsedparse_file_sigparse_package_json_fileparse_type_sigparse_with_defaultsreparse_with_defaultsnext_of_filename_setflow_server/src/multi_worker.rs
set_report_canceled_callbackreport_canceledsingle_threaded_call_with_worker_idmulti_threaded_callmulti_threaded_call_with_worker_idcallcall_with_worker_idfolditernextnext2makeflow_server_command_handler/src/command_handler.rs
type_parse_artifacts_with_cacheget_statusautocomplete_on_parsedautocompleteerrors_of_filecheck_fileget_def_of_check_resultinfer_type_to_responsedocumentation_at_locinfer_typetype_of_nameinlay_hintinsert_typeautofix_exportsautofix_missing_local_annotcollect_ragedump_typescoveragebatch_coverageserialize_graphoutput_dependenciesget_cyclefind_moduleget_defsave_stateauto_close_jsxprepare_document_pasteprovide_document_pastelinked_editing_rangefind_code_actionsadd_missing_importsorganize_importshandle_apply_code_actionhandle_autocompletehandle_autofix_exportshandle_autofix_missing_local_annothandle_check_filehandle_coveragehandle_batch_coveragehandle_cyclehandle_dump_typeshandle_find_modulehandle_get_defhandle_graph_dep_graphhandle_infer_typehandle_type_of_namehandle_inlay_hinthandle_llm_contexthandle_insert_typehandle_ragehandle_statushandle_save_statehandle_persistent_canceledhandle_persistent_uncaught_exceptionhandle_persistent_subscribehandle_persistent_did_open_notificationhandle_persistent_did_open_notification_no_ophandle_persistent_did_change_notificationhandle_persistent_did_save_notificationhandle_persistent_did_close_notificationhandle_persistent_did_close_notification_no_ophandle_persistent_cancel_notificationhandle_persistent_did_change_configuration_notificationhandle_persistent_get_defhandle_persistent_infer_typehandle_persistent_code_action_requesthandle_persistent_autocomplete_lsphandle_persistent_signaturehelp_lsphandle_persistent_workspace_symbolhandle_persistent_find_referenceshandle_persistent_document_highlighthandle_persistent_prepare_renamehandle_persistent_renamehandle_persistent_coveragehandle_persistent_llm_contexthandle_persistent_ragehandle_persistent_pinghandle_persistent_log_commandhandle_persistent_add_missing_imports_commandhandle_persistent_organize_imports_commandhandle_persistent_auto_close_jsxhandle_persistent_prepare_document_pastehandle_persistent_provide_document_paste_editshandle_persistent_linked_editing_rangehandle_persistent_rename_file_importshandle_persistent_malformed_commandhandle_persistent_unsupportedhandle_persistent_text_document_diagnostics_lsphandle_persistent_immediately_unsafehandle_persistent_immediatelyenqueue_or_handle_ephemeralenqueue_persistenthandle_ephemeral_command_for_standalone (Rust-only: standalone-mode ephemeral dispatch)handle_ephemeral_command_for_standalone_wrappedclassify_ephemeral_commandhandle_ephemeral_immediate_commandstandalone_response_needs_checked_dependencies_retryflow_server_command_handler/src/llm_typed_context_provider.rsflow_server_env/src/collated_errors.rs
error_state_timestamps type → ErrorStateTimestampsempty_error_state_timestampst type → CollatedErrorsemptyclear_allclear_mergeflow_server_env/src/dependency_info.rs
debug_to_stringimplementation_dependency_graphof_mapsig_dependency_graphupdateflow_server_env/src/server_env.rs
genv type → Genverrors type → Errorsenv type → Envflow_server_env/src/error_collator.rs
add_suppression_warnings (private)collate_duplicate_providers (private)update_local_collated_errorsupdate_collated_errorsget_with_separate_warnings (internal 3-tuple version, private)type_error_stat (private)error_resolution_stat type → ErrorResolutionStatupdate_error_state_timestampsget_without_suppressedgetget_with_separate_warnings (public 2-tuple version)flow_server_file_watcher_spec/src/file_watcher_spec.rsflow_server_env/src/server_monitor_listener.rsflow_server_env/src/server_monitor_listener_state.rs
push_new_workloadpush_new_parallelizable_workloaddefer_parallelizable_workloadrequeue_deferred_parallelizable_workloadspush_new_env_updatecancellation_requestspush_files_to_recheckpush_files_to_prioritizepush_files_to_force_focused_and_recheckpush_global_find_ref_requestpush_lazy_initpush_dependencies_to_prioritizepush_after_reinitpop_next_workloadpop_next_parallelizable_workloadupdate_envrecheck_fetchrequeue_workloadget_and_clear_recheck_workloadwait_for_recheckwait_for_parallelizable_workloadwait_for_updates_for_recheckwait_for_anythingflow_server_env/src/workload_stream.rs
pushpush_parallelizablerequeue_parallelizablepoppop_parallelizablewait_for_workloadwait_for_parallelizable_workloadflow_server_env/src/persistent_connection.rs
Client_config.client_toggle type → client_config::ClientToggleClient_config.t → client_config::TClient_config.rank_autoimports_by_usageClient_config.suggest_autoimportsClient_config.show_suggest_ranking_infot type → PersistentConnectionsingle_client type → SingleClient / SingleClientRefemptyadd_clientremove_clientadd_client_to_clientsremove_client_from_clientsupdate_clientssend_lspsend_start_rechecksend_end_rechecksend_responsesend_errors_if_subscribedsubscribe_clientclient_did_openclient_did_changeclient_did_closeclient_did_change_configurationget_fileget_clientget_idlsp_initialize_paramsclient_configtype_parse_artifacts_cacheautocomplete_artifacts_cacheclear_type_parse_artifacts_cachespush_outstanding_handlerpop_outstanding_handlerautocomplete_sessionall_clientspop_messagehas_clientsend_statussend_server_exitsend_telemetryflow_monitor_rpc/src/lsp_prot.rs (Flow-specific LSP extension types; standard LSP types use lsp_types crate)
client_id type → ClientIderror_kind type → ErrorKinderror_info type → ErrorInfometadata type → Metadataempty_metadatarequest type → Requestrequest_with_metadata type → RequestWithMetadataerrors_reason type → ErrorsReasonerror_response_kind type → ErrorResponseKindlive_errors_failure type → LiveErrorsFailurelive_errors_response type → LiveErrorsResponseresponse type → Responseresponse_with_metadata type → ResponseWithMetadatarecheck_stats type → RecheckStatstelemetry_from_server type → TelemetryFromServernotification_from_server type → NotificationFromServermessage_from_server type → MessageFromServerstring_of_requeststring_of_request_with_metadatajson_of_requeststring_of_responsemessage_from_server_mapper type → MessageFromServerMapper
default_message_from_server_mapperflow_monitor_rpc/src/monitor_prot.rs
request_id type → RequestIdfile_watcher_metadata type → FileWatcherMetadataempty_file_watcher_metadatamerge_file_watcher_metadataplease_die_reason type → PleaseDieReasonmonitor_to_server_message type → MonitorToServerMessageserver_to_monitor_message type → ServerToMonitorMessagemonitor_to_client_message type → MonitorToClientMessageflow_monitor_rpc/src/server_command_with_context.rs
t type → ServerCommandWithContextflow_monitor_rpc/src/server_prot.rs
Infer_type_optionsInlay_hint_optionsType_of_name_optionsLlm_context_optionsCode_actionRequest.commandRequest.to_stringResponse.lazy_statsResponse.func_param_resultResponse.func_details_resultResponse.CompletionResponse.InferTypeOfNameResponse.InferTypeResponse.InlayHintResponse.status_responseResponse.responseResponse.to_stringflow_server_env/src/socket_handshake.rsflow_server_env/src/server_socket_rpc.rs — JSON/TCP wire protocol for server requests/responses in standalone modeflow_server_env/src/lsp_connect_params.rs — shared connect params and persistent client handshake builder for LSPflow_server_rechecker/src/recheck_updates.rsflow_server_rechecker/src/rechecker.rs (parallelizable-workload machinery still simplified)
Parallelizable_workload_loop module (Lwt pick/cancellation loop is comment-only; no Rust async runtime equivalent is wired up yet)start_parallelizable_workloads (returns a no-op stopper because the parallelizable workload loop is unported)get_lazy_statsprocess_updatessend_start_rechecksend_end_recheckrecheck (find_ref_command is kept as an opaque closure instead of destructuring request/client/transformer like OCaml)run_but_cancel_on_file_changesrecheck_outcome type → RecheckOutcomerecheck_singlerecheck_loopflow_server_files/src/server_files_js.rs (14/14 functions, 100% complete)
default_flowconfig_namedefault_temp_diradd_dir_sepmk_rootdigest_root_partfile_of_rootconfig_filemax_root_part_lenlog_filedfind_log_filemonitor_log_filelock_filepids_filerecheck_stats_filesocket_filelegacy2_socket_filelegacy1_socket_fileflow_server_utils/src/file_input.rs
FileInput enumpath_of_file_inputfilename_of_file_inputcontent_of_file_input_unsafecontent_of_file_inputflow_server_watchman_expression_terms/src/lib.rsflow_server/src/server.rs (background Lwt loops and some exception handling paths are still simplified)
sample_init_memoryextract_flowlibs_or_exit (Flowlib.extract panic/abort path is not wrapped into the OCaml-style Could_not_extract_flowlibs exit)string_of_saved_state_fetcherinit (focus_targets is ignored and failure paths use expect/panic instead of the OCaml Lwt/exception flow)idle_logging_loopgc_loopserve (uses detached threads plus blocking waits instead of Lwt.pick/cancellation between idle work and monitor events)on_compactcreate_program_initdetect_linux_distrocheck_supported_operating_systemrunexit_msg_of_exception (uses display text rather than OCaml's full backtrace string formatting)run_from_daemonize (panic-string matching approximates the OCaml typed exception handling/exits)check_once (format_errors callback wiring and focus_targets behavior are still simplified away)daemonizeflow_server/src/server_env_build.rsflow_server/src/server_worker.rsflow_server/src/server_daemon.rs (real server-master child process via flow_daemon::spawn; serializable daemon payload replaces OCaml Marshal closures / fork_spawn)
Server_files module → flow_server_files::server_files_jsargs type → ServerEntryParam (ServerDaemonArgs carries the serializable Options subset)entry_point type → Entry<ServerEntryParam, (), ()>open_log_filenew_entry_point → SERVER_ENTRY_NAMEregister_entry_point → entry_point / registerdaemonizeflow_services_autocomplete
flow_services_autocomplete/src/autocomplete_sigil_tests.rsflow_services_autocomplete/src/autocomplete_service_js.rsflow_services_autocomplete/src/autocomplete_js.rsflow_services_autocomplete/src/autocomplete_sigil.rsflow_services_autocomplete/src/find_method.rsflow_services_autocomplete/src/keywords.rsflow_services_code_action
flow_services_code_action/src/autofix_imports_tests.rsflow_services_code_action/src/autofix_type_to_value_import_tests.rsflow_services_code_action/src/code_action_service_tests.rsflow_services_code_action/src/insert_type_utils_tests.rsflow_services_code_action/src/refactor_extract_tests.rsflow_services_code_action/src/refactor_extract_utils_tests.rsflow_services_code_action/src/validation_tests.rsflow_services_code_action/src/ast_extraction_utils.rs (has Rust-specific helper functions for OCaml class-based AST visitors)flow_services_code_action/src/autofix_casting_syntax.rsflow_services_code_action/src/autofix_class_member_access.rsflow_services_code_action/src/autofix_enum_member_name.rsflow_services_code_action/src/autofix_exports.rsflow_services_code_action/src/autofix_imports.rsflow_services_code_action/src/autofix_interface.rsflow_services_code_action/src/autofix_legacy_flow_syntax.rsflow_services_code_action/src/autofix_match_syntax.rsflow_services_code_action/src/autofix_method.rsflow_services_code_action/src/autofix_missing_local_annots.rsflow_services_code_action/src/autofix_new_to_record.rsflow_services_code_action/src/autofix_object_to_record.rsflow_services_code_action/src/autofix_optional_chaining.rsflow_services_code_action/src/autofix_prop_typo.rsflow_services_code_action/src/autofix_record_declaration.rsflow_services_code_action/src/autofix_renders_variant.rsflow_services_code_action/src/autofix_replace_type.rsflow_services_code_action/src/autofix_ts_syntax.rsflow_services_code_action/src/autofix_type_name.rsflow_services_code_action/src/autofix_type_to_value_import.rsflow_services_code_action/src/autofix_unused_promise.rsflow_services_code_action/src/code_action_service.rsflow_services_code_action/src/code_action_text_edits.rs (shared copy in flow_services_autocomplete/src/code_action_text_edits.rs)flow_services_code_action/src/code_action_utils.rsflow_services_code_action/src/convert_type_to_readonly_form.rsflow_services_code_action/src/document_paste.rsflow_services_code_action/src/insert_inferred_render_type.rsflow_services_code_action/src/insert_type.rsflow_services_code_action/src/insert_type_imports.rs (uses named ConvertTyVisitor struct with stored error state instead of OCaml inline visitor object)flow_services_code_action/src/insert_type_utils.rsflow_services_autocomplete/src/lsp_import_edits.rs (shared helper used by autocomplete)flow_services_code_action/src/lsp_module_system_info.rs (shared copy in flow_services_autocomplete/src/module_system_info.rs)flow_services_code_action/src/refactor_add_jsx_props.rsflow_services_code_action/src/refactor_arrow_functions.rsflow_services_code_action/src/refactor_extract.rsflow_services_code_action/src/refactor_extract_utils.rsflow_services_code_action/src/refactor_match_discriminant.rsflow_services_code_action/src/refactor_switch_to_match_statement.rsflow_services_code_action/src/stub_unbound_name.rsflow_services_coverage/src/lib.rs (fully ported)
op_mode type → OpModeunit_of_opKind module → Kind enum with methodsfile_coverage type → FileCoverageinitial_coveragetvar_status type → TvarStatusvisitor object → CoverageVisitor struct with methodscoverage_folder class → CoverageFolder struct implementing AstVisitorcoverage_fold_tastcovered_typesfile_coverage functionflow_services_export
flow_services_export/src/export_service_tests.rs#[test])flow_services_export/src/export_index_tests.rs#[test])flow_services_export_index/src/export_index.rsflow_services_export/src/export_search_tests.rs#[test])flow_services_export/src/export_search_types.rsflow_services_export/src/export_search.rsflow_services_export/src/export_service.rsflow_services_get_def
flow_services_get_def/src/get_def_types.rs
single_property_def_info → SinglePropertyDefInfoproperty_def_info → PropertyDefInfodef_info → DefInfoPurpose.t → Purposeflow_services_get_def/src/find_refs_utils.rs
AstInfo type aliasflow_services_get_def/src/get_def_utils.rs
get_object_literal_locDefKind typemap_def_kind_locObjectKeyLiteralSearcher (merged into get_def_utils)loc_of_single_def_infoall_locs_of_ordinary_property_def_infoall_locs_of_def_infoDefLoc typedebug_string_of_def_locextract_def_locget_property_def_infoget_def_infoflow_services_get_def/src/get_def_js.rs
Get_def_result.t → GetDefResultextract_member_defprocess_requestget_def (with loop inner function → loop_fn)flow_services_get_def/src/get_def_process_location.rs
InternalError typeProcessLocationResult type (was result in OCaml)process_type_requestSearcher class hierarchy → Searcher<T,C> + SearcherCallback<T> traitTypedAstSearcherCallback (was typed_ast_searcher class)OnDemandSearcherCallback (was on_demand_searcher class)ImportSearcher / ExportSearcher (AstVisitor impls)process_locationflow_services_get_def/src/get_def_request.rs
MemberInfo typeGetDefRequest type (was t in OCaml)flow_services_get_def/src/object_key_visitor.rs
ObjectKeyVisitorCallback trait (was class with virtual method)ObjectKeyVisitor struct with AstVisitorvisitflow_services_inference/src/dep_graph_test_utils.rsN/A (just an entrypoint)flow_services_inference/src/pure_dep_graph_operations_test.rsflow_services_inference/src/types_js_test.rsflow_services_inference_types/src/lib.rsflow_services_inference/src/check_cache.rs
createrelease_ccxdrop_least_recently_usedfind_or_create_ccxfind_or_createclearflow_services_inference/src/check_service.rs
typed_builtin_module_optunknown_module_tunchecked_module_tget_lint_severities (as get_lint_severities_for_check)mk_check_file (with check_file and compute_env closures)dep_module_t (extracted as free function)sig_module_t (extracted as free function)dep_file (extracted as free function)build_exports_from_module_kind (helper for dep_file exports)flow_services_inference/src/dep_service.rs
calc_dependency_infocalc_partial_dependency_graphcalc_unchanged_dependentsflow_services_inference/src/inference_utils.rs
error_of_docblock_errorset_of_docblock_errorserror_of_parse_errorset_of_parse_errorerror_of_parse_exceptionset_of_parse_exceptionerror_of_file_sig_tolerable_errorset_of_file_sig_tolerable_errorsflow_services_inference/src/init.rsflow_services_inference/src/merge_service.rs
mergemerge_runnersig_hashacyclic_depcheck_contents_cachecheck_contents_contextcompute_env_of_contentsmk_check (no slow to check defence yet)flow_services_inference/src/merge_stream.rs (7/7 functions, 100% complete)
create → MergeStream::new()update_server_status → MergeStream::update_server_status()next → MergeStream::next()merge → MergeStream::merge()total_files → MergeStream::total_files()skipped_count → MergeStream::skipped_count()sig_new_or_changed → MergeStream::sig_new_or_changed()flow_services_inference/src/obj_to_obj_hook.rs
get_object_literal_locobj_to_obj_hook (as obj_to_obj_hook_fn)with_obj_to_obj_hookflow_services_inference/src/pure_dep_graph_operations.rs
calc_all_dependentscalc_direct_dependenciescalc_direct_dependentsflow_services_inference/src/recheck_stats.rs
Estimates typeAverages type (private)moving_averageget_fileload_per_file_timesave_averagesinitrecord_recheck_timerecord_last_estimatesget_init_timeget_per_file_timeflow_services_inference/src/type_contents.rs
ParseContentsReturn typedo_parse_wrapperwith_timerparse_contentserrors_of_file_artifactsprintable_errors_of_file_artifacts_resultunchecked_dependenciesensure_checked_dependenciescheck_contentscompute_env_of_contentstype_parse_artifactsflow_services_inference/src/type_service.rs
calc_deps → calc_deps()clear_errors → clear_errors()filter_errors → filter_errors()ensure_parsed_or_trigger_recheck → ensure_parsed_or_trigger_recheck()full_check_for_init → full_check_for_init()recheck → recheck()libdef_check_for_lazy_init → libdef_check_for_lazy_init()include_dependencies_and_dependentsrun_merge_servicemergeupdate_merge_resultscheck_filesensure_parsedhandle_unexpected_file_changesinit_libsfilter_out_node_modulesunfocused_files_to_inferfocused_files_to_inferfiles_to_inferrestart_if_faster_than_recheckrecheck_parse_and_update_dependency_infodetermine_what_to_recheckrecheck_mergerecheck::fullrecheck::parse_and_update_dependency_infoclear_cacheswith_transactionrecheck_implmake_next_filesinit_from_scratchload_saved_stateexit_if_no_fallbackreinitreinit_full_checkcheck_files_for_initcheck_once (Rust-only convenience)init → flow_services_inference/src/type_service.rsinit_from_saved_statehandle_updates_since_saved_stateflow_services_autocomplete/src/find_documentation.rsflow_services_autocomplete/src/insert_jsdoc.rsflow_services_autocomplete/src/jsdoc_stub.rsflow_services_jsx
flow_services_jsx/src/auto_close_jsx.rsflow_services_jsx/src/linked_editing_jsx.rsflow_services_module/src/lib.rs (6/6 functions, 100% complete)
exported_module → exported_module()imported_module → imported_module()commit_modules → commit_modules()add_parsed_resolved_requires → add_parsed_resolved_requires()package_incompatible → package_incompatible()string_of_package_incompatible_reason → Display trait on PackageIncompatibleReasonflow_services_references
flow_services_references/src/find_refs_types.rs
ref_kind → RefKindstring_of_ref_kind → string_of_ref_kind()single_ref → SingleReffind_refs_found → FindRefsFoundfind_refs_ok → FindRefsOkkind → Kindrequest → Requestempty_request → empty_request()flow_services_references/src/find_refs_js.rs
sort_and_dedup → sort_and_dedup()local_refs_of_find_ref_request → local_refs_of_find_ref_request()find_local_refs → find_local_refs()flow_services_references/src/local_import_ref_searcher.rs
search_result → SearchResultsearch → search()flow_services_references/src/prepare_rename_searcher.rs
search_rename_loc → search_rename_loc()flow_services_references/src/property_find_refs.rs
add_ref_kind → add_ref_kind()LiteralToPropLoc → literal_to_prop_locannot_of_jsx_name → annot_of_jsx_name()Potential_ordinary_refs_search → potential_ordinary_refs_searchtype_matches_locs → type_matches_locs()get_loc_of_def_info → get_loc_of_def_info()process_prop_refs → process_prop_refs()ordinary_property_find_refs_in_file → ordinary_property_find_refs_in_file()property_find_refs_in_file → property_find_refs_in_file()find_local_refs → find_local_refs()flow_services_references/src/rename_mapper.rs
get_rename_order → get_rename_order()rename_mapper → RenameMapper + AstVisitor implrename → rename()flow_services_references/src/variable_find_refs.rs
local_find_refs → local_find_refs()flow_saved_state
flow_saved_state/src/compression/saved_state_compression.rsflow_saved_state/src/fetcher/saved_state_dummy_fetcher.rsflow_saved_state/src/fetcher/saved_state_fb_fetcher.rsflow_saved_state/src/fetcher/saved_state_fetcher.rsflow_saved_state/src/fetcher/saved_state_local_fetcher.rsflow_saved_state/src/fetcher/saved_state_scm_fetcher.rsflow_saved_state/src/saved_state.rs
saveloadinvalid_reason_to_stringbacktrace_of_invalid_reasonnon_flowlib_libsdenormalize_file_datarestore_dependency_infoflow_services_type_info
flow_services_type_info/src/signature_help.rsflow_services_type_info/src/type_info_service.rsflow_services_type_of_name
flow_services_type_of_name/src/type_of_name.rsflow_heap/src/parsing_heaps.rs
add_merge_on_diffadd_packageadd_parsedadd_unparsedget_aloc_table_unsafeget_ast_unsafeget_dependencyget_dependency_unsafeget_docblock_unsafeget_exports_unsafeget_file_hash_unsafeget_haste_moduleget_haste_module_unsafeget_imports_unsafeget_package_infoget_package_parseget_package_parse_unsafeget_parseget_parse_unsafeget_providerget_resolved_requires_unsafeget_tolerable_file_sig_unsafeget_type_sig_unsafeget_typed_parseget_typed_parse_unsafehas_astis_package_fileis_typed_fileiter_dependentsadd_resolved_requires → set_resolved_requires()clear_not_foundcreate → SharedMem::new()get_aloc_tableget_astget_docblockget_exportsget_file_addr (OCaml shared-memory internal, not needed in Rust)get_file_addr_unsafe (OCaml shared-memory internal, not needed in Rust)get_file_hashget_file_sigget_file_sig_unsafeget_haste_infoget_haste_module_infoget_importsget_leaderget_leader_unsafeget_old_exportsget_old_file_hashget_old_haste_info → get_haste_info_committed()get_old_importsget_old_parse → get_parse_committed()get_old_providerget_old_resolved_modules_unsafeget_old_resolved_requires_unsafeget_old_typed_parse → get_typed_parse_committed()get_resolved_modules_unsafeget_tolerable_file_sigget_type_sigloc_of_alocread_aloc_table_unsaferead_ast_unsaferead_dependencyread_dependency_nameread_docblock_unsaferead_exportsread_file_hashread_file_keyread_file_nameread_file_sig_unsaferead_haste_module_inforead_importsread_package_inforead_phantom_dependenciesread_requiresread_resolved_moduleread_resolved_modulesread_tolerable_file_sig_unsaferead_type_sig_unsaferecord_not_foundrecord_unchangedtyped_componentunnecessaryunnecessaryunnecessaryflow_codemods/src/utils/codemod_annotator.rs (oss stub, inlined)flow_cli/src/extra_commands.rs (oss stub)flow_event_logger/src/lib.rsflow_services_code_action/src/hardcoded_module_fixes.rs (oss stub)flow_saved_state/src/fetcher/saved_state_fb_fetcher.rs (oss stub)flow_server_monitor/src/startup_initializer.rs (oss stub)irrelevant (rust port uses LinkedHashMap)irrelevant (rust port uses LinkedHashMap)irrelevant (rust port uses LinkedHashMap)irrelevant (rust port uses LinkedHashMap)irrelevant (rust port uses LinkedHashMap)irrelevant (rust port uses LinkedHashMap)irrelevant (rust port uses LinkedHashMap)flow_services_export/src/fuzzy_path/flow_services_export/src/fuzzy_path/expect_test.rsflow_services_export/src/fuzzy_path/test.rsirrelevant (rust port uses logos)irrelevant (rust port uses logos)irrelevant (rust port uses logos)irrelevant (rust port uses logos)flow_typing/src/type_hint_test.rsflow_typing/src/type_test.rsflow_typing/src/typed_ast_test.rsflow_typing_errors/src/error_message.rsflow_typing_errors/src/error_suppressions.rs
addadd_lint_suppressionsall_unused_locsemptyfilter_by_filefilter_lintsfilter_suppressed_errorsget_lint_settingsremoveunionupdate_suppressionsflow_typing_errors/src/flow_error.rs
loc_of_errormsg_of_errorcode_of_errorconvert_type_to_type_descerror_of_msgis_lint_only_errorsetkind_of_errormap_loc_of_errorordered_reasonssource_fileflow_typing_errors/src/intermediate_error.rs
make_intermediate_errorto_printable_errormake_errors_printablepost_process_errorsscore_of_msgflow_typing_errors/src/intermediate_error_types.rsflow_typing_errors/src/suppression_comments.rsflow_typing_generics/src/lib.rs (22/22 functions, 100% complete)
bound_to_string → GenericBound::to_string()to_string → Display for GenericIdall_subst_names_of_id → GenericId::all_subst_names()all_subst_names_of_bound → GenericBound::all_subst_names()id_to_kind → GenericId::to_kind()subst_name_of_id → GenericId::subst_name()equal_bound → GenericBound::equal()equal_spreads → equal_spreads()equal_id → GenericId::equal()collapse → GenericId::collapse()spread_empty → spread_empty()make_spread → GenericId::make_spread()make_bound_id → GenericId::make_bound_id()make_op_id → GenericId::make_op_id()spread_subtract → spread_subtract()spread_append → spread_append()fold_ids → GenericId::fold_ids()spread_exists → spread_exists()satisfies → GenericId::satisfies()ArraySpread.merge_ro → array_spread::merge_ro() (private)ArraySpread.merge → array_spread::merge()ArraySpread.to_option → array_spread::to_option()flow_common/src/polarity.rs
apply_constcompatequalinvmultobject_literal_polaritysigilstringflow_typing_utils/src/abnormal.rs
AbnormalControlFlow struct (replaces exception)throw_expr_control_flow_exception → just do Err(AbnormalControlFlow((loc, expr)))catch_stmt_control_flow_exceptioncatch_expr_control_flow_exceptiontry_with_abnormal_exnflow_typing_utils/src/annotation_inference.rsflow_typing_utils/src/avar.rsflow_typing_builtins/src/builtins.rs
Builtins structbuiltin_ordinary_name_setbuiltin_modules_setget_builtin_value_optget_builtin_type_optget_builtin_module_optof_name_mapemptyflow_typing_utils/src/check_polarity.rsflow_typing_statement/src/class_sig.rsirrelevant (rust doesn't need it to deal with cyclic modules)flow_typing_statement/src/component_declaration_config.rsflow_typing_statement/src/component_params.rsflow_typing_statement/src/component_params_intf.rsflow_typing_statement/src/component_sig.rsirrelevant (rust doesn't need it to deal with cyclic modules)flow_typing_loc_env/src/component_sig_types.rsflow_typing_flow_common/src/concrete_type_eq.rs
swap_reasoneqeq_targsflow_typing_context/src/lib.rsflow_typing_utils/src/convert_types.rsflow_typing/src/cycles.rs
handle_elementkey_of_elementhandle_componentflow_typing_debug/src/lib.rs
string_of_selectorstring_of_destructordump_reasondump_tdump_use_tdump_propdump_normalized_propdump_tvardump_flowstring_of_reasonstring_of_filestring_of_defaultstring_of_signature_errordump_error_messageverbose moduleflow_typing_default/src/lib.rsflow_typing_flow_js/src/default_resolve.rs
default_resolve_toutsflow_typing_statement/src/destructuring.rsirrelevant (rust doesn't need it to deal with cyclic modules)flow_typing/src/env_resolution.rsflow_typing_utils/src/exhaustive.rsflow_typing_exists_check/src/lib.rsflow_typing_statement/src/exists_marker.rsunnecessary in rustflow_typing_flow_common/src/flow_cache.rs
flow_constraint moduleeval modulefix modulesummarize_flow_constraintirrelevant (rust doesn't need it to deal with cyclic modules)flow_typing_flow_js/src/flow_js/ (directory with multiple files)
not_linked → helpers.rsRecursionCheck module → recursion_check.rsConstFoldExpansion module → const_fold_expansion.rs
get_rmapincrementguardsubst → mod.rs (public wrapper around type_subst::subst)check_canceled → helpers.rs (intentionally empty; revisit when full checker is ported)is_concrete → moved to flow_typing_type/src/type_util.rsinherited_method → helpers.rsfind_resolved_opt → helpers.rsdrop_resolved → helpers.rs__flow (main dispatch) → dispatch.rs (9224 lines, fully ported)empty_success → helpers.rshandle_generic → helpers.rsany_helpers.rs:
expand_anyany_prop_to_functioninvariant_any_propagation_flowany_prop_call_propany_prop_propertiesany_prop_objany_prop_tvarany_prop_to_type_argsany_prop_instany_propagatedany_propagated_useinheritance_helpers.rs:
flow_type_argsinst_type_to_obj_typestructural_subtypeinst_structural_subtypecheck_supereval_helpers.rs:
destructeval_selectorevaluate_type_destructormk_type_destructoreval_destructoreagerly_eval_destructor_if_resolvedmk_possibly_evaluated_destructor_for_annotationsinstantiation_helpers.rs:
instantiate_with_targs_with_solninstantiate_with_targsinstantiate_poly_call_or_new_with_solninstantiate_poly_call_or_newinstantiate_poly_default_argsinstantiate_this_classenum_helpers.rs:
enum_exhaustive_checkenum_exhaustive_check_incompleteget_prop_helpers.rs:
Get_prop_helper module → impl GetPropHelper for FlowJsprop_typo_suggestionget_private_propelem_action_on_objwrite_obj_propconstraint_helpers.rs:
flows_to_tflows_from_tflows_acrossadd_upperadd_loweriter_with_filteredges_to_tedges_from_tedges_to_tsedges_from_tsedges_and_flows_to_tedges_and_flows_from_tadd_uppertvaradd_lowertvaredges_to_tvaredges_from_tvaradd_upper_edgesadd_lower_edgesunify_flipgotomerge_idsresolve_idunification_helpers.rs:
ok_unify__unify__unify_innerunify_propsunify_prop_with_dictnaive_unifyarray_unifymulti_arg_helpers.rs:
multiflow_callmultiflow_subtypemultiflow_fullmultiflow_partialresolve_call_listresolve_spread_listresolve_spread_list_recfinish_resolve_spread_listhelpers.rs:
speculative_subtyping_succeedsperform_lookup_actionmk_react_droresolve_unionfilter_optionalpick_use_opflow_use_opapply_method_actionperform_elem_actionget_builtin_typeappget_builtin_react_typeappget_builtin_typeget_builtin_react_typemk_typeapp_instance_annotmk_typeapp_instancemk_typeapp_instance_of_polymk_instancemk_instance_sourcemk_instance_rawinstance_lookup_kindreposition_reasonrepositionflow_all_in_unioncall_args_iterextract_non_spreadjoin_flowrec_flowrec_flow_tflow_optflow_opt_tflowflow_tflow_prec_unifyunify_optunifycontinue_continue_repostype_app_variance_checkpossible_concrete_typessingleton_concrete_typepossible_concrete_types_for_optional_chainpossible_concrete_types_for_inspectionsingleton_concrete_type_for_cjs_extract_named_exports_and_type_exportssingleton_concretize_type_for_imports_exportssingleton_concrete_type_for_inspectionadd_specialized_callee_method_actionpossible_concrete_types_for_imports_exportspossible_concrete_types_for_predicatepossible_concrete_types_for_sentinel_prop_testall_possible_concrete_typespossible_concrete_types_for_operators_checkingpossible_concrete_types_for_object_assignpossible_concrete_types_for_computed_object_keyssingleton_concrete_type_for_match_argpossible_concrete_types_for_match_argmod.rs:
FlowJs struct + S trait impl (all trait methods implemented)flow, flow_t, subst, mk_default, mk_instance, get_builtin_type, get_builtin_react_type, reposition_reason, filter_optional, unify, reposition, mk_typeapp_instance_annot, mk_type_destructor, add_outputflow_non_speculating, flow_t_non_speculating, mk_default_non_speculating, mk_instance_non_speculating, get_builtin_type_non_speculating, get_builtin_react_type_non_speculating, reposition_reason_non_speculating, filter_optional_non_speculating, unify_non_speculating, reposition_non_speculating, mk_typeapp_instance_annot_non_speculating, mk_type_destructor_non_speculating, add_output_non_speculatingflow_typing_flow_common/src/flow_js_utils.rsflow_typing_loc_env/src/func_class_sig_types.rsflow_typing_statement/src/func_params.rsflow_typing_statement/src/func_params_intf.rsflow_typing_statement/src/func_sig.rsirrelevant (rust doesn't need it to deal with cyclic modules)flow_typing_statement/src/func_stmt_config.rsirrelevant (rust doesn't need it to deal with cyclic modules)flow_typing_loc_env/src/func_stmt_config_types.rsflow_typing_flow_js/src/implicit_instantiation.rsflow_typing_implicit_instantiation_check/src/lib.rsflow_typing_flow_common/src/instantiation_utils.rs
implicit_type_argument module (mk_targ, abstract_targ)type_app_expansion module (push_unless_loop, pop, get, set)flow_typing_key crate (src/lib.rs)
Base enum (OrdinaryIdentifier, This, Super)Proj enum (Prop, Elem, PrivateField)Key structstring_of_key → impl Display for Keyuses_propname → Key::uses_propname methodis_simple → Key::is_simple methodreason_desc → Key::reason_desc methodjust use map of keys directlyflow_typing_loc_env/src/loc_env.rsflow_typing/src/marked.rs
Marked<K> generic struct (replaces OCaml functor)new (empty)addgetmemexcludeIdMarked type aliasflow_typing_statement/src/match_pattern.rsflow_typing_loc_env/src/match_pattern_ir.rsflow_typing_utils/src/members.rsflow_typing/src/merge.rs
get_lint_severitiescopy_intomerge_lib_filesmk_builtinspost_merge_checksflow_typing_utils/src/module_exports_checker.rsflow_typing_statement/src/module_info_analyzer.rsflow_typing_flow_js/src/natural_inference.rsflow_typing_loc_env/src/node_cache.rsflow_typing_flow_common/src/obj_type.rs
mk_sealmk_with_protomkis_exactget_dict_optmap_dictobj_kind_from_optional_dictflow_typing_flow_js/src/object_kit.rsflow_typing_flow_js/src/optional_chain_kit.rsflow_typing_utils/src/predicate_kit.rsflow_typing/src/query_types.rs
type 'a result → QueryResult<A> enumconcretize_loc_pairssort_loc_pairsresult_of_normalizer_errormax_size_of_evaluated_type → MAX_SIZE_OF_EVALUATED_TYPEdump_type_at_postype_at_pos_typedump_typesdump_types_for_toolinsert_type_normalizeflow_typing_flow_js/src/react_kit.rsflow_typing_statement/src/react_rules.rsflow_typing_statement/src/refinement.rsflow_typing_flow_js/src/renders_kit.rsflow_typing_flow_js/src/slice_utils.rsdirectly use tarjans insteadflow_typing_type/src/source_or_generated_id.rs (7/7 functions, 100% complete)
compare_id → Ord for Id trait implequal_id → PartialEq for Id trait implgenerate_id → Id::generate_id()id_of_aloc_id → Id::of_aloc_id()from_type_sig → Id::from_type_sig()string_of_id → Id::debug_string()stable_string_of_id → Id::stable_string()flow_typing_flow_common/src/speculation.rs
SpeculationId typeset_speculativerestore_speculativespeculatingdefer_errorflow_typing_utils/src/speculation_flow.rsflow_typing_flow_js/src/speculation_kit.rsflow_typing_speculation_state/src/lib.rsflow_typing_spread_cache/src/lib.rsirrelevant (rust doesn't need it to deal with cyclic modules)flow_typing_statement/src/statement.rsflow_typing_utils/src/strict_es6_import_export.rsflow_typing_flow_js/src/subtyping_kit.rsflow_typing_statement/src/switch_to_match.rsflow_typing_tvar/src/lib.rs
mk_no_wrapmkmk_wheremk_where_result (use it when the lambda of mk_where return Result)mk_where_no_wrapmk_no_wrap_wheremk_fully_resolved_lazymk_fully_resolved_no_wrapmk_fully_resolvedmk_resolvedflow_typing_flow_js/src/tvar_resolver.rsflow_typing/src/ty_members.rs
MemberInfo structMembershipBehavior enummembers_of_tyTyMembers structextractflow_typing_ty_normalizer/src/normalizer.rs
ErrorKind enumError structlookahead moduleNormalizerInput trait (INPUT module type)State structIdKey enumelement_converter moduleNormalizer struct (Make functor)make_normalizerflow_typing_ty_normalizer/src/env.rs
EvaluateTypeDestructorsMode enumOptions structOptions::default functiondefault_codemod_options functionGenv structSymbolSet type aliasEnv structEnv::init methodEnv::descend methodEnv::get_cx methodEnv::imported_names methodEnv::expand_internal_types methodEnv::evaluate_type_destructors methodEnv::omit_targ_defaults methodEnv::optimize_types methodEnv::max_depth methodEnv::merge_bot_and_any_kinds methodEnv::verbose methodEnv::toplevel_is_type_identifier_reference methodflow_typing/src/ty_normalizer_flow.rs
FlowInput struct (implements NormalizerInput)FlowNormalizer type aliasfrom_typesfrom_type_with_found_computed_typefrom_typefrom_module_typeexpand_membersexpand_literal_unionmk_genvdebug_string_of_tflow_typing/src/ty_normalizer_imports.rsflow_typing_ty_normalizer/src/no_flow.rs
NoFlowInput struct (implements NormalizerInput)NoFlowNormalizer type aliasfrom_typemk_genvmk_default_genvdebug_string_of_ttype_to_desc_for_errorsflow_typing_type/src/type_.rs (EVERYTHING)flow_typing_type/src/type_util.rsflow_typing_statement/src/type_annotation.rsflow_typing_statement/src/type_annotation_cons_gen.rsirrelevant (rust doesn't need it to deal with cyclic modules)flow_typing_utils/src/type_env.rsflow_typing_utils/src/type_filter.rsflow_typing_utils/src/type_guard.rsflow_typing_utils/src/type_hint.rsflow_typing_flow_js/src/type_inference_hooks_js.rsflow_typing/src/type_inference.rs
scan_for_suppressionsinfer_astinfer_fileinitialize_envflow_typing_visitors/src/type_mapper.rsflow_typing_utils/src/type_operation_utils.rsflow_typing_utils/src/type_sig_merge.rsflow_typing_flow_common/src/type_subst.rs
Replacement enumfree_var_finderfree_var_finder_in_destructornew_namePurpose enumSubstituter (TypeMapper impl)call_proppropsexportssubstsubst_destructorsubst_instance_typeflow_typing_visitors/src/type_visitor.rsflow_typing/src/typed_ast_finder.rs
mk_bound_tEnclosingNode enuminfer_nodeFindTypeAnnotVisitor (LocMapper-based)find_type_annot_in_nodeexact_match_query modulefind_exact_match_annotationenclosing_node_mapper class (folded into Searcher in flow_services_get_def/src/get_def_process_location.rs)type_parameter_mapper_generic class (folded into TypeAtPosSearcher methods)type_parameter_mapper class (folded into TypeAtPosSearcher's AstVisitor impl)Type_at_pos module (type_at_pos module: TypeAtPosResult, FoundResult, TypeAtPosSearcher, find)find_type_at_pos_annotationflow_typing_utils/src/typed_ast_utils.rs
AvailableAst enumtyped_ast_of_available_astpolaritytyped_ast_to_maptyped_ast_to_list