Stanislav Ruban
0549c6c75b
[FIR][checkers][Wasm] Expand type aliases in FirWasmExternalInheritanceChecker
...
#KT-66473 Fixed
2024-03-15 11:40:55 +00:00
Stanislav Ruban
41e8b45def
[tests][FIR][checkers][Wasm] Add test data for KT-66473
2024-03-15 11:40:55 +00:00
Stanislav Ruban
4dd0a25eca
[FIR][checkers][Wasm] Refine WRONG_JS_INTEROP_TYPE reporting
...
This commit improves four aspects of WRONG_JS_INTEROP_TYPE error reporting:
1) more precise source code ranges are preferred when possible (e.g. value parameter type instead of the entire value parameter, explicit return type instead of the entire declaration, etc.)
2) only relevant parameter and return types of function types are reported as wrong (to prevent confusion with the "function types are supported" part of the error message)
3) WRONG_JS_INTEROP_TYPE errors are now deduplicated in cases where more than one such error was previously reported because of compiler-generated declarations
4) error messages were slightly proofread and contain slightly more information now
2024-03-15 11:40:55 +00:00
Stanislav Ruban
b165ff675b
[tests][FIR][checkers][Wasm] Improve test coverage for WRONG_JS_INTEROP_TYPE
2024-03-15 11:40:55 +00:00
Kirill Rakhman
8443daf78d
[FIR] Remove FirNamedArgumentExpressions during completion
...
They are mostly necessary for argument mapping during resolution.
To support a couple checkers, we transform named args for varargs
into "fake" spread expressions.
Other than that, named arguments aren't needed for anything and often
lead to bugs where we forget to unwrap them for something, so it's
better to get rid of them.
#KT-66124
2024-03-13 17:05:48 +00:00
Igor Yakovlev
324d079111
[WasmJs] Prohibit external classes to be a storage of an associated objects
...
Fix #KT-65355
2024-03-09 10:40:46 +01:00
Artem Kobzar
4f4c98ec73
[K/JS] Allow parameter properties inside external declarations ^KT-65965 Fixed
2024-02-29 09:46:59 +00:00
Artem Kobzar
2eb1e65bbf
[K/Wasm] Allow to export unsigned numbers
2023-12-08 09:06:19 +00:00
Svyatoslav Kuzmich
6b6353f3b9
[Wasm] Add external file checker to K2
...
#KT-56849
2023-11-27 16:55:04 +00:00
Svyatoslav Kuzmich
7687b86654
[Wasm] Add JsModule checker to K2
...
#KT-56849
2023-11-27 16:55:04 +00:00
Svyatoslav Kuzmich
cf3b293072
[Wasm] Move external RTT checkers to web.common and reuse in Wasm
...
#KT-56849
2023-11-23 10:42:56 +00:00
Svyatoslav Kuzmich
d219d5380b
[Wasm] Move FirJsQualifierChecker to web.common and reuse in Wasm
...
#KT-56849
2023-11-23 10:42:56 +00:00
Svyatoslav Kuzmich
640bf67480
[Wasm] Move FirJsExportAnnotationChecker to web.common and reuse in Wasm
...
#KT-56849
2023-11-23 10:42:56 +00:00
Svyatoslav Kuzmich
43345bbc34
[Wasm] Port js(code) calls checker to K2 (KT-56849)
...
^KT-62725 Fixed
^KT-62726 Fixed
^KT-62727 Fixed
2023-11-20 18:10:55 +00:00
Svyatoslav Kuzmich
7092541e34
[Wasm] K2 js(code) constant checker (KT-56849)
...
Reuse K/JS FirJsCodeConstantArgumentChecker by moving it to web.common
2023-11-20 18:10:54 +00:00
Svyatoslav Kuzmich
31560217f8
[Wasm] Port @JsFun checker to K2 (KT-56849)
...
^KT-62724 Fixed
2023-11-20 14:39:24 +00:00
Svyatoslav Kuzmich
62ebb9932f
[Wasm] Port external declaration checker to K2 (KT-56849)
...
Share common code with FirJsExternalChecker using
FirWebCommonExternalChecker
2023-11-16 14:27:49 +00:00
Svyatoslav Kuzmich
15d3bf5e25
[Wasm] Port JS interop type checker to K2 (KT-56849)
2023-10-31 12:34:32 +00:00
Svyatoslav Kuzmich
a8e5655ffe
[Wasm] K2 port of definedExternally diagnostic (KT-56849)
2023-10-26 12:40:17 +00:00
Svyatoslav Kuzmich
aeeb5d5c48
[Wasm] Disallow dynamic type in K2 (KT-56849)
2023-10-24 10:54:58 +00:00
Svyatoslav Kuzmich
2694326ef8
[Wasm] Add EXTERNAL_TYPE_EXTENDS_NON_EXTERNAL_TYPE K2 diagnostic
...
Prohibit extending non-external types with external types (same as K1)
Issue KT-56849
2023-10-23 17:31:04 +00:00
Svyatoslav Kuzmich
a10042f909
[Wasm] Add K2 checkers.wasm module (KT-56849)
...
Add first K2 checker ExternalInheritanceChecker to test the infra
2023-10-12 13:26:58 +00:00
Svyatoslav Kuzmich
0da9cf8159
[Wasm] Add K2 diagnostic tests (KT-56849)
2023-10-12 13:26:58 +00:00
Svyatoslav Kuzmich
7ba8f7cce2
Revert "[Wasm] Deprecate @JsFun with warning"
...
Reason: Design of js(code) replacement is still in flux.
It would be better to delay deprecation until we converge
to proper solution.
This reverts commit 3566d918d2 .
2023-04-21 15:03:20 +00:00
Svyatoslav Kuzmich
3c0048bfd8
[Wasm] Add typealias diagnostic test cases
2023-03-16 09:12:08 +00:00
Svyatoslav Kuzmich
1e91fe155b
[Wasm] Restrict types allowed in JS interop
...
- Prohibit Any, Array and other unsupported non-external types in JS
interop context
- Add K1 diagnostic
- Update BE testdata
^KT-57136 Fixed
2023-03-16 09:12:07 +00:00
Svyatoslav Kuzmich
c9c0b9fd10
[Wasm] Add more jsCode diagnostic tests with String properties
2023-03-03 19:39:11 +00:00
Svyatoslav Kuzmich
3566d918d2
[Wasm] Deprecate @JsFun with warning
...
kotlin.js.js("code") should be used instead
2023-03-03 19:39:11 +00:00
Svyatoslav Kuzmich
7a04999e4a
[Wasm] Add K1 compiler diagnostics for js(code) calls (KT-56955)
...
This function is handled as intrinsics and supported in limited context
2023-03-03 19:39:10 +00:00
Svyatoslav Kuzmich
4be2f53b47
[Wasm] Add @JsFun diagnostics (KT-56944)
...
JsFun target should be top-level external function
2023-02-24 11:35:16 +00:00
Svyatoslav Kuzmich
f79607d32d
[Wasm] Add @JsExport diagnostics test
...
@JsExport is only allowed on top-level functions in K/Wasm
Restrictions for nested function are handled by reusing K/JS diagnostics
Restrictions for classes and properties are handled by specifying
annotation target in stdlib
2023-02-24 11:35:16 +00:00
Svyatoslav Kuzmich
b4fcfd6719
[Wasm] Add external declaration diagnostics (KT-56940)
...
Prohibit:
- external enum class
- external tailrec fun
- external suspend fun
- external lateinit var
Add tests for other external diagnostics inherited from K/JS
2023-02-24 11:35:15 +00:00
Svyatoslav Kuzmich
83ba1ac0f7
[Wasm] Diagnostic test: dynamic type is unsupported
...
Validates the fix for KT-56711
2023-02-24 11:35:15 +00:00
Svyatoslav Kuzmich
c9e71985da
[Wasm] Stop dumping declarations in diagnostic tests
...
These tests are meant to check diagnostics, but
having to update .txt dumps adds some friction to development process.
2023-02-24 11:35:14 +00:00
Svyatoslav Kuzmich
321a476898
[Wasm] Add external inheritance checker.
...
Prohibit non-external types to extend external types.
This type of inheritance is not supported in Wasm backend.
2023-02-24 01:05:23 +01:00