hydra.java.environment module
Environment types for Java code generation.
- class hydra.java.environment.Aliases(current_namespace: Annotated[ModuleName, 'Current module name context'], packages: Annotated[Mapping[ModuleName, PackageName], 'Maps module names to Java package names'], branch_vars: Annotated[Set[Name], 'Variables bound in pattern matching branches'], recursive_vars: Annotated[Set[Name], 'Variables that are self-recursive'], in_scope_type_params: Annotated[Set[Name], 'Type parameters that are in scope (from method-level type parameters)'], polymorphic_locals: Annotated[Set[Name], 'Local variables that have polymorphic types (declared with raw types)'], in_scope_java_vars: Annotated[Set[Name], 'All in-scope Java variable names (for avoiding lambda parameter shadowing)'], var_renames: Annotated[Mapping[Name, Name], 'Variable renames for avoiding shadowing (maps Hydra name to Java name)'], lambda_vars: Annotated[Set[Name], 'Lambda-bound variables (including hoisted captures with qualified names)'], type_var_subst: Annotated[Mapping[Name, Name], 'Type variable substitution: maps fresh inference variable names to canonical scheme variable names'], trusted_type_vars: Annotated[Set[Name], "Type variables that actually appear in the method's formal parameter types"], method_codomain: Annotated[object, "The enclosing method's codomain (return type), used for casting pair expressions"], thunked_vars: Annotated[Set[Name], 'Variables that have been thunked (wrapped in Supplier) for lazy evaluation'])
Bases:
objectAliases and context for Java code generation.
- BRANCH_VARS = Name(value='branchVars')
- class Builder(_current_namespace: 'hydra.packaging.ModuleName' = None, _packages: 'Mapping[hydra.packaging.ModuleName, hydra.java.syntax.PackageName]' = None, _branch_vars: 'Set[hydra.core.Name]' = None, _recursive_vars: 'Set[hydra.core.Name]' = None, _in_scope_type_params: 'Set[hydra.core.Name]' = None, _polymorphic_locals: 'Set[hydra.core.Name]' = None, _in_scope_java_vars: 'Set[hydra.core.Name]' = None, _var_renames: 'Mapping[hydra.core.Name, hydra.core.Name]' = None, _lambda_vars: 'Set[hydra.core.Name]' = None, _type_var_subst: 'Mapping[hydra.core.Name, hydra.core.Name]' = None, _trusted_type_vars: 'Set[hydra.core.Name]' = None, _method_codomain: 'Optional[hydra.core.Type]' = None, _thunked_vars: 'Set[hydra.core.Name]' = None)
Bases:
object- branch_vars(branch_vars)
- build()
- current_namespace(current_namespace)
- in_scope_java_vars(in_scope_java_vars)
- in_scope_type_params(in_scope_type_params)
- lambda_vars(lambda_vars)
- method_codomain(method_codomain)
- packages(packages)
- polymorphic_locals(polymorphic_locals)
- recursive_vars(recursive_vars)
- thunked_vars(thunked_vars)
- trusted_type_vars(trusted_type_vars)
- type_var_subst(type_var_subst)
- var_renames(var_renames)
- CURRENT_NAMESPACE = Name(value='currentNamespace')
- IN_SCOPE_JAVA_VARS = Name(value='inScopeJavaVars')
- IN_SCOPE_TYPE_PARAMS = Name(value='inScopeTypeParams')
- LAMBDA_VARS = Name(value='lambdaVars')
- METHOD_CODOMAIN = Name(value='methodCodomain')
- PACKAGES = Name(value='packages')
- POLYMORPHIC_LOCALS = Name(value='polymorphicLocals')
- RECURSIVE_VARS = Name(value='recursiveVars')
- THUNKED_VARS = Name(value='thunkedVars')
- TRUSTED_TYPE_VARS = Name(value='trustedTypeVars')
- TYPE_ = Name(value='hydra.java.environment.Aliases')
- TYPE_VAR_SUBST = Name(value='typeVarSubst')
- VAR_RENAMES = Name(value='varRenames')
- static builder()
- current_namespace: Annotated[ModuleName, 'Current module name context']
- in_scope_java_vars: Annotated[Set[Name], 'All in-scope Java variable names (for avoiding lambda parameter shadowing)']
- in_scope_type_params: Annotated[Set[Name], 'Type parameters that are in scope (from method-level type parameters)']
- lambda_vars: Annotated[Set[Name], 'Lambda-bound variables (including hoisted captures with qualified names)']
- method_codomain: Annotated[object, "The enclosing method's codomain (return type), used for casting pair expressions"]
- packages: Annotated[Mapping[ModuleName, PackageName], 'Maps module names to Java package names']
- polymorphic_locals: Annotated[Set[Name], 'Local variables that have polymorphic types (declared with raw types)']
- thunked_vars: Annotated[Set[Name], 'Variables that have been thunked (wrapped in Supplier) for lazy evaluation']
- trusted_type_vars: Annotated[Set[Name], "Type variables that actually appear in the method's formal parameter types"]
- type_var_subst: Annotated[Mapping[Name, Name], 'Type variable substitution: maps fresh inference variable names to canonical scheme variable names']
- var_renames: Annotated[Mapping[Name, Name], 'Variable renames for avoiding shadowing (maps Hydra name to Java name)']
- with_branch_vars(branch_vars)
- with_current_namespace(current_namespace)
- with_in_scope_java_vars(in_scope_java_vars)
- with_in_scope_type_params(in_scope_type_params)
- with_lambda_vars(lambda_vars)
- with_method_codomain(method_codomain)
- with_packages(packages)
- with_polymorphic_locals(polymorphic_locals)
- with_recursive_vars(recursive_vars)
- with_thunked_vars(thunked_vars)
- with_trusted_type_vars(trusted_type_vars)
- with_type_var_subst(type_var_subst)
- with_var_renames(var_renames)
- class hydra.java.environment.JavaEnvironment(aliases: Annotated[Aliases, 'Aliases and context state'], graph: Annotated[Graph, 'Graph context for type inference'])
Bases:
objectEnvironment for Java code generation.
- ALIASES = Name(value='aliases')
- class Builder(_aliases: 'Aliases' = None, _graph: 'hydra.graph.Graph' = None)
Bases:
object- aliases(aliases)
- build()
- graph(graph)
- GRAPH = Name(value='graph')
- TYPE_ = Name(value='hydra.java.environment.JavaEnvironment')
- static builder()
- with_aliases(aliases)
- with_graph(graph)
- class hydra.java.environment.JavaFeatures(supports_diamond_operator: Annotated[bool, 'Whether the diamond operator (<>) is supported (Java 7+)'])
Bases:
objectFeature flags for the target Java version.
- class Builder(_supports_diamond_operator: 'bool' = None)
Bases:
object- build()
- supports_diamond_operator(supports_diamond_operator)
- SUPPORTS_DIAMOND_OPERATOR = Name(value='supportsDiamondOperator')
- TYPE_ = Name(value='hydra.java.environment.JavaFeatures')
- static builder()
- supports_diamond_operator: Annotated[bool, 'Whether the diamond operator (<>) is supported (Java 7+)']
- with_supports_diamond_operator(supports_diamond_operator)
- class hydra.java.environment.JavaSymbolClass
Bases:
objectJavaSymbolClassConstant | JavaSymbolClassNullaryFunction | JavaSymbolClassHoistedLambda | JavaSymbolClassUnaryFunction | JavaSymbolClassLocalVariable
- CONSTANT = Name(value='constant')
- HOISTED_LAMBDA = Name(value='hoistedLambda')
- LOCAL_VARIABLE = Name(value='localVariable')
- NULLARY_FUNCTION = Name(value='nullaryFunction')
- TYPE_ = Name(value='hydra.java.environment.JavaSymbolClass')
- UNARY_FUNCTION = Name(value='unaryFunction')
- class hydra.java.environment.JavaSymbolClassConstant
Bases:
objectA constant value
- class hydra.java.environment.JavaSymbolClassHoistedLambda(value: T)
Bases:
Node[int]A hoisted lambda wrapped in type lambdas. The Int is the number of curried lambda parameters.
- class hydra.java.environment.JavaSymbolClassLocalVariable
Bases:
objectA local variable
- class hydra.java.environment.JavaSymbolClassNullaryFunction
Bases:
objectA nullary function (no arguments)
- class hydra.java.environment.JavaSymbolClassUnaryFunction
Bases:
objectA unary function (single argument)