@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
42 lines (41 loc) • 2.67 kB
TypeScript
import { type LintingResult, LintingRuleCertainty } from '../linter-format';
import { SourceLocation } from '../../util/range';
import type { MergeableRecord } from '../../util/objects';
import { LintingRuleTag } from '../linter-tags';
import { type CfgSimplificationPassName } from '../../control-flow/cfg-simplification';
export interface DeadCodeResult extends LintingResult {
readonly loc: SourceLocation;
}
export interface DeadCodeConfig extends MergeableRecord {
/**
* The simplification passes that should be run on the extracted CFG.
* Defaults to the entries of {@link DefaultCfgSimplificationOrder} and `analyze-dead-code`.
*/
simplificationPasses?: CfgSimplificationPassName[];
}
export interface DeadCodeMetadata extends MergeableRecord {
consideredNodes: number;
}
export declare const DEAD_CODE: {
readonly createSearch: (config: DeadCodeConfig) => import("../../search/flowr-search-builder").FlowrSearchBuilder<"all", ["with"], import("../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, Promise<import("../../search/flowr-search").FlowrSearchElements<import("../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, import("../../search/flowr-search").FlowrSearchElement<import("../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation>[]>>>;
readonly processSearchResult: (elements: import("../../search/flowr-search").FlowrSearchElements<import("../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, import("../../search/flowr-search").FlowrSearchElement<import("../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation>[]>, _config: DeadCodeConfig, _data: {
normalize: import("../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst;
dataflow: import("../../dataflow/info").DataflowInformation;
cfg: import("../../control-flow/control-flow-graph").ControlFlowInformation;
analyzer: import("../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider;
}) => {
results: DeadCodeResult[];
'.meta': DeadCodeMetadata;
};
readonly prettyPrint: {
readonly query: (result: DeadCodeResult) => string;
readonly full: (result: DeadCodeResult) => string;
};
readonly info: {
readonly name: "Dead Code";
readonly tags: readonly [LintingRuleTag.Smell, LintingRuleTag.Usability, LintingRuleTag.Reproducibility];
readonly certainty: LintingRuleCertainty.BestEffort;
readonly description: "Marks areas of code that are never reached during execution.";
readonly defaultConfig: {};
};
};