Commit Graph

1705 Commits

Author SHA1 Message Date
Mikhail Glukhikh d19d52292e [FIR] Use builder to create synthetic properties 2020-02-10 18:51:34 +03:00
Mikhail Glukhikh 9a80850700 [FIR] Fix Kotlin-Java supertype recursion problem 2020-02-10 18:51:34 +03:00
Mikhail Glukhikh cc0e39ebca [FIR] Support synthetic property setters 2020-02-10 18:51:34 +03:00
Mikhail Glukhikh a9ba94cf0e [FIR] Use only variable symbol inheritors in processPropertiesByName 2020-02-10 18:51:34 +03:00
Mikhail Glukhikh a569e29091 [FIR] Make SyntheticPropertySymbol derived from FirAccessorSymbol 2020-02-10 18:51:33 +03:00
Mikhail Glukhikh a7f9e3ab09 [FIR] Accessor symbol is now a property symbol, not a function symbol 2020-02-10 18:51:33 +03:00
Mikhail Glukhikh 69809fef94 [FIR] Synthetic property symbol is now a property symbol, not a function 2020-02-10 18:51:33 +03:00
Dmitriy Novozhilov 6ed4229359 [FIR] Fix smartcasts on member vals in init blocks 2020-02-10 15:53:57 +03:00
Denis Zharkov becc9c21f0 FIR: Map raw types properly 2020-02-10 14:11:49 +03:00
Denis Zharkov b3f9fa22b4 FIR: Fix inference when bound comes from type alias
It's type depth may be computed incorrectly
and relevant constraint is being skipped
2020-02-10 14:11:49 +03:00
Victor Petukhov ae39d748e4 NI: Try to solve constraint system with another flexibility from a type variable if couldn't solve
^KT-36254 Fixed
2020-02-10 12:31:42 +03:00
Dmitriy Novozhilov b5dd16784a [FIR] Add .gitattributes for correct line endings on windows 2020-02-10 11:58:54 +03:00
Dmitriy Novozhilov 031a79528a [FIR] Fix compiler error in build.gradle.kts 2020-02-10 11:23:43 +03:00
Dmitriy Novozhilov 55215ba187 [FIR] Fix generation root for FIR tree 2020-02-10 11:20:22 +03:00
Dmitriy Novozhilov abfd87411d [FIR-TEST] Mute failing tests with java kotlin supertypes cycle 2020-02-10 10:54:05 +03:00
Dmitriy Novozhilov 779ab632da [FIR] Remove modifiable intermediate implementations from tree
All removed except `FirModifiableQualifiedAccess`
2020-02-10 10:54:05 +03:00
Dmitriy Novozhilov 5ceb68f19f [FIR-TEST] Update some testdata 2020-02-10 10:54:04 +03:00
Dmitriy Novozhilov 4b6c2f7a65 [FIR] Remove equality by fir from symbols 2020-02-10 10:54:04 +03:00
Dmitriy Novozhilov c79fd61dba [FIR] Fix usage of typeParameterStack from parent class in java loading 2020-02-10 10:54:03 +03:00
Dmitriy Novozhilov dd67568cf6 [FIR] Fix recursive annotation deserialization 2020-02-10 10:54:03 +03:00
Dmitriy Novozhilov d57fa859c8 [FIR] Implement builders for leaf nodes of FIR tree 2020-02-10 10:54:03 +03:00
Dmitriy Novozhilov b0c1387279 [FIR] Remove legacy annotation @VisitedSupertype 2020-02-09 20:01:43 +03:00
Dmitriy Novozhilov fcd9ef043c [FIR] Reorganize some utility code of tree generator 2020-02-09 20:01:43 +03:00
Alexander Udalov feccf9cc1b Remove dependency of fir.tree on ir.tree 2020-02-07 13:02:11 +01:00
Mikhail Glukhikh c34d2f9daa [FIR] Fix signature calculation in JvmMappedScope 2020-02-07 13:04:21 +03:00
Mikhail Glukhikh 0c195be513 [FIR TEST] Add test with MutableMap.compute 2020-02-07 13:04:10 +03:00
Mikhail Glukhikh 2fb508aa1b [FIR] Fix DFA behaviour for a case with == (!=) true / false 2020-02-07 13:04:07 +03:00
Mikhail Glukhikh 36ba8bf6a9 [FIR] Add test imitating complex smart casts on descriptors 2020-02-07 13:04:06 +03:00
Mikhail Glukhikh a8e89a6390 [FIR] Fix various corner cases in DFA 2020-02-07 13:03:43 +03:00
Mikhail Glukhikh 1344d6407c [FIR] DFA fix: imply != null after x as? NotNullType for real variables 2020-02-07 13:03:41 +03:00
Mikhail Glukhikh 1bbcec4935 [FIR] DFA fix after x?.syntheticProperty ?: return 2020-02-07 13:03:41 +03:00
Mikhail Glukhikh d23c03e9dc [FIR] Add test about synthetic / non-synthetic smart casts 2020-02-07 13:03:40 +03:00
Mikhail Glukhikh 9f9d53cc5a [FIR] Fix handling of scope emptiness in case of synthetic properties 2020-02-07 13:03:40 +03:00
Denis Zharkov c8c0ba480b FIR: Add problem tests for smart cast within init-section 2020-02-07 12:18:40 +03:00
Anton Bannykh 0bcde9dffc IR API: Make IrEnumEntry.initializerExpression IrExpressionBody
All non-declarations should be inside IrBody's now
2020-02-06 21:03:32 +03:00
Mikhail Glukhikh e2a99f84a5 [FIR] Fix test data 2020-02-06 13:40:11 +03:00
Denis Zharkov 286622009d FIR: Cleanup PostponedArguments.kt 2020-02-06 13:00:29 +03:00
Denis Zharkov 6f6281a3f3 FIR: Support type aliases to function types in resolution 2020-02-06 13:00:29 +03:00
Juan Chen 7249d2f889 [FIR] Fix translation of invokes & add return expressions for lambdas
* fixed NoSuchMethod caused by mismatched signatures of the "invoke" method generated for lambda arguments
* added test cases in invoke.kt for KFunction and anonymous functions
* added a transformer to wrap the last expression in the bodies of lambdas with return
2020-02-06 12:44:14 +03:00
Mikhail Glukhikh 98ea2231f1 [FIR] Code cleanup: NodeConfigurator 2020-02-05 11:19:25 +03:00
Mikhail Glukhikh 0fa98ed635 [FIR] Discriminate abstract members when resolving on super 2020-02-05 11:19:23 +03:00
Mikhail Glukhikh 8e40782e7b [FIR] Add test with abstract / non-abstract ambiguity 2020-02-05 11:19:22 +03:00
Mikhail Glukhikh f7d658b624 FIR2IR: fix dispatch receiver generation (non-function case) 2020-02-05 11:19:21 +03:00
Mikhail Glukhikh b09b2673bf FIR2IR: handle non-ambiguous super references properly 2020-02-05 11:19:20 +03:00
Mikhail Glukhikh 71b0840ef9 [FIR] Implement super resolve as a particular tower resolver case 2020-02-05 11:19:19 +03:00
Dmitry Petrov ee020ef290 KT-36336 @EnhancedNullability and null checks
Don't insert implicit null check on a value of @EnhancedNullability type
used where @EnhancedNullability type is expected.

This uncovers a bunch of other problems in FE and BE.
KT-36343 and KT-36347 are bugs in StrictJavaNullabilityAssertions
implementation which should most likely be fixed in next major language
version (with proper breaking change notice).
KT-36344 is a design problem which should be addressed after 1.4 issues
are resolved.
2020-02-05 11:15:41 +03:00
Denis Zharkov fef2e06db4 FIR: Fix test data 2020-02-04 17:55:12 +03:00
Pavel Kirpichenkov 75d57c7d3f Update pattern for finding diagnostics in diagnostic tests
Also use updated diagnostic pattern in TreesCompareTest.
In rare cases diagnostic was cut too early on !> characters,
that were a part of diagnostic parameter:
<!DIAGNOSTIC("Type<DefinitelyNotNullTypeArgument!!>")!>
2020-02-04 17:49:18 +03:00
Denis Zharkov 4f834cb16b FIR: Get rid of replacements map during calls completion
Otherwise, it's complicated to work with nested lambdas:
outer/inner ones may be replaced independently and still refer
to the old one instances.
So in the changed test, if we don't apply the commit, will remain
implicit return and receiver types for the nested lambda

Anyway, once we decided to leave immutable semantics,
replacements are not necessary anymore
2020-02-04 16:24:01 +03:00
Denis Zharkov 8d24e0f842 FIR: Add some absent "replace" methods for callable declarations
It's necessary to avoid copying lambdas in LambdaAnalyzerImpl
2020-02-04 16:24:01 +03:00