UNPKG

@eagleoutice/flowr-dev

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

45 lines (44 loc) 2.49 kB
import type { ParentInformation } from '../../r-bridge/lang-4.x/ast/model/processing/decorate'; import { Identifier } from '../../dataflow/environments/identifier'; import type { MergeableRecord } from '../../util/objects'; import type { LintingResult } from '../linter-format'; import { LintingRuleCertainty } from '../linter-format'; import { LintingRuleTag } from '../linter-tags'; import type { FlowrSearchElement } from '../../search/flowr-search'; export type UnclosedConnectionResult = LintingResult; export interface UnclosedConnectionMetadata extends MergeableRecord { /** the number of calls opening a connection */ totalOpened: number; /** the number of calls closing a connection */ totalClosed: number; } export interface UnclosedConnectionConfig extends MergeableRecord { /** functions opening a connection, besides the ones flowR states {@link CallProp.Opens} for */ openFns: readonly Identifier[]; /** functions closing the connection they are handed, besides the ones flowR states {@link CallProp.Closes} for */ closeFns: readonly Identifier[]; } export declare const UNCLOSED_CONNECTION: { readonly createSearch: () => import("../../search/flowr-search-builder").FlowrSearchBuilder<"all", ["filter"], ParentInformation, Promise<import("../../search/flowr-search").FlowrSearchElements<ParentInformation, [] | FlowrSearchElement<ParentInformation>[]>>>; readonly processSearchResult: (elements: import("../../search/flowr-search").FlowrSearchElements<ParentInformation, FlowrSearchElement<ParentInformation>[]>, config: UnclosedConnectionConfig, data: import("../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../r-bridge/parser").KnownParser>) => Promise<{ results: LintingResult[]; '.meta': { totalOpened: number; totalClosed: number; }; }>; readonly prettyPrint: { readonly query: (result: LintingResult) => string; readonly full: (result: LintingResult) => string; }; readonly info: { readonly name: "Unclosed Connection"; readonly tags: readonly [LintingRuleTag.Robustness, LintingRuleTag.Smell]; readonly certainty: LintingRuleCertainty.BestEffort; readonly description: "Flags connections that are opened but not closed on every path opening them."; readonly defaultConfig: { readonly openFns: readonly []; readonly closeFns: readonly []; }; }; };