Marc Knaup
10/25/2020, 12:55 PMraulraja
10/25/2020, 1:01 PMMarc Knaup
10/25/2020, 1:02 PMMarc Knaup
10/25/2020, 1:02 PMlouiscad
10/25/2020, 1:02 PMMarc Knaup
10/25/2020, 1:03 PMraulraja
10/25/2020, 1:06 PMMarc Knaup
10/25/2020, 1:08 PMraulraja
10/25/2020, 1:10 PMraulraja
10/25/2020, 1:11 PMMarc Knaup
10/25/2020, 1:11 PMimplicit (a, b, c) { … }
Marc Knaup
10/25/2020, 1:12 PMraulraja
10/25/2020, 1:12 PMMarc Knaup
10/25/2020, 1:14 PMraulraja
10/25/2020, 1:14 PMMarc Knaup
10/25/2020, 1:14 PMMarc Knaup
10/25/2020, 1:14 PMa
, b
and c
, each with their respective typeraulraja
10/25/2020, 1:14 PMraulraja
10/25/2020, 1:15 PMMarc Knaup
10/25/2020, 1:16 PMa
, b
and c
are implicitly in scope. It doesn’t need an intersection type because their symbols are not accessible anyway.raulraja
10/25/2020, 1:17 PMMarc Knaup
10/25/2020, 1:18 PMfun foo(@Implicit a: A, @Implicit b: B, @Implicit c: C)
implicit(a, b, c) {
foo()
}
Compiler:
// implicit(a, b, c) {
context[A::class] = a
context[B::class] = b
context[C::class] = c
// foo()
foo(context[A::class], context[B::class], context[C::class])
// }
delete context[A::class]
delete context[B::class]
delete context[C::class]
raulraja
10/25/2020, 1:18 PMraulraja
10/25/2020, 1:19 PMMarc Knaup
10/25/2020, 1:20 PMraulraja
10/25/2020, 1:20 PMMarc Knaup
10/25/2020, 1:20 PMMarc Knaup
10/25/2020, 1:21 PMraulraja
10/25/2020, 1:21 PMMarc Knaup
10/25/2020, 1:25 PMraulraja
10/25/2020, 1:26 PMraulraja
10/25/2020, 1:26 PMMarc Knaup
10/25/2020, 1:27 PMraulraja
10/25/2020, 1:33 PMraulraja
10/25/2020, 1:38 PMMarc Knaup
10/25/2020, 3:43 PMMarc Knaup
10/25/2020, 3:44 PMMarc Knaup
10/25/2020, 3:44 PMMarc Knaup
10/25/2020, 3:44 PMraulraja
10/25/2020, 5:34 PMMarc Knaup
10/25/2020, 5:37 PMraulraja
10/25/2020, 5:37 PMraulraja
10/25/2020, 5:40 PMraulraja
10/25/2020, 5:41 PMMarc Knaup
10/25/2020, 5:42 PMimplict(a, b, c) { … }
example you could still use given<A>()
, can’t you? No need for a name.raulraja
10/25/2020, 5:42 PMMarc Knaup
10/25/2020, 5:42 PMMarc Knaup
10/25/2020, 5:43 PM@Implicit a: A
is basically a local val a = given<A>()
Marc Knaup
10/25/2020, 5:43 PMraulraja
10/25/2020, 5:43 PMraulraja
10/25/2020, 5:44 PMraulraja
10/25/2020, 5:46 PMMarc Knaup
10/25/2020, 5:48 PMraulraja
10/25/2020, 5:56 PMMarc Knaup
10/25/2020, 5:59 PMHanno
10/26/2020, 6:13 PMMarc Knaup
10/26/2020, 6:16 PMwith
already 🤔Hanno
10/26/2020, 6:19 PMHanno
10/26/2020, 6:28 PMMarc Knaup
10/26/2020, 6:28 PMHanno
10/26/2020, 6:31 PMHanno
10/26/2020, 6:33 PMHanno
10/26/2020, 6:35 PMHanno
10/26/2020, 6:38 PM