l0_analysis.py

l0_analysis.py

Module: l0_analysis

Source: compiler/stage1_py/l0_analysis.py Language: Python

Symbols

Namespace l0_analysis

Class l0_analysis::VarRefResolution

Enumeration of variable reference resolution targets.

Member Data l0_analysis.VarRefResolution.LOCAL

1
str LOCAL

Member Data l0_analysis.VarRefResolution.MODULE

1
str MODULE

Class l0_analysis::AnalysisResult

Full front-end analysis result for an entry module.

Member Data l0_analysis.AnalysisResult.cu

1
Optional cu

Member Data l0_analysis.AnalysisResult.context

1
CompilationContext context

Member Data l0_analysis.AnalysisResult.module_envs

1
Dict module_envs

Member Data l0_analysis.AnalysisResult.func_types

1
Dict func_types

Member Data l0_analysis.AnalysisResult.struct_infos

1
Dict struct_infos

Member Data l0_analysis.AnalysisResult.enum_infos

1
Dict enum_infos

Member Data l0_analysis.AnalysisResult.func_envs

1
Dict func_envs

Member Data l0_analysis.AnalysisResult.let_types

1
Dict let_types

Member Data l0_analysis.AnalysisResult.expr_types

1
Dict expr_types

Member Data l0_analysis.AnalysisResult.var_ref_resolution

1
Dict var_ref_resolution

Member Data l0_analysis.AnalysisResult.intrinsic_targets

1
Dict intrinsic_targets

Member Data l0_analysis.AnalysisResult.diagnostics

1
List diagnostics

Function l0_analysis.AnalysisResult.has_errors

1
bool l0_analysis.AnalysisResult.has_errors(self)

Check if any ‘error’ diagnostics were reported.

Returns: True if at least one error exists, False otherwise.

Function l0_analysis.AnalysisResult.has_warnings

1
bool l0_analysis.AnalysisResult.has_warnings(self)

Check if any ‘warning’ diagnostics were reported.

Returns: True if at least one warning exists, False otherwise.

Function l0_analysis.AnalysisResult.is_arc_type

1
bool l0_analysis.AnalysisResult.is_arc_type(self, Type ty)

Check if a type requires Automatic Reference Counting (ARC).

Currently, only the ‘string’ builtin type requires ARC.

Parameters:

  • ty: The type to check.

Returns: True if the type is managed by ARC, False otherwise.

Function l0_analysis.AnalysisResult.has_arc_data

1
bool l0_analysis.AnalysisResult.has_arc_data(self, Type typ)

Check if a type transitively contains ARC-managed data.

This is used to determine if a value of this type requires retain/release orchestration during assignment or when going out of scope.

Parameters:

  • typ: The type to check.

Returns: True if the type or any of its components are managed by ARC, False otherwise.