Mikhail Glukhikh
c8aa6defb6
Data flow information is no longer dropped while analyzing object literal expression. #KT-6293 Fixed. #KT-7110 Fixed.
...
A set of tests for KT-6293 / KT-7110 provided.
2015-05-21 13:03:39 +03:00
Michael Bogdanov
4abaa54d0e
Test for obsolete KT-4869: Report error when inline parameter is passed to a function variable
...
#KT-4869 Obsolete
2015-05-21 10:06:01 +03:00
Denis Zharkov
6df805d6f2
Refine diagnostics reported on implicit constructor delegation call
...
- Do not report anything else if primary's call expected
- Do not repeat EXPLICIT_DELEGATION_CALL_REQUIRED
#KT-7230 Fixed
2015-05-20 09:24:57 +03:00
Denis Zharkov
2deb7faf05
Deprecate function expressions with names
2015-05-20 09:24:56 +03:00
Denis Zharkov
aa1548a83b
Report obsolete labels syntax deprecation on objects
...
#KT-7771 Fixed
2015-05-20 09:24:56 +03:00
Denis Zharkov
5297b4974f
Adjust descriptor renderer to latest parsing changes
...
- `constructor` keyword expected in primary constructor with non-empty modifier list
- annotation list should be preceeded by '@'
2015-05-20 09:24:56 +03:00
Denis Zharkov
89337ff51e
Change deprecation rules for annotations in brackets
...
Also adjust quickfix for deprecated syntax
2015-05-20 09:24:56 +03:00
Denis Zharkov
aa4a20dddc
Add missing 'constructor' to testData when it was necessary
2015-05-20 09:24:55 +03:00
Denis Zharkov
09cae59f0a
Report warning on modifier list of primary ctor unless 'constructor' keyword specified
2015-05-20 09:24:54 +03:00
Valentin Kipyatkov
7edff172a2
KT-1273 Unused assignment - should highlight assignment instead of expression
...
#KT-1273 Fixed
2015-05-19 23:45:59 +03:00
Andrey Breslav
f7a9cc6b28
Fix for EA-64905 - assert: TypeUtils.intersect
2015-05-19 17:15:02 +03:00
Mikhail Glukhikh
0d7f649cc2
Implementation of exhaustive whens in control flow analysis.
...
Now control flow analyzer knows when is exhaustive.
If despite of this all conditions are accidentally false, jump to error is generated.
A set of tests (diagnostic, control flow). #KT-5113 Fixed. #KT-6046 Fixed. #KT-1882 Fixed.
2015-05-18 19:44:29 +03:00
Mikhail Glukhikh
c4aa6d01a9
Exhaustive when on boolean argument. A set of tests.
...
Compile-time constants are taken into account. #KT-3743 Fixed.
2015-05-18 19:44:22 +03:00
Pavel V. Talanov
119ffd2347
Minor: replace obsolete trait keyword in newly added test
2015-05-17 18:24:50 +03:00
Valentin Kipyatkov
60b0236101
Corrected parser: incomplete code should never cause brace disbalance
...
Fixed KT-7539 fq name inserted when completing nested traits name
#KT-7539
2015-05-16 17:15:12 +03:00
Dmitry Jemerov
dc9523016a
report 'trait' keyword as deprecated, provide quickfix for replacing with 'interface'
2015-05-15 18:20:39 +02:00
Michael Bogdanov
5daf79d2de
Tests for obsolete KT-5232: vfy error with default parameter in method of trait
...
#KT-5232 Obsolete
2015-05-15 18:06:52 +03:00
Mikhail Glukhikh
4e1a90ee61
Diagnostics for incorrect enum members order, when enum entry follows enum member. A few diagnostic tests.
...
Now incorrect enum members order is treated as a warning.
2015-05-15 16:13:46 +03:00
Mikhail Glukhikh
983339e1c9
Detection of semicolon between enum entries together with the correct delimiter quick fix for this case.
...
Error message reported directly on semicolon.
2015-05-15 16:13:41 +03:00
Mikhail Glukhikh
147bca3d22
Enum deprecated syntax detection implemented and integrated into DeclarationsChecker.
...
A lot of tests was changed to refactor deprecated syntax. Six new tests were added to check deprecated syntax detection.
Diagnostic for "enum entry uses deprecated super constructor": constructor is highlighted
Diagnostic for "enum entry uses deprecated or no delimiter".
One warning removed.
2015-05-15 16:13:34 +03:00
Mikhail Glukhikh
1a312140e9
New enum syntax: Short constructor syntax introduced for entries, optional commas between entries, semicolon after entries. #KT-7605 Fixed.
...
Grammar changed accordingly.
Semicolons prohibited after an entry except the last one.
Only one initializer is allowed per entry.
EnumReferenceExpression AST node introduced.
Some tests fixed, a pair of new tests written. Kotlin code inside project fixed.
Formatter and intendation tests fixed accordingly.
Stub version is incremented.
2015-05-15 16:13:32 +03:00
Alexander Udalov
2fe05c6f11
Parse and resolve annotations on supertypes
2015-05-14 18:58:08 +03:00
Dmitry Jemerov
4bdf598bfe
compiler testdata: s/trait/interface
2015-05-12 19:43:17 +02:00
Dmitry Jemerov
9975bb8935
replace 'trait' keyword with 'interface' in user-visible messages and code generation tools
2015-05-12 11:49:37 +02:00
Denis Zharkov
93861e16c8
Prohibit non-constant default values for annotation parameter
...
#KT-7449 Fixed
2015-05-07 22:36:17 +03:00
Denis Zharkov
849b8acbf8
Replace annotations with brackets in testData
...
Just in tests that changed after deprecation
2015-05-07 22:36:16 +03:00
Denis Zharkov
5bc7c9600f
Deprecate annotations in brackets
2015-05-07 22:36:16 +03:00
Denis Zharkov
1d77f50903
Refine highlighting of '@'
...
- Do not highlight '@' as separate token.
- Highlight '@' the same way as element where it's located: annotation, label or modifier.
- Extend text range when positioning unresolved reference in annotation with '@'.
Note that currently '@' is collapsed with modifiers tokens
2015-05-07 22:36:16 +03:00
Denis Zharkov
b924f35ed3
Resolve annotations on multi-declaration for parameter
2015-05-07 22:36:16 +03:00
Denis Zharkov
9e23698fe3
Unwrap annotated expression in deparenthesize
...
It's needed to complete resolved call with annotated function literal
2015-05-07 22:36:15 +03:00
Denis Zharkov
9101505eca
Rework deparenthesize-like methods
...
- Extract private `deparenthesizeOnce` and repeat it until get the same expression
- Drop redundant parameter `deparenthesizeRecursively`
- Drop some usages of `safeDeparenthesize` in `deparenthesize`
because even if `deparenthesize` returns null (i.e. something was not parsed)
there is no sense in working with such expressions
Note, that `deparenthesize` now unwraps nested labels' declaration (see changes in testData),
but it seems to be reasonable
2015-05-07 22:36:15 +03:00
Denis Zharkov
b72a3de86e
Parse annotations on lambda-argument
2015-05-07 22:36:15 +03:00
Denis Zharkov
c5af4b42b4
Extract common logic for annotation entries collection
...
Before this change annotation entries starting with '@' within expressions hadn't been resolved
Note that order of annotation entries in result may change according to order of children in PSI (see changed testData)
2015-05-07 22:36:15 +03:00
Natalia Ukhorskaya
9108d87a57
Add warning for division by zero:
...
#KT-5529 fixed
2015-05-07 15:41:37 +03:00
Svetlana Isakova
6ee59a06dd
Removed obsolete cache for object literals
2015-04-30 21:24:51 +03:00
Svetlana Isakova
02301a0d70
KT-7597 ErrorType leaked into backend
...
#KT-7597 Fixed
2015-04-30 21:24:51 +03:00
Mikhail Glukhikh
f4dd685bbe
Fix for a problem with smart cast impossible in a situation when it's not needed. A test for KT-3572. #KT-3572 Fixed.
2015-04-30 16:48:15 +03:00
Denis Zharkov
ca8fb53ccd
Fix old labels syntax in testData
2015-04-30 10:22:17 +03:00
Dmitry Jemerov
8258d72e23
don't report USELESS_CAST in case of casting to superype using 'as'
2015-04-29 16:33:32 +02:00
Dmitry Jemerov
f374eec8f1
deprecating types after colon
2015-04-29 16:33:24 +02:00
Nikolay Krasko
90cdb19324
Add origin for generated jvm overloads and tweak equals methods to distinguish them
...
- KT-7586 Strange navigation issue
#KT-7586 Fixed
2015-04-29 15:20:31 +03:00
Dmitry Jemerov
98b8784ab0
drop deprecated syntax for anonymous initializer blocks
2015-04-29 14:07:04 +02:00
Ilya Ryzhenkov
35e82d4574
Propagate annotations when performing substitution on constructors #KT-7608 Fixed
...
Tests for deprecated warning on generic constructor.
2015-04-29 14:53:40 +03:00
Denis Zharkov
fc5236244b
Deprecate java.lang.Class as annotation parameter
2015-04-29 14:03:11 +03:00
Denis Zharkov
44a55e5bf6
Adjust testData to new labels syntax
2015-04-29 14:03:11 +03:00
Alexander Udalov
0d76634f6b
Support SKIP_TXT directive in diagnostic tests
...
Don't render the whole 'kotlin' package in some tests, because test data will
change every time something is updated in built-ins
2015-04-29 01:36:20 +03:00
Alexander Udalov
d7c810a4d0
Copy only nullability/mutability annotations to types
...
Also don't render copied annotations
2015-04-29 01:09:35 +03:00
Alexander Udalov
24bad39e76
Don't use external annotations in compiler
...
External annotations will be re-enabled in the IDE later.
This fixes LazyJavaAnnotations which was breaking the contract of Annotations:
findAnnotation(FqName) was looking for external annotations, while iterator()
did not. This resulted in some inconsistencies in the compiler and IDE tests.
The other way, i.e. making iterator() look up external annotations, would have
been too costly for the compiler and with no clear benefit at the moment.
2015-04-29 01:03:57 +03:00
Mikhail Glukhikh
fd789cb68e
Correct behaviour for break / continue inside function call arguments, including multiple ones. Additional tests.
2015-04-28 17:37:53 +03:00
Mikhail Glukhikh
8f2a3e9d5f
Fixed DFA for the last assignment / initialization in block. A relevant test. #KT-7599 Fixed.
2015-04-28 15:16:39 +03:00