Ilya Kirillov
1a90866ce1
FIR: handle member scope for anonymous objects
...
#KT-37120 fixed
2020-04-23 10:38:41 +03:00
Denis Zharkov
706ccb2cf9
FIR: Adjust testData for spec tests: invoke on nullable receiver
...
It's a design problem, see related issue
^KT-30415
2020-04-21 10:16:34 +03:00
Denis Zharkov
6fdbc38cf1
FIR: Fix label/receiver for lambda within infix calls
...
While this fix only changes label name, it's important for proper
lambda resolution because receiver is set for a lambda
only in presence of a label
This commit fixes a lot of checkType calls in diagnostic tests
2020-04-21 09:52:52 +03:00
Denis Zharkov
65e444a39c
FIR: Properly support local functions in DEBUG_INFO_CALL
2020-04-21 09:48:03 +03:00
Denis Zharkov
fa3b3e7a9a
FIR: Fix false positive INAPPLICABLE_INFIX_MODIFIER
2020-04-21 09:48:03 +03:00
Denis Zharkov
27b860682b
FIR: Support DEBUG_INFO_EXPRESSION_TYPE
2020-04-21 09:48:03 +03:00
Denis Zharkov
7612f37c85
FIR: Prohibit calling singletons' constructors
2020-04-21 09:48:03 +03:00
Denis Zharkov
b62400124a
FIR: Support DEBUG_INFO_CALL calls in tests
2020-04-21 09:48:03 +03:00
Nick
c4b7ac994b
[FIR] Support diagnostic ABSTRACT_SUPER_CALL
2020-04-20 18:33:40 +03:00
rapturemain
8960829c01
[FIR] Cast error on the element name instead of the whole body
2020-04-20 17:27:16 +03:00
rapturemain
d811f6f4a6
[FIR] Support for EXPOSED_PARAMETER_TYPE
2020-04-20 17:25:25 +03:00
rapturemain
2e8f73adba
[FIR] Change errors location from Errors.java to FirErrors.kt
2020-04-20 17:25:25 +03:00
rapturemain
4e577caa99
[FIR] Support for EXPOSED_FUNCTION_RETURN_TYPE
2020-04-20 17:25:25 +03:00
rapturemain
15d4891c92
[FIR} Test data for EXPOSED_PROPERTY_TYPE
2020-04-20 17:25:24 +03:00
rapturemain
cc86767a23
[FIR] Support for EXPOSED_TYPEALIAS_EXPANDED_TYPE
2020-04-20 17:25:24 +03:00
Mikhail Glukhikh
fe02c2bab3
FIR: return Unit from empty lambda
2020-04-20 17:05:34 +03:00
Dmitriy Novozhilov
f489e4044f
[FIR-TEST] Update testdata after removal bodies of synthetic data class funs
2020-04-17 13:22:19 +03:00
Dmitriy Novozhilov
7f02d57d88
[FIR] Correctly detect super type in delegated constructor call
2020-04-17 12:37:29 +03:00
Dmitriy Novozhilov
f7dc06a772
[FIR] Approximate integer constants in lhs of callable reference
2020-04-15 11:13:01 +03:00
Jinseong Jeon
08b91da6db
FIR: fix body generation for data class's copy method
2020-04-14 11:51:30 +03:00
simon.ogorodnik
132c8ee210
[FIR] Apply GOOD testData changes after type parameters support
2020-04-13 20:26:18 +03:00
simon.ogorodnik
21ede8b745
[FIR] Add test for inner class type parameter capturing
2020-04-13 20:26:17 +03:00
Mikhail Glukhikh
a93c7a39e0
[FIR] Provide object [dispatch] && callable reference receivers properly
2020-04-09 15:22:56 +03:00
Mikhail Glukhikh
14731527ed
[FIR] Don't store class functions in local scope
2020-04-09 15:22:55 +03:00
Denis Zharkov
65e90743df
FIR: Fix hanging inference case with intersection types
2020-04-07 17:54:55 +03:00
Denis Zharkov
81d9cf76f2
FIR: Add java.io.Serializable as supertypes to built-in classes
2020-04-07 17:54:55 +03:00
Denis Zharkov
4cd93a9fec
FIR: Add test for discrepancy in call resolution for qualifiers with old FE
...
^KT-38031 Open
2020-04-07 17:54:55 +03:00
Mikhail Glukhikh
32748ea741
[FIR] Change char constant rendering to prevent encoding inconsistencies
2020-04-06 16:41:58 +03:00
Mikhail Glukhikh
d7460d47de
[FIR] Generate dispatch & extension receivers for variable assignments
2020-04-03 17:21:21 +03:00
Mikhail Glukhikh
f3f7bf70f6
[FIR] Set delegate field receiver properly
2020-04-03 13:29:55 +03:00
Dmitriy Novozhilov
7dd91df10b
[FIR] Don't analyze with DFA already analyzed classes
2020-04-03 10:08:26 +03:00
Dmitriy Novozhilov
20d0e8647d
[FIR] Pass data flow to init blocks of local classes
2020-04-03 10:08:25 +03:00
Dmitriy Novozhilov
bcd2e5ed2c
[FIR] Add control flow graph to inplace lambdas
2020-04-03 10:08:24 +03:00
Dmitriy Novozhilov
1d39270b3e
[FIR] Don't pass data flow to property accessors of non local classes
2020-04-03 10:08:24 +03:00
Dmitriy Novozhilov
1d1b8d3290
[FIR-TEST] Update cfg dumps according to previous commits
2020-04-03 10:08:23 +03:00
Dmitriy Novozhilov
b90c8eb8ed
[FIR] Analyze annotations of local class before class itself
2020-04-03 10:08:20 +03:00
Dmitriy Novozhilov
43e9cbbbf5
[FIR] Add parent graph to CFG
2020-04-03 10:08:18 +03:00
Dmitriy Novozhilov
8cb6e8f8af
[FIR] Add control flow graph for class initialization
2020-04-03 10:08:17 +03:00
Dmitriy Novozhilov
74d86d82c6
[FIR] Add control flow graph to FirAnonymousInitializer
2020-04-03 10:08:16 +03:00
Denis Zharkov
6cc6b9efcb
FIR: Fix overload resolution for some invoke cases
...
Namely, it's about the cases when there are multiple variable candidates
with the same priority and all of them should be collected and compared
2020-04-02 12:10:50 +03:00
Denis Zharkov
9abe669443
FIR: Fix resolution for invokes on class qualifiers
2020-04-02 12:10:50 +03:00
Mikhail Glukhikh
d8bc29e6c6
[FIR] Eliminate obsolete NO_SUPERTYPE diagnostic from builder
2020-03-27 18:24:50 +03:00
Nick
b38d30bab0
[FIR] Support several super-related diagnostics
2020-03-27 18:24:50 +03:00
Mikhail Glukhikh
b27152f903
Replace some FIR syntax errors with more proper diagnostics
2020-03-27 16:46:59 +03:00
FenstonSingel
b7d8e879a6
[FIR] Support 4 diagnostics for pairs of modifiers
...
In particular, this commit includes:
* Attempt to abstract access to FirSourceElement via FirModifier
* Add more visit functions to DeclarationCheckersDiagnosticComponent
* Add messages+factories for 4 modifier-related errors and warnings
* Introduce FirModifierChecker
2020-03-27 12:34:29 +03:00
Dmitriy Novozhilov
48fb279721
[FIR] Add constraint to flexible type for declared argument for java parameter
2020-03-27 10:17:12 +03:00
Denis Zharkov
5539ad8ce8
FIR: Fix data-flow for jumps between members of local classes
...
First of all, note that currently ControlFlowGraphBuilder instance is fully mutable
and shared between all local classes and top-level classes in the same thread
Before this change, previous node for member of local class
was defined as lastNode
And in the case of implicit types, lastNode might be in a middle of another
local class member that is being resolved right now.
See the test:
- "a.length" expression in `bar` should be resolved because smart cast happens
before the class declaration
- "b.length" expression in `bar` should be unresolved because smart cast happens
in a different function
The latter case has been working incorrectly, the call was errorenously
resolved because "lastNode" were pointed just before "bar()" call in "foo"
2020-03-25 15:36:19 +03:00
Denis Zharkov
d869ae7826
FIR: Make resolution logic for local classes the same as for top-level
...
Run different phases through common transformers sequentially
It should make code more reusable and may help with avoid common bugs
2020-03-25 15:36:17 +03:00
Denis Zharkov
cdd7e41891
FIR: Support proper implicit return type computation for local classes
2020-03-25 14:53:34 +03:00
Nick
abcd6bd528
[FIR] Support diagnostic SUPER_IS_NOT_AN_EXPRESSION
2020-03-23 15:14:06 +03:00