UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

42 lines (41 loc) 2.67 kB
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: {}; }; };