Skip to content

Resolver & Type Classes Tracking Issue #272

@FlandiaYingman

Description

@FlandiaYingman

This issue tracks the problems that are neither urgent nor pressing related to the resolver & type classes feature.

Summer UROP


Later

  • Handle cyclic resolution

    M.List.map
    
    module M with
      val List: M2.List = M2.List
    
    module M2 with
      val List: M.List = M.List
  • Move selections' symbol resolution to the resolution phase and refactor the resolvedSymbol part.

    • Before that, move UCS normalization to/after the resolution phase.

Completed Tasks

- [x] Resolution possibly leading to more symbol resolution. ```fs fun foo[A](using foo: Foo[A]): A

use Foo[List]
foo.map


- [x] Local functions as module methods (as their definitions always exist).

- [x] It resolves implicit application through `Sel` and `SynthSel` (because they may lead to an implicit module method call), but `Ref`.
```fs
Sel(M, f) // is resolved to App(Sel(M, f), CtxArgs)
SynthSel(M, f) // is resolved to App(SynthSel(M, f), CtxArgs)
Ref(M.f) // is not, and is expected to be, resolved to App(Ref(M.f), CtxArgs)

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions