Youssef Shoaib [MOD]
06/10/2022, 3:00 PMshikasd
06/10/2022, 3:09 PMYoussef Shoaib [MOD]
06/10/2022, 3:12 PMdmitriy.novozhilov
06/10/2022, 3:14 PMYoussef Shoaib [MOD]
06/10/2022, 3:32 PMdmitriy.novozhilov
06/10/2022, 3:32 PMOooooooooo, to the FIR API in general or to the testing API specifically?To the FIR API Testing API is quite stable
shikasd
06/10/2022, 4:04 PMdmitriy.novozhilov
06/10/2022, 4:11 PMZac Sweers
06/10/2022, 6:38 PMJavier
06/10/2022, 7:07 PMserializer()
which can be used by the user, and the user must be able to use it directly, having it as error/red, then running a Gradle task which generates it, and then the error is gone is not a very good experience
It is better to generate it at same time the user finishes of writing @Serializable
in the IDE so the user is able to use it directly.shikasd
06/10/2022, 10:19 PMwhy would a plugin choose FIR vs IR (either/or)?
@Zac Sweers You won't, really Instead, it is a choice between PSI/descriptor based apis and FIR for extension, with better opportunities for extension in the latter (once it is stable)
Zac Sweers
06/10/2022, 10:23 PMshikasd
06/10/2022, 10:24 PMJavier
06/11/2022, 12:10 AMfoo
(with Fir you can't generate function bodies).
The return type of that function is a String
.
Then the user can write
val someString: String = foo()
That compiles in the frontend, the user see no errors, but IR backend will fail because… what is going to return it? It has to return something of type String
but which is this value if it can't be provided in Fir? You have to fix that in backend, if not it will fail.
So it is not a FIR vs IR. Depending on the use case you need the first one, the second one or both.
In compose there are IDE errors related to using a composable outside a composable context, that job can be done by FIR. Not sure how it is done right now tbh.shikasd
06/11/2022, 1:37 PMYoussef Shoaib [MOD]
06/11/2022, 1:57 PMshikasd
06/11/2022, 2:01 PMYoussef Shoaib [MOD]
06/11/2022, 2:03 PMshikasd
06/11/2022, 2:04 PMJavier
06/15/2022, 7:11 PMdmitriy.novozhilov
06/15/2022, 8:01 PM1.7.20-dev-2106
1.7.20-dev-2127
is used for testing of gradle plugin and I didn't fully checked it