Coverage for lintro / parsers / tsc / tsc_issue.py: 100%

9 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2026-04-03 18:53 +0000

1"""Models for tsc (TypeScript Compiler) issues.""" 

2 

3from __future__ import annotations 

4 

5from dataclasses import dataclass, field 

6 

7from lintro.parsers.base_issue import BaseIssue 

8 

9 

10@dataclass 

11class TscIssue(BaseIssue): 

12 """Represents a TypeScript compiler issue. 

13 

14 This class extends BaseIssue with tsc-specific fields for type checking 

15 errors and warnings. All fields are optional to handle cases where 

16 tsc doesn't provide complete location information. 

17 

18 Attributes: 

19 code: TypeScript error code (e.g., "TS2322", "TS1234"). 

20 Empty string if tsc doesn't provide an error code. 

21 severity: Severity level reported by tsc (e.g., "error", "warning"). 

22 None if severity is not specified. 

23 end_line: Optional end line number for multi-line issues. 

24 None if the issue is on a single line or end position is unknown. 

25 end_column: Optional end column number for issues spanning multiple columns. 

26 None if the issue is at a single column or end position is unknown. 

27 

28 Examples: 

29 >>> issue = TscIssue( 

30 ... file="src/main.ts", 

31 ... line=10, 

32 ... column=5, 

33 ... code="TS2322", 

34 ... severity="error", 

35 ... message="Type 'string' is not assignable to type 'number'.", 

36 ... ) 

37 """ 

38 

39 code: str = field(default="") 

40 severity: str | None = field(default=None) 

41 end_line: int | None = field(default=None) 

42 end_column: int | None = field(default=None)