Skip to content
Snippets Groups Projects
  • Erwan Jahier's avatar
    b09c78c5
    I have complety rewritten the way predef operator typing is · b09c78c5
    Erwan Jahier authored
    performed. The resulting code is both more compact, and more general.
    
    It is more  general, since that predef operators  are now represented
    by  node_exp_eff, exactly as  user nodes.   Hence, all  the functions
    that were  operating on  user nodes via  node_exp_eff (such  as, node
    aliasing) works for free on predef op!
    
    In order to be able  to perform that generalisation, it was necessary
    to  extend sligthly  the data  structure used  to represent  the node
    profile in CompiledData.node_exp_eff with information indicating if a
    variable is polymorphic or overloaded.
    
    Not that, currently, polymorphic  or overloaded variables can only be
    introduced by predef  operators. But I think it would  be easy to add
    those notions for normal user nodes after this change.
    
    New non-reg files boolred now compiles. Those involving
    - boolred
    - alias on predef.op
    b09c78c5
    History
    I have complety rewritten the way predef operator typing is
    Erwan Jahier authored
    performed. The resulting code is both more compact, and more general.
    
    It is more  general, since that predef operators  are now represented
    by  node_exp_eff, exactly as  user nodes.   Hence, all  the functions
    that were  operating on  user nodes via  node_exp_eff (such  as, node
    aliasing) works for free on predef op!
    
    In order to be able  to perform that generalisation, it was necessary
    to  extend sligthly  the data  structure used  to represent  the node
    profile in CompiledData.node_exp_eff with information indicating if a
    variable is polymorphic or overloaded.
    
    Not that, currently, polymorphic  or overloaded variables can only be
    introduced by predef  operators. But I think it would  be easy to add
    those notions for normal user nodes after this change.
    
    New non-reg files boolred now compiles. Those involving
    - boolred
    - alias on predef.op