Commit Graph

3281 Commits

Author SHA1 Message Date
Mikhail Glukhikh e2678149cb FirClassSubstitutionScope: fix overridden symbols traversing 2020-07-15 13:36:29 +03:00
Mikhail Glukhikh 10a1d5c03b FirTypeIntersectionScope: add intersection overrides caching 2020-07-15 13:36:28 +03:00
Mikhail Glukhikh c1d223dbde FirTypeIntersectionScope: enhance support of inherited default parameters 2020-07-15 13:36:28 +03:00
Mikhail Glukhikh c46fac3464 FirTypeIntersectionScope: support inherited default parameters 2020-07-15 13:36:28 +03:00
Mikhail Glukhikh 7a2ea49399 FirTypeIntersectionScope: introduce "intersection" fake overrides 2020-07-15 13:36:28 +03:00
Mikhail Glukhikh 5a422b5ef6 FirTypeIntersectionScope: optimize/cleanup processOverriddenFunctions 2020-07-15 13:36:28 +03:00
Mikhail Glukhikh 1bbed6c4ed [FIR2IR] Use FIR-specific methods to search for overridden functions 2020-07-15 13:36:28 +03:00
Mikhail Glukhikh 59cc9d4bc6 [FIR] Introduce FirTypeScope.processOverriddenFunctionWithDepth 2020-07-15 13:36:28 +03:00
Mikhail Glukhikh 8a29021aad [FIR2IR] Make data class synthetic members public API 2020-07-15 13:36:27 +03:00
Mikhail Glukhikh 521901f09a [FIR2IR] Cache type parameters for existing IR classes properly
Before this commit, we just recreated class header
for external IR class found by signature. However, it's not required,
because super-types, type parameters, etc. are already initialized.
So now we just read type parameters and build cache for them.
2020-07-15 13:36:27 +03:00
vladislavf7@gmail.com d96772444e [FIR] Fix redundant visibility checker 2020-07-15 09:42:30 +03:00
vladislavf7@gmail.com fb5fb44993 [FIR] Add RedundantModalityModifierChecker 2020-07-14 19:56:41 +03:00
Mikhail Zarechenskiy bb23556ead Don't perform Unit-conversion for functional types with type variables
#KT-40269 Fixed
2020-07-14 13:05:28 +03:00
Mikhail Zarechenskiy 09b44b3189 Fix rewrite at slice exception for callable references inside flatMap
#KT-40254 Fixed
2020-07-14 13:05:28 +03:00
Mikhail Zarechenskiy 8158ba2be3 Add tests for obsolete issues
#KT-32183 Obsolete
 #KT-31474 Obsolete
 #KT-31853 Obsolete
2020-07-14 11:23:57 +03:00
vladislavf7@gmail.com 275ce16faa [FIR] add RedundantReturnUnitTypeChecker 2020-07-14 10:05:28 +03:00
Nick 67e58ff152 [FIR] Fix redundant calls to firEffectiveVisibility() 2020-07-13 16:30:47 +03:00
Mikhail Zarechenskiy 678b76cab1 Fix presence of Deprecated hidden annotation for reference arguments
#KT-40234 Fixed
2020-07-13 11:23:28 +03:00
Mikhail Glukhikh 8005df42fb [FIR] Make redundant visibility modifier a warning 2020-07-11 10:45:33 +03:00
Mikhail Glukhikh 5276903bea Fix code style: DeclarationCheckersDiagnosticComponent 2020-07-11 10:45:33 +03:00
Mikhail Glukhikh aee49c3fde [FIR TEST] Add forgotten txt-file for redundant visibility checker test 2020-07-11 10:45:32 +03:00
vladislavf7@gmail.com be684c784f [FIR] Introduce extended checkers for inspection-like diagnostics 2020-07-11 10:45:32 +03:00
vladislavf7@gmail.com 4643d483a0 [FIR] Introduce RedundantVisibilityModifierChecker 2020-07-11 10:45:10 +03:00
Alexander Udalov e8c3c70369 IR: make IrDeclarationWithVisibility.visibility mutable
It was mutable anyway in many subclasses. This is needed in order to
avoid depending on concrete IR implementations in the JVM IR backend
where it's necessary to be able to change visibility.
2020-07-10 16:17:06 +02:00
Alexander Udalov dbad81473e IR: make IrMetadataSourceOwner.metadata mutable
To avoid casting to specific Ir*Impl elements at call sites.

Also inherit from IrMetadataSourceOwner only where it's needed: class,
file, function, property. Previously this field was always null and took
some space for things like value parameters, type parameters, etc.
2020-07-10 16:17:05 +02:00
simon.ogorodnik 689887c94d [FIR] Fail test if no modules analyzed successfully 2020-07-10 16:25:22 +03:00
Mikhail Zarechenskiy 0c8b847ae6 Introduce compiler key to disable compatibility resolution mechanism
Enable it if one was using new inferene before 1.4

 #KT-40128 Fixed
 #KT-40112 Fixed
 #KT-40113 Fixed
2020-07-10 14:23:45 +03:00
Victor Petukhov 514ac7dc8f NI: introduce simple calls storage (which aren't gone through type inference) in coroutine inference session to further substitute postponed variable
^KT-40151 Fixed
2020-07-10 11:11:48 +03:00
Mikhail Glukhikh fbbf4e06ba [FIR] Support imported callable from object properly #KT-35730 Fixed 2020-07-10 10:25:39 +03:00
Mikhail Glukhikh 6b964cb61d [FIR2IR] Drop explicit receiver double-conversion for objects 2020-07-10 08:56:58 +03:00
Ivan Kylchik c44fd235ce [FIR] Remove isEnumEntry field from FirJavaField
This field isn't used anymore because java enum entry is represented by
FirEnumEntry
2020-07-09 23:49:55 +03:00
Ivan Kylchik dcae6f1415 [FIR] Support when exhaustiveness for java enum
The problem appear because for java enum its entries was represented by
FirJavaField. To fix this FirEnumEntry was used

#KT-39621 Fixed
2020-07-09 23:49:54 +03:00
Jinseong Jeon 3afc37438e FIR: handle getClassCall with integer literals 2020-07-08 18:23:27 +03:00
Mikhail Zarechenskiy 2bb9838a80 Add test for obsolete issue
The problem was fixed in d51bb2c053

 #KT-37692 Obsolete
2020-07-08 15:30:20 +03:00
Dmitriy Novozhilov 86791f1fef [FIR] Fix parsing fun modifier for interfaces in light-tree2fir 2020-07-08 12:13:32 +03:00
Dmitriy Novozhilov 58af8d68a1 [FIR] Check for isFun flag in SAM resolution 2020-07-08 12:13:32 +03:00
Dmitriy Novozhilov d1cb776e29 [FIR] Assume all java interfaces are fun interfaces 2020-07-08 12:13:32 +03:00
Dmitriy Novozhilov a3a79e4295 [FIR] Update testdata due to incorrect SAM detection 2020-07-08 12:13:32 +03:00
Dmitriy Novozhilov 29849b1330 [FIR] Resolve rhs of += in dependent context 2020-07-08 12:13:31 +03:00
Mikhail Glukhikh 4a988f467a [FIR2IR] Code cleanup: DelegatedMemberGenerator 2020-07-08 10:05:07 +03:00
Juan Chen d163853c97 [FIR] add support for implementation by delgation
This commit handles "subclass: super-interface by delegate-expression".

During Psi2Fir, for each delegate, we add to the subclass a synthetic
field (which has type super-interface), and an assignment of the
delegate-expression to the synthetic field in the primary constructor,
so that the delegate-expression can be resolved and transformed along
the way.

During Fir2Ir, we look up delegatable members from the super-interface
and generate corresponding functions/properties for the subclass.

TODO: support for generic delegatable members and generic
super-interface.
2020-07-08 09:42:24 +03:00
simon.ogorodnik 77ccb3767c [FIR] Add system property selector for lightTree2fir / psi2fir 2020-07-07 21:47:24 +03:00
simon.ogorodnik a460b8f2f4 [FIR] Support source directories for lightTree2fir 2020-07-07 21:47:24 +03:00
simon.ogorodnik 6c7a40627f [FIR] Forbid constructors in processFunctionsByName 2020-07-07 21:47:24 +03:00
simon.ogorodnik 6bc654ee49 [FIR] Add full compiler pipeline modularized test
Fixup: allow kotlin package
2020-07-07 21:47:24 +03:00
simon.ogorodnik b48dfe9b3d Allow dirs as content root in modularized tests 2020-07-07 21:47:24 +03:00
Jinseong Jeon 50b2ea7053 FIR: avoid cast exception in Candidate.prepareExpectedType 2020-07-07 16:55:53 +03:00
Nick a5f34a880c [FIR] Fix computeTypeArguments() & add diagnostic for type args 2020-07-07 15:52:17 +03:00
Jinseong Jeon a18bd1bb75 FIR deserializer: use annotation info from enclosing class for companion object 2020-07-07 11:43:51 +03:00
Jinseong Jeon 81345bcc26 FIR deserializer: load annotations on inner classes 2020-07-07 11:43:51 +03:00