@eagleoutice/flowr-dev
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
45 lines (44 loc) • 2.49 kB
TypeScript
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 [];
};
};
};