Comments (3)
That looks expected to me. The previous reduction relied on some unsound behavior of match types, which we fixed since.
from dotty.
Seems we are treating it as intentional behaviour. Closing this.
from dotty.
Thanks for the quick response.
@sjrd, can you please elaborate about this error?
I see there's this superfluous T & String *: EmptyTuple
type assigned to tt
. Why isn't it just String *: EmptyTuple
as implied by the case statement?
Is there some recommended way of working with inline tuple matching that circumvents this error? Or the workaround I mentioned the only way to do it?
For my real use case, I wouldn't mind using unapply
in the match directly, but the actual match is on type parameters, like so:
inline def foo[T <: Tuple](t: T) =
inline t match
case (xx: h) *: (yy: t)=>
val x: h = xx
val y: t = yy
And that doesn't seem to work either as h
and t
are not recognized as type variables.
Thanks
from dotty.
Related Issues (20)
- Extension method fails to resolve for member type of a structural type
- find less fragile alternative to .tastycheck testing
- The auto-approximated bound for match types leaks type captures
- Auto-approximating bound for match types caused changes in erasure, which are TASTy- and binary incompatible HOT 1
- scaladoc: clauses with evidence parameters as context bounds
- `scala` script uses an old Scala version for printing help messages HOT 1
- Regression in implicit search in mixed implicit/givens sources HOT 10
- Inconsistent handling of match types on dependent types when overriding HOT 3
- Failed to resolve extension method: cannot establish a reference to [...]
- Regression in `katrix/perspective` for extension methods HOT 3
- Compiler crashes when combining lazy val and macros HOT 2
- Regression in `mjakubowski84/parquet4s` for type inference HOT 2
- different TASTy output with scala2-library-tasty
- Scaladoc snippet compilation fails to evaluate a macro HOT 1
- `-source:future-migration` generating warnings on `TypeRepr` matches HOT 1
- Passing an inlined result of tuple concatenation to an inline def that calls an intermediate method fails to typecheck
- Higher-kinded type is incompatible to itself HOT 2
- 3.5.0-RC6 Release procedure
- 3.4.3-RC1 Release procedure HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dotty.