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

Don't check whether type parameters with a default value can be inferred #1084

Closed
lars-reimann opened this issue Apr 22, 2024 · 1 comment · Fixed by #1090
Closed

Don't check whether type parameters with a default value can be inferred #1084

lars-reimann opened this issue Apr 22, 2024 · 1 comment · Fixed by #1090
Assignees
Labels
enhancement 💡 New feature or request released Included in a release
Milestone

Comments

@lars-reimann
Copy link
Member

lars-reimann commented Apr 22, 2024

Is your feature request related to a problem?

If type parameters cannot be inferred from the context, an error is shown. This includes optional type parameters. For classes, this behavior prevents initializing the type parameters to some initial state:

enum TrainingState {
    Untrained
    Trained
}

class Regressor1<State sub TrainingState = TrainingState.Untrained>() {
    @Pure fun fit() -> regressor: Regressor1<TrainingState.Trained>
}

Desired solution

  • For classes, don't show this error for optional type parameters.
  • Keep the check for functions.

Possible alternatives (optional)

No response

Screenshots (optional)

No response

Additional Context (optional)

No response

@lars-reimann lars-reimann added the enhancement 💡 New feature or request label Apr 22, 2024
@lars-reimann lars-reimann added this to the v0.13.0 milestone Apr 23, 2024
@lars-reimann lars-reimann self-assigned this Apr 23, 2024
lars-reimann added a commit that referenced this issue Apr 23, 2024
… inferred (#1090)

Closes #1084

### Summary of Changes

Optional type parameters of classes are now always allowed, even if they
can never be inferred from their usage in the constructor.

This is useful to initialize them to some default value upon
instantiation and override this value later, e.g. in return types of
functions. See #1084 for an example.
lars-reimann pushed a commit that referenced this issue Apr 24, 2024
## [0.13.0](v0.12.0...v0.13.0) (2024-04-24)

### Features

* allow schemas in pipeline files ([#1080](#1080)) ([9508178](9508178)), closes [#1077](#1077)
* annotations `@Category` and `@Tags` ([#1061](#1061)) ([e45a4c9](e45a4c9)), closes [#1021](#1021)
* check if latest runner is installed ([#1097](#1097)) ([93432bb](93432bb)), closes [#1096](#1096)
* do not check whether optional type parameters of classes can be inferred ([#1090](#1090)) ([31b8a28](31b8a28)), closes [#1084](#1084) [#1084](#1084)
* generate nested functions for expression lambdas ([#1062](#1062)) ([f79fd61](f79fd61))
* mark schemas as experimental ([#1089](#1089)) ([09faaf0](09faaf0)), closes [#1078](#1078)
* print values via code lens ([#1072](#1072)) ([f338023](f338023)), closes [#1032](#1032)
* run pipeline via code lens ([#1068](#1068)) ([392154d](392154d))
* show image via code lens ([#1071](#1071)) ([bd0946b](bd0946b)), closes [#984](#984)

### Bug Fixes

* import error when exploring tables in pipelines that call segments ([#1074](#1074)) ([e34b3ff](e34b3ff))
* pass optional arguments of memoized calls by name ([#1095](#1095)) ([39d9e5a](39d9e5a)), closes [#1087](#1087)
* possible restart loop after installing the runner ([#1073](#1073)) ([7206d62](7206d62))
* runner not shutting down when extension was closed ([#1094](#1094)) ([77a0c1f](77a0c1f))
* stub for `Table.transformColumn` ([#1065](#1065)) ([aa43316](aa43316))
* type check arguments of annotation calls ([#1060](#1060)) ([09ca1cf](09ca1cf))
@lars-reimann
Copy link
Member Author

🎉 This issue has been resolved in version 0.13.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@lars-reimann lars-reimann added the released Included in a release label Apr 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement 💡 New feature or request released Included in a release
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

1 participant