Avoid the generation of polymorphic type variables when iterating on
polymorphic operators. For instance, when LicDumping expression such as map<<map<<+,4>>,5>> an alias node was created for "map<<+,4>>" (to unnest iterator calls). Fut this node is intrically overloaded (polymorphic). In this change, we look at the type this innr call is used to generate a specialised (mono-morphic) version of the node alias. Note that we currently still generate type variable when users write node mymap = map<<+,4>>;
Showing
- src/compiledData.ml 17 additions, 1 deletionsrc/compiledData.ml
- src/evalType.ml 42 additions, 25 deletionssrc/evalType.ml
- src/lazyCompiler.ml 2 additions, 1 deletionsrc/lazyCompiler.ml
- src/licDump.ml 138 additions, 91 deletionssrc/licDump.ml
- src/licDump.mli 38 additions, 2 deletionssrc/licDump.mli
- src/predefEvalType.ml 49 additions, 46 deletionssrc/predefEvalType.ml
- src/predefEvalType.mli 1 addition, 1 deletionsrc/predefEvalType.mli
- src/test/should_work/call/bad_call03.lus 2 additions, 0 deletionssrc/test/should_work/call/bad_call03.lus
- src/test/should_work/demo/mapdeRed.lus 1 addition, 1 deletionsrc/test/should_work/demo/mapdeRed.lus
- src/test/test.res.exp 30 additions, 30 deletionssrc/test/test.res.exp
- src/unifyType.ml 1 addition, 19 deletionssrc/unifyType.ml
- src/unifyType.mli 1 addition, 5 deletionssrc/unifyType.mli
Loading
Please register or sign in to comment