Commit Graph

87069 Commits

Author SHA1 Message Date
Victor Petukhov c8dea3db35 Add test for using underscored type in different positions 2021-11-01 13:03:40 +03:00
Victor Petukhov d1acb09add Report unsupported on using underscored type argument if the corresponding feature is disabled 2021-11-01 13:03:40 +03:00
Victor Petukhov 8a99aa4b42 [FIR] Don't build placeholder projection for types 2021-11-01 13:03:40 +03:00
Victor Petukhov b29aeaa596 [FIR] Implement annotation checker for underscored type arguments 2021-11-01 13:03:37 +03:00
Victor Petukhov 697ef03d57 [FIR] Make FirPlaceholderProjection having source element 2021-11-01 13:03:31 +03:00
Victor Petukhov 5047751b85 [FIR] Support underscored type arguments in the light tree 2021-11-01 12:26:31 +03:00
Victor Petukhov c9fbbe74ae [FIR] Use common isPlaceholder check for type arguments in RawFirBuilder 2021-11-01 12:25:55 +03:00
Victor Petukhov 5508d40371 Put using underscored type arguments under a feature 2021-11-01 12:25:45 +03:00
Victor Petukhov 1073adbbf0 Report unsupported errors on annotations on underscored type arguments 2021-11-01 12:25:14 +03:00
Victor Petukhov 248c9550cd Support type annotations resolution on an underscored type argument 2021-11-01 12:25:10 +03:00
Victor Petukhov b69fb6779f Basic support of partially specified type arguments though a new underscore operator for type arguments
^KT-13394
2021-11-01 12:25:07 +03:00
Margarita Bobova e057831f7f Add changelog for 1.5.31 2021-11-01 10:25:18 +03:00
Dmitriy Novozhilov 275a8a7a36 [FE 1.0] Fix message for UNINITIALIZED_ENUM_COMPANION_WARNING\
^KT-49110
2021-10-30 13:43:12 +03:00
Dmitriy Novozhilov 2956b8b307 [FE 1.0] Fix commit message of UNNECESSARY_SAFE_CALL warning
^KT-46860
2021-10-30 13:41:24 +03:00
Dmitriy Novozhilov b9189f3099 Advance bootstrap to 1.6.20-dev-4603 2021-10-30 13:35:20 +03:00
Artem Kobzar 979e9f94ef feat(Escaped Identifiers): add ability to use any symbol wrapped in back ticks. 2021-10-29 17:55:59 +00:00
zhelenskiy ea10b4a781 Synchronizing by values and primitives is forbidden
Signed-off-by: zhelenskiy <zhelenskiy2000@yandex.ru>
2021-10-29 18:50:30 +02:00
Dmitriy Novozhilov 877b53201b [FIR] Prohibit access to members of companion of enum from enum entry initializer
^KT-49110
2021-10-29 18:45:23 +03:00
Dmitriy Novozhilov 58889a2b5c [FE 1.0] Prohibit access to members of companion of enum from enum entry initializer
^KT-49461 Fixed
^KT-49110
2021-10-29 18:45:19 +03:00
Dmitry Petrov 4f0c3c3c0d JVM_IR never generate setter synthetic accessor for 'val' field
KT-49316
2021-10-29 18:38:11 +03:00
Yahor Berdnikau d7ae7ca911 Ensure all test tasks is finalized by 'cleanTestKitCacheTask' on CI.
^KT-45745 In Progress
2021-10-29 17:34:00 +02:00
Yahor Berdnikau c25d243111 Add 'kgpOtherTests' task.
This will run tests for all support plugins, such kapt, allopen, etc...

^KT-45745 In Progress
2021-10-29 17:34:00 +02:00
Artem Kobzar 102072a229 fix(KT-40236): compute JsName from overridden symbols. 2021-10-29 14:09:31 +00:00
Roman Golyshev 29bb8cea8f [FIR] Add missing ensureResolved to FirClassSubstitutionScope
`createNewTypeParametersAndSubstitutor` call might need resolved types
to be able to work correctly with the generics' type bounds
2021-10-29 15:59:35 +03:00
Georgy Bronnikov 534beb8553 IR: Test for toSkip(this) in T.resolveFakeOverride()
^KT-49371 Fixed
2021-10-29 12:13:57 +03:00
David Saff c67a1ee2e5 Add a dry-run arg to show what _would_ be run, without actually running (#4630) 2021-10-29 11:38:56 +07:00
Sergey Bogolepov d072a3ca59 [K/N] Fix fileCheckTest temporary files dir 2021-10-29 04:07:31 +00:00
Sergey Bogolepov 95bd5fcc4b [K/N] Update filecheck tests for different ABIs 2021-10-29 04:07:31 +00:00
Sergey Bogolepov 49fdeb73ee [K/N] Make default LLVM attributes target-specific
Unfortunately, the world of native development is diverse,
and we can't generate one bitcode that is correct on every platform.
What is important to us is that AAPCS64 and Windows x64 extend
<32 bit arguments on callee side, so we can't use zext/sext args for them.
2021-10-29 04:07:30 +00:00
Sergey Bogolepov fdd020eab6 [K/N] Tests for function attributes in bitcode generator
Besides, well, tests themselves, this commit extends FileCheck infra to
make it possible to test bitcode for direct and reverse interop.
2021-10-29 04:07:30 +00:00
Sergey Bogolepov 851f4d86d9 [K/N] Include cstubs into -Xsave-llvm-ir
This way we are able to FileCheck interop bridges.
2021-10-29 04:07:29 +00:00
Sergey Bogolepov 71fb8f90d4 [K/N] Drop UnsignedValuePassing
We don't need it anymore since codegen now handles unsigned types.
2021-10-29 04:07:29 +00:00
Sergey Bogolepov e37d669dc3 [K/N] Opt-in for meaningful names for in "objc2kotlin" bridges
It is hard to run FileCheck tests over generated ObjC bridges because
they share the same name ("objc2kotlin"). To overcome this hurdle,
this commit introduces a compiler flag that appends function name to
"objc2_kotlin". This change might be useful for end-users, for example,
it makes stacktraces more readable. But it will require additional
testing and polishing which is out of the scope of this change.
2021-10-29 04:07:28 +00:00
Sergey Bogolepov cf3296c94c [K/N] LLVM attributes at call-sites
(I messed up commit history and all changes had to be squashed. Sorry.)

The commit is originated from KT-48591. The root of the problem is
following: we unconditionally added sext to all value parameters of
imported functions. To fix this problem we have to pass zext/sext
depending on the parameter type.

To make things right and future-proof, we decided to refactor
a significant part of IR to bitcode translator: when generating callsite
compiler "looks" at callee and applies its attributes to the callsite.
There are several sources of attributes:
1. External LLVM functions from runtime: just copy-paste attributes.
2. Direct IR calls: infer attributes from the declaration.
3. Virtual calls: use available declaration, so almost the same as prev.
4. External declarations functions: manual labor!

Specifying attributes at all callsites (including Kotlin->Kotlin) makes
things uniform and a little easier to implement.
All in all, the delta is significant, but comprehensible. In some places
I managed to make it seamless by changing declaration type and its
usages types simultaneously. In others (ObjCExport), unfortunately,
things got a little messy.

#KT-48722 fixed
2021-10-29 04:07:28 +00:00
Svyatoslav Kuzmich a13329fc65 [JS IR] Regenerate and mute test 2021-10-28 22:39:09 +03:00
Artem Kobzar 790e8843f9 fix(JS_IR): add outer classes resolving inside the function inliner. 2021-10-28 17:34:58 +00:00
Artem Kobzar 7f7aa9a921 feat(Inner Classes): generate typescript type definitions and JS for Inner Classes. 2021-10-28 17:33:41 +00:00
Ivan Kochurkin 744191099c [FIR] Fix false positive "return required" for if/else with inlined return in branch
^KT-49289 Fixed
2021-10-28 20:02:25 +03:00
Svyatoslav Kuzmich 5b10396f48 [stdlib] Test that modification of the array returned by toCharArray() doesn't affect the original string 2021-10-28 15:49:00 +00:00
Svyatoslav Kuzmich f7d3cb269f [Wasm] Support passing lambdas from Kotlin to JS 2021-10-28 18:47:38 +03:00
Svyatoslav Kuzmich 766377a041 [Wasm] Remove WasmForeign annotation
No longer needed since external interfaces are supported
2021-10-28 18:47:38 +03:00
Roman Artemev 23ad0e7c63 [TEST] Add test checking cast to DNN type
muted temporary due to required support in backends
2021-10-28 18:03:14 +03:00
Roman Artemev 5b19c41373 unmute jvm test 2021-10-28 18:03:13 +03:00
Roman Artemev 4424512bd6 [TEST] Add irText test for DefinitelyNotNull type 2021-10-28 18:03:12 +03:00
Roman Artemev d809e260cb [KLIB] Support DefinitelyNotNull type in KLIB
- add proto message
 - serialize/deserialize
2021-10-28 18:03:11 +03:00
Roman Artemev 29728efbf7 [PSI2IR] Support DefinitelyNotNull type translation in Psi2Ir 2021-10-28 18:03:11 +03:00
Roman Artemev 101afded69 [IR] Introduce IrDefinitelyNotNullType in IR
- support it in render
 - support in IR copy
 - KEEP-268
2021-10-28 18:03:09 +03:00
Tianyu Geng b48870c11f FIR checker: pass expected array type in ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION
This is needed by the IDE quickfix to generate the correct `arrayOf` (or
`intArrayOf`, etc`) wrapper call.
2021-10-28 16:36:02 +03:00
Mikhail Glukhikh 9f062df258 FE: fix factory and message for EXPOSED_FROM_PRIVATE_IN_FILE
#KT-49442 Fixed
2021-10-28 16:24:43 +03:00
Ivan Kylchik 1a52512578 [JS TESTS] Restore AbstractIrCodegenWasmJsInteropJsTest in generator 2021-10-28 15:18:30 +03:00