File tree 2 files changed +24
-0
lines changed
compiler/src/dotty/tools/dotc/parsing
2 files changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -1017,6 +1017,18 @@ object Parsers {
1017
1017
// def f = ...
1018
1018
lookahead.nextToken()
1019
1019
! lookahead.isAfterLineEnd
1020
+ } || {
1021
+ // Support for for pre-3.6 syntax where type is put on the next line
1022
+ // Examples:
1023
+ // given namedGiven:
1024
+ // X[T] with {}
1025
+ // given otherGiven:
1026
+ // X[T] = new X[T]{}
1027
+ lookahead.isIdent && {
1028
+ lookahead.nextToken()
1029
+ skipParams()
1030
+ lookahead.token == WITH || lookahead.token == EQUALS
1031
+ }
1020
1032
}
1021
1033
}
1022
1034
Original file line number Diff line number Diff line change
1
+
2
+ trait Foo [T ]:
3
+ def foo (v : T ): Unit
4
+
5
+ given myFooOfInt :
6
+ Foo [Int ] with
7
+ def foo (v : Int ): Unit = ???
8
+
9
+ given myFooOfLong :
10
+ Foo [Long ] = new Foo [Long ] {
11
+ def foo (v : Long ): Unit = ???
12
+ }
You can’t perform that action at this time.
0 commit comments