Commit Graph

10568 Commits

Author SHA1 Message Date
Mikhael Bogdanov 0997207c7c Apply -Xjvm-default for specific modules only 2021-12-03 06:39:38 +01:00
Anastasiya Shadrina 2d088196ce [FE] Fill DESCRIPTOR_TO_CONTEXT_RECEIVER_MAP only with CR enabled 2021-12-02 20:25:06 +03:00
Anastasiya Shadrina 2b30c1eb5d [FE] Do not change original semantics in LabelResolver 2021-12-02 20:25:00 +03:00
Anastasiya Shadrina bd4e51f304 [FE, PSI2IR] Pass context receivers when calling typealias constructor 2021-12-02 20:24:50 +03:00
Anastasiya Shadrina 3900c2a604 [FE] Store receiver labels differently 2021-12-02 20:24:46 +03:00
Anastasiya Shadrina ac27fda965 [FE] Report ambiguity when label can refer to multiple receivers 2021-12-02 20:24:44 +03:00
Anastasiya Shadrina 7ab9b68ad5 [FE] Move type-related checks to TypeResolver 2021-12-02 20:24:41 +03:00
Anastasiya Shadrina 7494c0896b [FE] Minor: refactor substituteFunctionLiteralDescriptor() 2021-12-02 20:24:40 +03:00
Anastasiya Shadrina 083e718efd [FE] Protect resolution from context receivers calculations 2021-12-02 20:24:29 +03:00
Anastasiya Shadrina b44da21f59 [FE] Handle context receivers in NewAbstractResolvedCall 2021-12-02 20:24:23 +03:00
Anastasiya Shadrina 1357f28be6 [FE] Create separate class for context receiver value 2021-12-02 20:24:21 +03:00
Anastasiya Shadrina b3591e77be [FE] Prohibit explicit @ContextFunctionTypeParams usage 2021-12-02 20:24:20 +03:00
Anastasiya Shadrina 910660a083 [FE] Add language feature for context receivers 2021-12-02 20:24:16 +03:00
Anastasiya Shadrina 7fce2691e2 [FE] Allow lambda argument cast to contextual functional type 2021-12-02 20:24:15 +03:00
Anastasiya Shadrina d8faa9686d [Tests] Test samples from KEEP 2021-12-02 20:24:14 +03:00
Anastasiya Shadrina 16b976f0e0 [FE] Support functional literals with context receivers 2021-12-02 20:24:11 +03:00
Anastasiya Shadrina e3f987459c [PSI, FE] Support functional types 2021-12-02 20:24:11 +03:00
Anastasiya Shadrina e53cee77a3 [FE] Support multiple candidates for extension receiver 2021-12-02 20:24:10 +03:00
Anastasiya Shadrina af78ec7371 [PSI, FE] Review fixes 2021-12-02 20:24:04 +03:00
Anastasiya Shadrina 7fd5034cd6 [FE] Minor: fix typo 2021-12-02 20:24:01 +03:00
Anastasiya Shadrina 814777ba8c [FE] Report ambiguity in all possible cases 2021-12-02 20:23:58 +03:00
Anastasiya Shadrina 37495bcba0 [FE] Change resolution scheme 2021-12-02 20:23:57 +03:00
Anastasiya Shadrina 1a0aab4a44 [FE] Inline classes cannot have context receivers 2021-12-02 20:23:52 +03:00
Anastasiya Shadrina d704862582 [FE] Prohibit property initializers with context receivers 2021-12-02 20:23:51 +03:00
Anastasiya Shadrina 766e6bca75 [PSI2IR] Generate value arguments for context receivers in getter/setter 2021-12-02 20:23:49 +03:00
Anastasiya Shadrina 837f3b98fa [FE] Allow to infer generic property type from a context receiver type 2021-12-02 20:23:46 +03:00
Anastasiya Shadrina 1bcaeabd84 [PSI, FE, PSI2IR] Use labels for referencing specific receiver 2021-12-02 20:23:40 +03:00
Anastasiya Shadrina aaabf5e1ca [PSI2IR] Support context receivers on classes 2021-12-02 20:23:38 +03:00
Anastasiya Shadrina f4ddf66ac4 [FE] Support context receivers on classes 2021-12-02 20:23:25 +03:00
Anastasiya Shadrina c34fe8d547 [FE] Implement temporary resolution algorithm 2021-12-02 20:23:24 +03:00
Anastasiya Shadrina d923c95671 [FE] Add context receivers to scope 2021-12-02 20:23:22 +03:00
Anastasiya Shadrina a39fbd3822 [FE] Add getContextReceivers to CallableDescriptor interface 2021-12-02 20:23:17 +03:00
Anastasiya Shadrina 7de8380ddf [FE] Add context receivers getter to KtCallableDeclaration interface 2021-12-02 20:23:16 +03:00
Alexander Udalov be6409f0af Fix property lookup in data class component generation
#KT-49812 Fixed
 #KT-49936 Fixed
2021-12-02 01:43:39 +01:00
Kristoffer Andersen 39fee12f32 [IR/FE] BindingContext: Change USED_AS_EXPRESSION to Basic Slice
This commit changes the slice implementation used for
`USED_AS_EXPRESSION`.

Here is the problem as identified and mitigated by this commit:

Slices are key-value maps. They are not total over the domain of keys,
so "looking up" a key not in the slice is a valid operation, yielding
`null`.

A binding context is a collection of slices.

Binding contexts can be stacked as composite binding contexts to
e.g. facilitate scoped analyses. Looking up a key proceeds down the
stack, yielding the first non-null value, or `null` if no slice in the
stack of binding contexts contain that key.

A slice made by `createSimpleSetSlice` models a "set" of keys that can
be enlarged by inclusion: adding `(k, true)` to the slice indicates
`k` belongs to the set. `(k, false)` indicates non-membership.

However, looking up a key _not in_ the slice yields _false_, rather
than null.

Hence, simple set slices do not compose in composite binding traces.

This was encountered porting the expression evaluator to the IR
backend. PSI2IR uses `USED_AS_EXPRESSION` to generate expression body
functions properly. The frontend analysis of the fragment is layered
ontop of the binding context from the editor's analysis of the
underlying project being debugged, which contains speficially the
analysis results of inline functions called from the fragment.
2021-12-01 00:52:46 +01:00
Mikhail Glukhikh 7fe08d5a38 FE: fix some error messages (must have only -> must only have)
#KT-49609 Fixed
2021-11-28 11:32:10 +03:00
Mikhail Glukhikh c15c7f7dc8 FE: fix visibility check in LazyImportScope #KT-23727 Fixed 2021-11-28 11:32:07 +03:00
Mikhail Glukhikh 4550999288 FE: use proper version in version requirement error message
#KT-48690 Fixed
2021-11-28 11:31:51 +03:00
Mikhail Glukhikh 2f1d415e4d FE: report DECLARATION_CANT_BE_INLINED at 'inline' modifier
#KT-44022 Fixed
2021-11-28 11:31:51 +03:00
Vladimir Dolzhenko 0495ba2495 avoid unnecessary collection copying 2021-11-25 02:22:44 +03:00
Vladimir Dolzhenko 42837415f0 Use nameFilter if all descriptors have not calculated
#KT-49821 Fixed
2021-11-25 02:22:40 +03:00
Victor Petukhov d48557ed53 [FE 1.0] Fix containing KtFile check in NewResolutionOldInference.kt 2021-11-22 17:01:49 +03:00
Victor Petukhov 31668ed40d [FE 1.0] Fix containing KtFile check in PSICallResolver.kt 2021-11-22 14:00:13 +03:00
Victor Petukhov 42805db989 [FE 1.0] Take into account import aliases during hidden member resolution 2021-11-22 10:43:43 +03:00
Alexander Udalov 59c5dddc88 Remove unused PrecomputedSuppressCache 2021-11-18 23:17:34 +01:00
Dmitriy Novozhilov da02d25278 [FE 1.0] Implement deprecation warning for private constructors of sealed classes
^KT-44866
^KT-49729 Fixed
2021-11-18 13:54:05 +03:00
Dmitriy Novozhilov 93378b1a04 [FE 1.0] Resolve private constructors of sealed classes same as for regular classes
^KT-44866
^KT-49729
2021-11-18 13:54:05 +03:00
Dmitriy Novozhilov 62b774b2e3 [FE 1.0] Properly report INTEGER_OPERATOR_RESOLVE_WILL_CHANGE
^KT-38895
2021-11-16 13:29:12 +03:00
Igor Yakovlev ee7f4c7278 [WASM] Implementation typeOf support 2021-11-15 19:53:48 +03:00
zhelenskiy c1dc1f7e33 Diagnostics renamed
Signed-off-by: zhelenskiy <zhelenskiy2000@yandex.ru>
2021-11-13 12:38:45 +01:00