@@ -24,15 +24,20 @@ def foo[T, U][V](x: T): U = ???
24
24
* ParamClauses ::= ParamClause {ParamClause}
25
25
* ParamClause ::= TermParamClause | TypeParamClause | UsingParamClause
26
26
* TermParamClause ::= [nl] ‘(’ [TermParams] ‘)’ //note: allows ()
27
- * TypeParamClause ::= [nl] ‘[’ TypeParams ‘]’
27
+ * TypeParamClause ::= [nl] ‘[’ TypeParams ‘]’
28
28
* UsingParamClause ::= [nl] ‘(’ ‘using’ TermParams ‘)’
29
29
*
30
30
* (slightly simpler but should be equivalent to changes made in Parser.scla)
31
31
*/
32
32
// same for classes, je suis un peu confus par la syntaxe ci-dessous, notament Annotation et AccessModifiers, ils sont pas là en scala 3, non ?
33
33
// https://www.scala-lang.org/files/archive/spec/2.13/05-classes-and-objects.html#class-definitions
34
+ //
35
+ // change text to explain application notably when only passed one clause of type params when multiple type clauses expected
34
36
35
- // impl param de classe, déjà Parser
37
+ // impl param de classe, déjà Parser: Done
38
+
39
+
40
+ // add function call to chainedParams
36
41
37
42
38
43
// Que faire de TypeDcl ::= id [TypeParamClause] {FunParamClause} TypeBounds [‘=’ Type] //TODO: change to {ParamClauses} ?
@@ -42,7 +47,9 @@ def foo[T, U][V](x: T): U = ???
42
47
function definition Done
43
48
function application Already works
44
49
class definition In Progress
45
- class instantiation Might already work
50
+ primary constr In Progress
51
+ auxiliary constr In Progress
52
+ class instantiation Might already work // see new
46
53
given definition Todo
47
54
given application(?) Doesn't exist ? or add multiple params to usings ?
48
55
type declarations To be determined
@@ -63,4 +70,27 @@ def foo[T, U][V](x: T): U = ???
63
70
// potentiellement cette feature en experimental
64
71
65
72
// eta expension:
66
- val f = foo // should work and doesn't preserve type params yet
73
+ val f = foo // should work and doesn't preserve type params yet
74
+
75
+
76
+
77
+
78
+
79
+ // new:
80
+ // mettre de coté la partie sur les classes
81
+ // fork le repo de la doc est faire changements appropriés
82
+ // check overloading resolution
83
+ // Applications.scala resolveMapped
84
+ // methType
85
+ // ProtoTypes.scala
86
+
87
+ // check ne passer aucun arguments à une fonction
88
+ // voir fichier overload dans pos/interweaving_
89
+ // voir methType
90
+ // check occurances de PolyType et PolyProto pour être sûr que ça fonctionne bien avec les [T][U]
91
+ // testCompilation
92
+
93
+
94
+
95
+ // should we allow fun[L <: List[T]][T] as alias for something like fun[F[_] <: List[]][T][L <: F[T]]
96
+ // I'm not sure it's useful
0 commit comments