diff options
| author | Cliff Click <cliffc@acm.org> | 2025-08-17 08:08:06 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2025-08-17 08:08:06 -0700 |
| commit | 9fec52a81a13c83e8e6497fa333e69321d063be9 (patch) | |
| tree | d9370a152f241bbbfd57b7295f1bb0cc144fafbc | |
| parent | 721f14bcc8752d156d52553a3ca544680c7e9b72 (diff) | |
| download | Simple-9fec52a81a13c83e8e6497fa333e69321d063be9.tar.gz Simple-9fec52a81a13c83e8e6497fa333e69321d063be9.zip | |
Update TypeAnalysis.md
| -rw-r--r-- | TypeAnalysis.md | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/TypeAnalysis.md b/TypeAnalysis.md index ee187cdf..c0086791 100644 --- a/TypeAnalysis.md +++ b/TypeAnalysis.md @@ -750,7 +750,7 @@ isHappy = { pet : Pet -> pet.eq("Happy") } ERROR: No field `eq` on type Pet ``` -If we reverse the calling arguments: +And if we reverse the calling arguments: ```java isHappy = { pet : Pet -> "Happy".eq(pet) } @@ -761,6 +761,25 @@ ERROR: function String.eq argument#1 must be a String ## Parametric Polymorphism +**TODO**... + +This looks to me to be solved with **specialization** (cloning the analysis in +any work should work, function inlining or function specialization are both +ways to clone the analysis). + +Type var with the intent it becomes concrete - treat as bot/top, maybe not +even need specialized name ? + +Trigger inline/specialize based on having concrete args to a function w/ type +var (Parm with a default BOT type). After specialize, Parm with lift to the +concrete and problem solved... + +Specialization will split FIDXs, will need to deal with that (keep precise +Call Graph) + + + + ## Conditional Conformance "Conditional Conformance" is a fancy name for a fairly simple idea: if an |
