Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deliver full intersection type of a value to the IDE #11481

Closed
JaroslavTulach opened this issue Nov 4, 2024 · 4 comments · Fixed by #11583
Closed

Deliver full intersection type of a value to the IDE #11481

JaroslavTulach opened this issue Nov 4, 2024 · 4 comments · Fixed by #11583
Assignees

Comments

@JaroslavTulach
Copy link
Member

To provide

the IDE needs to receive information about all types participating in an intersection type of a value. Right now the IDE receives only one of the types in the intersection type. That has to be changed, probably by adjusting API or implementation of ExpressionUpdate message.

Specification

Imagine following program:

from Standard.Base import all
import Standard.Visualization

type R
    private V a:Text i:Integer

    as_text self = self:Text
    as_int_text self = 
        r = (self : Integer & Text)
        r
    as_text_int self = 
        r = (self : Text & Integer)
        r
    as_int self = self:Integer

Text.from (that:R) = that.a
Integer.from (that:R) = that.i

main =
    n = R.V "Hi" 3
    t1 = n.as_text
    b2 = n.as_int_text
    i3 = n.as_int
    node1 = n.as_text_int

Right now (after #11480 is integrated) the type of b2 is Integer and type of node1 is Text.

Goal

The type of the b2 in the above example should include Integer as well as Text and the type of node1 should include Text as well as Integer.

Why?

Only then the IDE can offer methods for both types in the component browser for b2 or node1

Note

To support Auto-Domination use-case of #11366 - the order of types may be important.

@enso-bot
Copy link

enso-bot bot commented Nov 15, 2024

Dmitry Bushev reports a new STANDUP for today (2024-11-15):

Progress: [11281] Working on the review comments. Implemented isSynthetic flag for the CallArgument IR Node. [11573] Updated CI build to run clean action before SBT build. Create a PR. [11481] Added the test. Updated the runtime instrumentation to handle multi-type values. It should be finished by 2024-11-20.

Next Day: Next day I will be working on the #11481 task. Continue working on the task

@enso-bot
Copy link

enso-bot bot commented Nov 18, 2024

Dmitry Bushev reports a new STANDUP for yesterday (2024-11-18):

Progress: Updated the language server protocol to support multi-type values. Simplified the suggestions handling. Updated the gui to use the updated language server protocol. Created the PR. It should be finished by 2024-11-20.

Next Day: Next day I will be working on the #11481 task. Continue working on the task

@enso-bot
Copy link

enso-bot bot commented Nov 19, 2024

Dmitry Bushev reports a new STANDUP for today (2024-11-19):

Progress: [11517] Working on the review comments. Added the build input to choose between the Node.js and polyglot Ydoc images. Updated the ECR repo and the image versioning. [11481] Started working on the review comments It should be finished by 2024-11-20.

Next Day: Next day I will be working on the #11481 task. Continue working on the task

@enso-bot
Copy link

enso-bot bot commented Nov 20, 2024

Dmitry Bushev reports a new STANDUP for today (2024-11-20):

Progress: [11517] Working on dispatching the cloud workflow after building the images. Added a new command to the run script. Updated the release pipeline to include a dispatch step. [11481] Working on the review comments. Updated the logic getting the type of node. Update the language server protocol docs. It should be finished by 2024-11-20.

Next Day: Next day I will be working on the #11481 task. Continue working on the task

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants