-
Notifications
You must be signed in to change notification settings - Fork 0
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
feat: improvements to constraints #896
Conversation
Since type parameters can only refer to prior type parameters, we will eventually reach the start of the type parameter list and stop anyway.
🦙 MegaLinter status: ✅ SUCCESS
See detailed report in MegaLinter reports |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #896 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 93 92 -1
Lines 16792 16517 -275
Branches 3423 3350 -73
==========================================
- Hits 16792 16517 -275 ☔ View full report in Codecov by Sentry. |
## [0.8.0](v0.7.0...v0.8.0) (2024-02-26) ### Features * check the runner version to be compatible ([#888](#888)) ([83378a3](83378a3)), closes [#880](#880) * check type parameter bounds for default values and named types ([#919](#919)) ([7003ea6](7003ea6)), closes [#614](#614) * clamp default values of parameter types to upper bound ([#921](#921)) ([76ad869](76ad869)) * compute highest common subtype ([#901](#901)) ([5630a9f](5630a9f)), closes [#860](#860) * compute type parameters for calls ([#920](#920)) ([35dc826](35dc826)), closes [#861](#861) * consider nullability of upper type parameter bound in various checks ([#892](#892)) ([940515a](940515a)) * constraints for segments ([#911](#911)) ([e57f886](e57f886)), closes [#903](#903) * EDA on pipeline Tables ([#834](#834)) ([f42c9aa](f42c9aa)) * error if parent type is nullable ([#891](#891)) ([add650d](add650d)) * escape characters in string conversion of string constants ([#908](#908)) ([72a9c3c](72a9c3c)), closes [#904](#904) * format upper bound of type parameters ([#898](#898)) ([9d6ce28](9d6ce28)) * handle invariant/covariant type parameters when computing lowest common supertype ([#868](#868)) ([4d6cb4e](4d6cb4e)), closes [#860](#860) [#861](#861) * improve handling of subclasses of lists/maps ([#890](#890)) ([bb0c94b](bb0c94b)) * improvements to constraints ([#896](#896)) ([b81bef9](b81bef9)), closes [#18](#18) [#860](#860) [#18](#18) * include enum name in string conversion of enum variant types ([#907](#907)) ([1f6502e](1f6502e)), closes [#902](#902) * scoping for member accesses if receiver has type parameter type ([#889](#889)) ([1277bd1](1277bd1)) * shorter message if runner is started but files have errors ([#912](#912)) ([b611b44](b611b44)), closes [#910](#910) * simplify union types containing type parameter types disregarding entry order ([#894](#894)) ([cf6e77e](cf6e77e)) * singular type is its own lowest common supertype ([#893](#893)) ([79d611d](79d611d)) * substitute type parameter when type checking calls ([#923](#923)) ([2e09306](2e09306)), closes [#915](#915) * substitute type parameters when checking overridden members ([#922](#922)) ([0e657cf](0e657cf)), closes [#917](#917) * update to `safe-ds-runner` v0.7.0 ([#906](#906)) ([070f406](070f406)) * use bounds of type system where possible ([#899](#899)) ([cf92762](cf92762)) ### Bug Fixes * lenient type checking involving type parameter types ([#916](#916)) ([b9d3641](b9d3641)), closes [#915](#915) [#915](#915) * runner startup silent failure ([#914](#914)) ([8812944](8812944)), closes [#909](#909) * save dirty files before running pipeline ([#918](#918)) ([4302ca6](4302ca6)) * simplification of union types ([#897](#897)) ([4c577a3](4c577a3))
🎉 This PR is included in version 0.8.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Closes partially #18
Summary of Changes
Nothing
is no subtype of a type parameter type with a lower bound other thanNothing
. This means, when computing the highest common subtype (Handle type parameters when computing lowest common supertype #860), we could only return$unknown
for a type parameter type with a lower bound of, say,Int
, and another type likeNumber
.