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
Victor Petukhov
c588bc604d
NI: do substitution stub types during updating trace for lambda (these stub types can appear from the builder inference as postponed variables)
...
^KT-40060 Fixed
2020-07-07 11:17:06 +03:00
Victor Petukhov
eec3a4720c
NI: don't collect members if a receiver type is StubType to avoid creating error candidates instead of not crating them at all
...
^KT-37717 Fixed
2020-07-07 11:17:06 +03:00
Ivan Kylchik
989e4293a3
[FIR] Fix exhaustiveness check in case of sealed subclass
...
The problem appear because check was performed only on direct children
of sealed class. To fix this, heritage tree is built and used in check
#KT-38989 Fixed
2020-07-07 10:58:06 +03:00
Nick
40cd30f7f6
[FIR] Partial performance fix for the effective visibility checker
2020-07-07 10:24:04 +03:00
Ivan Kylchik
574aa0affe
[FIR] Fix synthetic property is not var due to Nullable on parameter
...
Synthetic property is var when it have setter. The latter is set up
in property when its parameter type is equal to getter return type. In
case of using @Nullable, parameter type of setter is not equal to
return type of getter, because the latter is flexible type. So to fix
this verification should occur using not null types
#KT-39076 Fixed
2020-07-06 17:52:37 +03:00
Mikhail Zarechenskiy
d8f701ee61
Add test for obsolete issue
...
#KT-39588 Obsolete
2020-07-05 18:17:44 +03:00