diff --git a/doc/ref_internals.rst b/doc/ref_internals.rst index 86e2edad2fd291489fdc1a698d6a069899acf4bb..0ad56a39bb1f63a9c1ce1071909ea0f53ebd4fd4 100644 --- a/doc/ref_internals.rst +++ b/doc/ref_internals.rst @@ -24,6 +24,11 @@ the codegen pipeline user-provided types are converted to .. automodule:: loopy.types +Type inference +^^^^^^^^^^^^^^ + +.. automodule:: loopy.type_inference + Codegen ------- diff --git a/loopy/target/c/codegen/expression.py b/loopy/target/c/codegen/expression.py index b1723e9d6bf19701b47853638cbf90e1d70a5ee0..83c13dfe549d905d0f63c9f2a082a3c679c9e8c8 100644 --- a/loopy/target/c/codegen/expression.py +++ b/loopy/target/c/codegen/expression.py @@ -48,12 +48,13 @@ from pymbolic.mapper.stringifier import ( from loopy.diagnostic import LoopyError from loopy.expression import dtype_to_type_context from loopy.target.c import CExpression -from loopy.type_inference import TypeReader +from loopy.type_inference import TypeInferenceMapper, TypeReader from loopy.types import LoopyType from loopy.typing import Expression, is_integer if TYPE_CHECKING: + from loopy.codegen import CodeGenerationState from loopy.symbolic import TypeCast @@ -79,7 +80,11 @@ class ExpressionToCExpressionMapper(IdentityMapper): expected type for untyped expressions such as python scalars. The type of the expressions takes precedence over *type_context*. """ - def __init__(self, codegen_state, fortran_abi=False, type_inf_mapper=None): + def __init__(self, + codegen_state: CodeGenerationState, + fortran_abi: bool = False, + type_inf_mapper: TypeInferenceMapper | None = None + ) -> None: self.kernel = codegen_state.kernel self.codegen_state = codegen_state diff --git a/loopy/type_inference.py b/loopy/type_inference.py index b3c6ffddd40e84354ab927f3c2c535bf0c9a675c..8894af573ede6377a8621da3904661a980782aa2 100644 --- a/loopy/type_inference.py +++ b/loopy/type_inference.py @@ -1,3 +1,7 @@ +""" +.. autoclass:: TypeInferenceMapper +""" + from __future__ import annotations