Commit Graph

7900 Commits

Author SHA1 Message Date
Dmitriy Novozhilov f34061acc1 [FIR] Fix resolution of plugin annotations annotated with meta annotations
There was a problem, that after founding of new annotation with meta
  annotation we did not come back to previous files, which may contain
  declarations with this new annotation
2022-06-07 14:12:19 +00:00
Dmitriy Novozhilov 8acb8aa043 [FIR] Introduce utility service for plugins for matching common predicate pattern 2022-06-07 14:12:17 +00:00
Dmitriy Novozhilov 7048cac770 [FIR] Move FirPredicateBasedProvider to :compiler:fir:tree module 2022-06-07 14:12:17 +00:00
Dmitriy Novozhilov b948eaef4b [FIR] Add ability to register session components from FIR plugins 2022-06-07 14:12:17 +00:00
Dmitriy Novozhilov 67589b1b09 [FIR] Don't report TAILREC_ON_VIRTUAL_MEMBER_ERROR on private declarations 2022-06-07 14:12:13 +00:00
Dmitriy Novozhilov 399aaeca9d [FIR] Implement proper copy utility for FirDeclarationStatus 2022-06-07 14:12:13 +00:00
Dmitriy Novozhilov c7e3da8709 [FIR] Extend DeclarationPredicate DSL 2022-06-07 14:12:13 +00:00
Dmitriy Novozhilov 3ee0d13119 [FIR] Add additional DSL methods to FirExtensionRegistrar 2022-06-07 14:12:12 +00:00
Pavel Mikhailovskii 65b2cee913 KT-23397 Optimize out field for property delegate when it's safe (JVM) 2022-06-07 10:46:01 +00:00
Denis.Zharkov 9ee0268197 Minor. Drop unused FirTowerDataMode.SPECIAL 2022-06-06 15:18:05 +03:00
Denis.Zharkov 41dd00c241 FIR: Use outer scope for annotation arguments resolution
^KT-41980 Fixed
2022-06-06 15:18:05 +03:00
Denis.Zharkov eae673233b FIR: Rework FirRegularTowerDataContexts
- Get rid of SPECIAL mode (just left REGULAR and class-related instead)
- Clear naming
- Restore contexts after lambda/callable reference are processed

The test has been failing before this change because after
callable reference is resolved, its tower data context has been left
erroneously in the SPECIAL-related entry
2022-06-06 09:39:29 +00:00
Denis.Zharkov 521d6c307c Minor. Make properties private in FirSpecialTowerDataContexts 2022-06-06 09:39:29 +00:00
Denis.Zharkov 6e6d576a44 Minor. Drop unused addReceiverLabelAlias 2022-06-06 09:39:28 +00:00
Roman Golyshev 166c771e1b [FIR IDE] Ensure resolve to CONTRACTS phase in ReturnTypeCalculator
If we want to analyse some function's call, we need to know about its
contracts, otherwise resolving the following code would be broken.
Computing return type of function is a prerequisite to using it in any
sensible way, so it's the best place to resolve it to CONTRACTS

KT-50733
2022-06-06 09:14:37 +00:00
Ilya Gorbunov e14ac2a062 Test kotlin-repeatable annotations on Android
(except for type-use annotations)
2022-06-04 10:39:37 +00:00
Mikhail Glukhikh 8baff4404d Partial rename of 'Experimentality' around K1 checkers 2022-06-02 15:36:56 +00:00
Nikolay Lunyak 8d2868da32 [FIR JS] Regenerate tests
вфцвфдцьв
2022-06-02 13:47:34 +00:00
Nikolay Lunyak c2cecb2818 [FIR JS] Add the dynamic type unsupported checker 2022-06-02 13:47:33 +00:00
Nikolay Lunyak 624728e5c7 [FIR JS] Support dynamic type in IR 2022-06-02 13:47:32 +00:00
Nikolay Lunyak 6b94ba5804 [FIR2IR] Add the missing argument 2022-06-02 13:47:32 +00:00
Nikolay Lunyak 858999c1a1 [FIR] Preserve information about prefix/postfix-ness
This information is needed for dynamics
2022-06-02 13:47:31 +00:00
Nikolay Lunyak 93fa5ee696 [FIR] Add the missing source kind 2022-06-02 13:47:31 +00:00
Nikolay Lunyak 0bc34a9e5a [FIR] Add some helper functions for dynamics 2022-06-02 13:47:31 +00:00
Nikolay Lunyak 4038c06b1e [FIR JS] Treat named arguments as positional for dynamics
Note: 174/1627 failing FirJsTest tests remaining
- 170 are multi-module tests
- 4 tests have to do with IR
2022-06-02 13:47:30 +00:00
Nikolay Lunyak ee58b52a3d [FIR] Fix false positive NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY 2022-06-02 13:47:29 +00:00
Nikolay Lunyak a474acd927 [FIR JS] Fix NOT_YET_SUPPORTED_IN_INLINE 2022-06-02 13:47:29 +00:00
Nikolay Lunyak ac1fb07102 [FIR JS] Add checkers.js 2022-06-02 13:47:28 +00:00
Nikolay Lunyak 1bf2f424a3 [FIR JS] Fix the plusAssign generation for dynamics 2022-06-02 13:47:28 +00:00
Nikolay Lunyak 9b87dcbeae [FIR JS] Move FirInvalidAndDangerousCharactersChecker to checkers.jvm
This is a JVM-specific checker.
2022-06-02 13:47:28 +00:00
Nikolay Lunyak 91fa7dec88 [FIR JS] Fix false positive NON_ABSTRACT_FUNCTION_WITH_NO_BODY 2022-06-02 13:47:27 +00:00
Mikhail Glukhikh eaa77b5af6 [FIR JS] Generate dynamic FIRs via DynamicScope 2022-06-02 13:47:26 +00:00
Nikolay Lunyak d7e8dc65f5 [FIR] Update smartcast tests 2022-06-02 13:47:25 +00:00
Nikolay Lunyak 611691ec70 [FIR JS] Support smart casts for dynamic 2022-06-02 13:47:25 +00:00
Nikolay Lunyak 9a9beef25b [FIR JS] Prepare the infrastructure for FIR JS tests 2022-06-02 13:47:24 +00:00
Nikolay Lunyak d2a8942353 [FIR] Extract FirJvmConstDeserializer
Attempts to separate JVM and non-JVM entities more clearly.
2022-06-02 13:47:23 +00:00
Nikolay Lunyak be9e97d044 [FIR] Introduce ConeDynamicType 2022-06-02 13:47:23 +00:00
Nikolay Lunyak e763197c3e [FIR] Fix the use of local ClassIds 2022-06-02 13:47:22 +00:00
Ilmir Usmanov f922684169 Minor. Add regression test
#KT-52561 Fixed
2022-06-02 13:26:24 +00:00
Nikolay Lunyak 98c7399a35 [FIR] Remove the redundant backing field check
This commit fixes a failing visibility check
(FirSymbolByPsiTestGenerated.testBackingField) for the backing field.

Merge-request: KT-MR-6389
Merged-by: Nikolay Lunyak <Nikolay.Lunyak@jetbrains.com>
2022-06-02 08:36:14 +00:00
Denis.Zharkov 461d91a10e FIR: Rework checking dispatch receivers applicability
Using `ownerLookupTag` might be wrong in case of private constuctors
 of inner classes: their owner is an Inner class, but expected
 dispach receiver is Outer
2022-06-01 16:02:31 +00:00
Denis.Zharkov 67e6687e89 FIR: Fix FP error on a call to constructor of a private inner class
Do not check dispatch receiver applicability when checking visibility
for containing class of a callee constructor
2022-06-01 16:02:30 +00:00
Denis.Zharkov c1904004c4 FIR: Fix case when smartcast receiver is used for call to private method
^KT-54432 Fixed
2022-06-01 16:02:30 +00:00
Denis.Zharkov ccc32b4e3b FIR: Refine visibility check for private methods defined in a class
- use-site should be contained within the class that owns callee symbol
- class-representative of dispatch receiver value
should be exactly the same as a container class of a callee (not its subtype)
2022-06-01 16:02:29 +00:00
Pavel Mikhailovskii 3b5179686e KT-52592 Fix NPE from KProperty.getExtensionDelegate on property delegated to another property; make $delegate methods private 2022-06-01 14:02:28 +00:00
Roman Golyshev e72f8f829a [FIR] More special names unification 2022-06-01 11:56:39 +00:00
Roman Golyshev 9fe0f055c5 [FIR] Get rid of ensureResolvedForCalls completely
The problem that this function has been solving (resolving declarations
to a somewhat adequate resolve phase) should be solved in another place;
moreover, right now it is the only scope that uses that function, which
is non-consistent
2022-06-01 00:23:11 +04:00
Roman Golyshev 01ce499bb2 [FIR] Unify some special names to make code more uniform 2022-06-01 00:11:17 +04:00
Victor Petukhov b472ccd358 [FE 1.0] Introduce deprecation of inferred type variable into a declared upper bound within a builder inference call 2022-05-31 14:13:29 +00:00
Victor Petukhov 848075192c [FE 1.0] Don't use BuilderInferenceSubstitutionConstraintPosition for declared upper bound constraint with no substituted upper bound
It leads to further infer type variable into those upper bounds which is forbidden

Substituted upper bounds is ok because specific substituted types came from constraints of other proper positions, or if specific substituted type is from declared upper bound too, then there should be another declared upper bound with no substitution

^KT-51464 Fixed
^KT-47986 Fixed
2022-05-31 14:13:28 +00:00