Commit 13ac0c4
committed
Make
We now forbid given clauses followed by normal parameter clauses.
besides the syntactic awkwardness, there's also the problem
of eta expansion. Example:
```
trait Universe { type T }
def f given (u: Universe) (x: u.T)
```
How should we tea expand `f`? The usual algorithm would give:
```
(x: u.T) => (f given the[Universe])(x)
```
but that's ill typed, since `u` is not defined on the outside.given clauses come last1 parent 659e1f1 commit 13ac0c4
File tree
4 files changed
+57
-45
lines changed- compiler/src/dotty/tools/dotc/parsing
- docs/docs
- internals
- reference/contextual
- tests/neg
4 files changed
+57
-45
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2114 | 2114 | | |
2115 | 2115 | | |
2116 | 2116 | | |
2117 | | - | |
2118 | | - | |
2119 | | - | |
2120 | | - | |
2121 | | - | |
| 2117 | + | |
| 2118 | + | |
| 2119 | + | |
| 2120 | + | |
| 2121 | + | |
| 2122 | + | |
2122 | 2123 | | |
2123 | | - | |
2124 | | - | |
2125 | | - | |
| 2124 | + | |
| 2125 | + | |
| 2126 | + | |
2126 | 2127 | | |
2127 | 2128 | | |
2128 | 2129 | | |
| |||
2204 | 2205 | | |
2205 | 2206 | | |
2206 | 2207 | | |
| 2208 | + | |
2207 | 2209 | | |
| 2210 | + | |
2208 | 2211 | | |
2209 | 2212 | | |
2210 | 2213 | | |
2211 | 2214 | | |
2212 | 2215 | | |
2213 | 2216 | | |
2214 | | - | |
| 2217 | + | |
2215 | 2218 | | |
2216 | 2219 | | |
2217 | 2220 | | |
| |||
2236 | 2239 | | |
2237 | 2240 | | |
2238 | 2241 | | |
2239 | | - | |
2240 | | - | |
| 2242 | + | |
| 2243 | + | |
| 2244 | + | |
2241 | 2245 | | |
2242 | 2246 | | |
2243 | 2247 | | |
2244 | 2248 | | |
2245 | 2249 | | |
2246 | 2250 | | |
2247 | 2251 | | |
2248 | | - | |
| 2252 | + | |
2249 | 2253 | | |
2250 | 2254 | | |
2251 | 2255 | | |
2252 | 2256 | | |
2253 | 2257 | | |
2254 | 2258 | | |
2255 | 2259 | | |
2256 | | - | |
| 2260 | + | |
2257 | 2261 | | |
2258 | 2262 | | |
2259 | 2263 | | |
2260 | | - | |
| 2264 | + | |
2261 | 2265 | | |
2262 | 2266 | | |
2263 | 2267 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
292 | 292 | | |
293 | 293 | | |
294 | 294 | | |
295 | | - | |
296 | | - | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
297 | 298 | | |
298 | 299 | | |
299 | 300 | | |
300 | 301 | | |
301 | 302 | | |
302 | 303 | | |
303 | 304 | | |
304 | | - | |
| 305 | + | |
| 306 | + | |
305 | 307 | | |
306 | 308 | | |
307 | 309 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
67 | | - | |
| 67 | + | |
68 | 68 | | |
69 | | - | |
70 | | - | |
71 | 69 | | |
72 | 70 | | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
77 | 78 | | |
78 | 79 | | |
79 | 80 | | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
84 | 84 | | |
| 85 | + | |
85 | 86 | | |
86 | 87 | | |
87 | 88 | | |
| |||
100 | 101 | | |
101 | 102 | | |
102 | 103 | | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | | - | |
111 | | - | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
112 | 114 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
7 | | - | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
8 | 11 | | |
9 | 12 | | |
10 | 13 | | |
11 | | - | |
| 14 | + | |
| 15 | + | |
12 | 16 | | |
13 | 17 | | |
14 | 18 | | |
15 | 19 | | |
16 | 20 | | |
17 | 21 | | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
24 | 28 | | |
0 commit comments