# types/analyzer.types.ts

> 122 lines of code and 17 definitions.

Tree: Governance tree
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/governance#file-governance-types-analyzer-types-ts
Source text: https://banes-lab.com/source/governance/types/analyzer.types.ts.txt

Listed in [types](https://banes-lab.com/api/source/governance/types.md), before [types/check.types.ts](https://banes-lab.com/source/governance/types/check.types.ts.md).

## Definitions

- `CodePointFinding` (interface_declaration, line 3, exported)
- `IncrementFinding` (interface_declaration, line 14, exported)
- `RenameLocation` (interface_declaration, line 25, exported)
- `IdentifierFinding` (interface_declaration, line 31, exported)
- `BindingFinding` (interface_declaration, line 41, exported)
- `BindingContext` (interface_declaration, line 55, exported)
- `SpecifierFinding` (interface_declaration, line 62, exported)
- `WorkspaceMember` (interface_declaration, line 72, exported)
- `LocationFinding` (interface_declaration, line 78, exported)
- `LiteralSite` (interface_declaration, line 90, exported)
- `LiteralPair` (interface_declaration, line 95, exported)
- `LiteralFinding` (interface_declaration, line 100, exported)
- `ReferenceFinding` (interface_declaration, line 111, exported)
- `WordScope` (interface_declaration, line 118, exported)
- `VocabularyScope` (interface_declaration, line 124, exported)
- `RenameReach` (interface_declaration, line 129, exported)
- `PlainClosedValue` (interface_declaration, line 134, exported)

## Source

```typescript
import type ts from "typescript";

export interface CodePointFinding {
    file: string;
    fileName: string;
    line: number;
    start: number;
    end: number;
    receiver: string;
    args: string;
    reason: string | null;
}

export interface IncrementFinding {
    file: string;
    fileName: string;
    line: number;
    start: number;
    end: number;
    operand: string;
    operator: string;
    reason: string | null;
}

export interface RenameLocation {
    fileName: string;
    start: number;
    end: number;
}

export interface IdentifierFinding {
    file: string;
    fileName: string;
    line: number;
    reason: string | null;
    from: string;
    to: string;
    locations: RenameLocation[];
}

export interface BindingFinding {
    file: string;
    fileName: string;
    line: number;
    start: number;
    end: number;
    iface: string;
    member: string;
    ifaceFile: string;
    ifaceLine: number;
    method: ts.MethodDeclaration;
    reason: string | null;
}

export interface BindingContext {
    checker: ts.TypeChecker;
    classNode: ts.ClassDeclaration;
    sourceFile: ts.SourceFile;
    overrides: ReadonlyMap<ts.Symbol, ReadonlySet<string>>;
}

export interface SpecifierFinding {
    file: string;
    from: string;
    line: number;
    reason: string | null;
    start: number;
    end: number;
    to: string;
}

export interface WorkspaceMember {
    exports: Record<string, unknown> | null;
    name: string;
    rel: string;
}

export interface LocationFinding {
    end: number;
    file: string;
    from: string;
    line: number;
    localName: string;
    needsImport: boolean;
    reason: string | null;
    start: number;
    to: string;
}

export interface LiteralSite {
    chain: ts.Node[];
    node: ts.StringLiteral;
}

export interface LiteralPair {
    from: string;
    to: string;
}

export interface LiteralFinding {
    end: number;
    file: string;
    fileName: string;
    from: string;
    line: number;
    reason: string | null;
    start: number;
    to: string;
}

export interface ReferenceFinding {
    construct: string;
    file: string;
    token: string;
    value: string;
}

export interface WordScope {
    readonly roots: readonly string[];
    readonly extensions: readonly string[];
    readonly skipped: (relPath: string) => boolean;
}

export interface VocabularyScope extends WordScope {
    readonly skippedPaths: readonly string[];
    readonly wholeIdRoots: readonly string[];
}

export interface RenameReach {
    readonly prose: boolean;
    readonly wholeId: boolean;
}

export interface PlainClosedValue {
    readonly file: string;
    readonly line: number;
    readonly target: string;
    readonly vocabulary: string;
}
```
