-
Notifications
You must be signed in to change notification settings - Fork 44
Name-based implicits in Effekt #1380
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
Merged
Merged
Changes from 33 commits
Commits
Show all changes
46 commits
Select commit
Hold shift + click to select a range
a0d927f
Initial draft
marzipankaiser 3713952
Instantiate implicit parameters late
marzipankaiser 6132a0f
Remove TODOs
marzipankaiser e184923
Fix recursive usage of implicits
marzipankaiser 5b301e2
Fix case where there are implicit and explicit arguments
marzipankaiser 6dcaf30
Add missing annotation for block argument
marzipankaiser 01ac986
Split out generation of implicits into separate methods
marzipankaiser 99e07aa
Add sourcePosition implicit arguments
marzipankaiser d187654
Add basic check for order between implicits and non-implicits
marzipankaiser 1c82dd6
Add some tests for name-based implicits
marzipankaiser a7d3676
Fix name-based implicits on operations (on objects/effects)
marzipankaiser da1119a
Fix generated names, Report errors during namechecking of impicit arg…
marzipankaiser 111b691
Add another example (implementing type-level plus and toInt)
marzipankaiser 5695bfc
Make ints long to make the llvm backend happy
marzipankaiser 8725374
Bind intermediate value in example
marzipankaiser f8930cd
Fix typelevel example for other inputs
marzipankaiser 87b14ac
Print implicit arguments correctly in DeclPrinter
marzipankaiser bd7bacc
Move initial generation of implicit arguments to separate object
marzipankaiser 8c944c1
Move implicit-related helpers from typer too the object, too
marzipankaiser b4dcaf3
Add some documentation
marzipankaiser da15c20
Add example with return-type overloading
marzipankaiser 83ab24a
Add type-tag example variant with return type overloading
marzipankaiser 8b85f18
Add example using implicit interface arguments
marzipankaiser 2cf8a16
Slightly improve error messages for implicits
marzipankaiser 0f9a957
Better error message location for implicits in block literals (disall…
marzipankaiser 1e59302
Stop recursion if the types aren't getting smaller for multiple levels
marzipankaiser 9e756b5
Add type annotation to make the example work
marzipankaiser 8d968bb
Make it more obvious we are only interested in side effects and error…
marzipankaiser ba63f67
Can't use () so use _
marzipankaiser ba3ea3e
Refactor: Use type for incomplete stencils in ImplicitContext, simplify
marzipankaiser 31e1ef5
Generate nicer (nested) errors for implicit instantiation
marzipankaiser db261c2
Further improve error message (include type)
marzipankaiser 233aed4
Even better error messages, now with explanations for special cases
marzipankaiser 7d78a4a
Always have a parameter index
marzipankaiser 7ba6655
typo
marzipankaiser c30787f
Refactor: Remove now-obsolete type parameter
marzipankaiser 55ab960
Refactor: Move stencils into GenerateImplicitArgs, add some structur
marzipankaiser b84341d
Expand boxes in implicit value arguments
marzipankaiser 5b2b0d9
Fix error message for boxed types
marzipankaiser b26c6a8
Remove ReifiedType, there is *TypeTree already...
marzipankaiser e92b903
Simplify generation of refreshed block literal
marzipankaiser 85be025
Simplify generation of value args
marzipankaiser 9e3c2e1
Initial draft language tour and minor fix
marzipankaiser 67de2c7
Update effekt/shared/src/main/scala/effekt/Namer.scala
marzipankaiser 1aa3829
Minor improvements in the name-based implicits tour
marzipankaiser 319e60d
Fix example by unboxing manually
marzipankaiser File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.