Dmitriy Novozhilov
f283f2db43
[FIR] Improve diagnostic reporting & don't use error symbol for candidate if possible
...
Also introduce few new diagnostics:
- NONE_APPLICABLE more many inapplicable candidates
- HIDDEN for visible candidates
2020-07-28 20:46:56 +03:00
Denis Zharkov
f71a56e742
FIR: Fix test data after rewritten scope structure
...
Mostly, the semantics for statics/companions has been changed there
Fixed test data now is much closer to semantics of old FE
2020-05-15 16:04:44 +03:00
Mikhail Glukhikh
457fb09e3a
[FIR] Use tower to resolve delegated constructors, set dispatch receiver
2020-05-12 16:57:07 +03:00
Jinseong Jeon
7b01cf7b04
FIR: handle labeled super reference properly
2020-05-07 12:02:56 +03:00
simon.ogorodnik
f573719cc1
[FIR] Fix missing receiver type if anonymous function without label
2020-04-08 14:56:17 +03:00
simon.ogorodnik
4844a90788
[FIR] KT-37453: Type argument mapping
...
#KT-37453 Fixed
2020-03-16 21:41:59 +03:00
Mikhail Glukhikh
8884cbe415
Introduce FIR_IDENTICAL for FIR vs old frontend tests #KT-36879 Fixed
2020-03-05 09:39:40 +03:00
Mikhail Glukhikh
abfe566255
[FIR] Add object support as implicit invoke receiver
2020-02-14 17:38:31 +03:00
Ilya Chernikov
6356807997
Reapply "Only create descriptors for candidates with lambda args"
...
#KT-36247 fixed
A lot of testdata changed because significanly less (error) descriptors
are created for unresolved types, so diagnostics became different.
2020-02-14 11:41:30 +01:00
Mikhail Glukhikh
14204a842a
Refactoring & clarification: implement new FIR tower resolver
2020-01-27 00:34:16 +03:00
Mikhail Glukhikh
f0ced642d9
[FIR] Use static & qualified scopes to access qualified callables
...
This commit provides more correct logic for creating scopes based
on FirResolvedQualifier & eliminates QualifiedReceiverTowerDataConsumer
2020-01-15 16:52:12 +03:00
Simon Ogorodnik
13132e69a3
[FIR] Start enum entries reworking
2020-01-10 10:23:50 +03:00
Simon Ogorodnik
1715f1a864
[FIR] Refactoring: create use-site scopes via scope provider
2019-12-30 12:52:58 +03:00
simon.ogorodnik
5e426fdc71
[FIR] Optimization & checking fix: remove usage of dispatchReceiverValue
2019-12-27 13:45:59 +03:00
Dmitriy Novozhilov
2536fa0cd5
[FIR-TEST] Add new testdata generated after changes in previous commit
2019-12-12 16:11:46 +03:00
Mikhail Zarechenskiy
ac0a1d984f
[NI] Don't return resulting call if return type has uninferred types
2019-04-25 16:19:38 +03:00
Mikhail Zarechenskiy
1e3db9ee7c
[NI] Update test data for diagnostic tests
2019-04-25 16:19:37 +03:00
victor.petukhov
30762a450a
Wrap diagnostic parameters to double quotes and split by comma instead of semicolon
2019-02-14 12:31:42 +03:00
victor.petukhov
46bd5ba107
Add alphabetical sorting diagnostics with same ranges
2019-02-14 12:31:42 +03:00
Dmitry Savvinov
5cb949ad7f
Fix language features in tests for gradual migration to 1.3 (part 2)
...
In 1.3, due to changes in language, testdata for some tests can be
different from 1.2
We want to simlultaneously test both versions, so instead of fixing
language version in such tests, we split them into two: one with fixed
1.2, another with fixed 1.3
2018-07-05 10:42:49 +03:00
Mikhail Zarechenskiy
397cc4f772
[NI] Support implicit invoke calls on parenthesized receivers
2018-04-20 13:06:21 +03:00
Dmitry Savvinov
874267b79d
Report cyclic scopes properly
...
This commit introduces proper handling of recursion in scopes, which
could occur when some of companion object supertypes are members of
that companion owner:
```
class Container {
open class Base
companion object : Base()
}
```
To resolve `Base`, we have to build member scope for `Container`.
In the member scope of `Container`, we see all classifiers from
companion and his supertypes
So, we have to resolve companion objects supertype, which happens to be
`Base` again - therefore, we encounter recursion here.
Previously, we created `ThrowingLexicalScope` for such recursive calls,
but didn't checked for loop explicitly, which lead to a wide variety of
bugs (see https://jetbrains.quip.com/dc5aABhZoaQY and KT-10532).
To report such cyclic declarations properly, we first change
`ThrowingLexicalScope` to `ErrorLexicalScope` -- the main difference is
that latter doesn't throws ISE when someone tries to resolve type in it,
allowing us to report error instead of crashing with exception.
Then, we add additional fake edge in supertypes graph (from
host-class to companion object) which allows us to piggyback on existing
supertypes loops detection mechanism, and report such cycles for user.
2017-12-07 14:14:08 +03:00
Dmitry Savvinov
ea72c76a37
[NI] Testdata changes after fixes in error types
2017-12-07 12:49:56 +03:00
Mikhail Zarechenskiy
328c67b9e8
Add separate diagnostic renderer results for tests with NI
2017-11-29 02:54:30 +03:00
Mikhail Zarechenskiy
8757298994
Add diagnostics to test data from NI
2017-11-29 02:54:26 +03:00
Mikhail Zarechenskiy
a71238bf94
Place !WITH_NEW_INFERENCE directive to diagnostics test data
2017-11-29 02:53:49 +03:00
Dmitry Petrov
38d1d06e6e
Update modifier applicability tests for LV 1.2
2017-09-12 11:54:04 +03:00
Dmitry Petrov
4428798c61
Change diagnostic message and rename to NESTED_CLASS_DEPRECATED
2017-09-11 09:42:18 +03:00
Dmitry Petrov
26b2f59b86
Check that resolve works properly with inner classes in enum entries
2017-09-11 09:42:18 +03:00
Dmitry Petrov
ba2c3136bb
Prohibit non-inner classes in enum entries since 1.3
2017-09-11 09:42:18 +03:00
Dmitry Petrov
ea91a0794d
Allow modifier 'inner' on a class nested in enum entry class
2017-09-11 09:42:18 +03:00
Dmitry Petrov
488a825349
Specialize diagnostic message for nested classes not allowed
2017-09-11 09:42:18 +03:00
Denis Zharkov
a7fc32c8da
Add diagnostic on calling inner classes constructors without receiver
...
Otherwise there will be just an unresolved reference that doesn't give
any useful information
#KT-8959 Fixed
2017-03-01 09:59:01 +03:00
Denis Zharkov
a3baca829f
Drop KotlinTarget.INNER_CLASS entry
...
In most of the cases it was used together with CLASS_ONLY and vice versa
They only case when CLASS_ONLY was used without INNER_CLASS
is possibleParentTargetMap.COMPANION_KEYWORD.
But after diagnostic NESTED_OBJECT_NOT_ALLOWED has been introduced,
there's no sense in the restriction of exactly the companion's parent
For clarification see test data changed
2017-02-20 13:24:42 +03:00
Denis Zharkov
d1b17f050b
Prohibit objects inside inner classes
...
#KT-16232 Fixed
2017-02-20 13:24:42 +03:00
Valentin Kipyatkov
ec51076355
DescriptorRenderer to render annotations for all types + separate option to render annotation arguments + use it in IdeDescriptorRenderers
2016-10-11 23:38:54 +03:00
Stanislav Erokhin
bebc75c8ef
Set reference target and report custom error instead unresolved reference for cases: interface, generic parameter, object + invoke, class without companion.
...
#KT-2787 Fixed.
2016-09-01 18:01:55 +03:00
Mikhail Glukhikh
cd717467f0
Nested classes are no more allowed inside any anonymous objects or local classes #KT-13510 Fixed
...
(cherry picked from commit 5c3ec6c)
2016-08-31 19:28:13 +03:00
Denis Zharkov
d0acb3674a
Fix rendered testData
...
New members in enum member scope
2016-05-16 15:38:13 +03:00
Valentin Kipyatkov
f0ef04a6a8
Changed highlighting range for unresolved annotation name to not include '@'
...
#KT-11529 Fixed
2016-03-24 16:44:58 +03:00
Alexander Udalov
e42cb2af40
Render 'annotation class not found' for error types in tests
...
After 13ae3d9 it became unclear whether an annotation mentioned in test data is
resolved or not, this change fixes that
2016-03-18 14:48:54 +03:00
Alexander Udalov
1b8f934b54
Delete deprecated enum 'values' property
2016-02-19 22:28:44 +03:00
Ilya Gorbunov
f4822cd757
Fix testData in compiler: add collections and ranges package to fq-names.
2016-01-22 05:54:38 +03:00
Zalim Bashorov
e9ea4cc953
Don't allow to use own nested classes when resolve header of (companion) object
2015-12-15 19:41:13 +03:00
Alexander Udalov
239502368a
Update test data for tower resolution algorithm
...
- locals win
- unary calls to plus/minus are not supported in favor of unaryPlus/unaryMinus
- unqualified nested classes are temporarily reported as unresolved
- function without receiver win against extension function
- explicit import win against star import
2015-12-11 17:01:02 +03:00
Mikhail Glukhikh
c8b50eec1e
Enum.values: deprecation (warning) --> deprecation (error)
2015-12-11 11:11:42 +03:00
Mikhail Glukhikh
dc60c62781
Enum.values is now deprecated but Enum.values() is no more deprecated
2015-11-23 17:29:36 +03:00
Dmitry Petrov
7b432c878a
Diagnostics improvements for corner cases
...
(class/package qualifier in non-qualifier position).
2015-11-18 16:27:21 +03:00
Dmitry Petrov
9856af48ca
Drop createQualifier: testData update
2015-11-18 14:35:53 +03:00
Mikhail Glukhikh
02fb19c3ea
Inner classes are no more allowed inside enum entries #KT-9750 Fixed
...
Forbidden use-case deleted from codegen tests
2015-11-16 10:44:20 +03:00