enso-org / enso

Enso Analytics is a self-service data prep and analysis platform designed for data teams.
https://ensoanalytics.com
Apache License 2.0
7.39k stars 323 forks source link

Pass intersection type thru the `-> Complex` check #11600

Open JaroslavTulach opened 5 days ago

JaroslavTulach commented 5 days ago

Pull Request Description

1st attempt to implement the -> Complex check. The idea is to split the list of types[] in EnsoMultiValue into two parts:

By performing this separation I hope to address the #10882. After a type check only methods available on the dispatchMethodTypes can be invoked. However the value can still be cast to all the possible types.

Important Notes

@Akirathan, @radeusgd please check the idea, feel free to contribute new test cases. The goal of this PR is to get the dispatch/cast logic right. The next step would be to make it fast. So far some tests are failing, but the ideas in this PR shall already be eligible for a review.

Checklist

Please ensure that the following checklist has been satisfied before submitting the PR:

Akirathan commented 4 days ago

Idea for increasing test coverage of EnsoMultiValue: Manually create some Truffle nodes and explicitly call them. Inspiration from EqualsTest and HashCodeTest.

JaroslavTulach commented 3 days ago

Idea for increasing test coverage of EnsoMultiValue: Manually create some Truffle nodes and explicitly call them. Inspiration from EqualsTest and HashCodeTest.