Dmitry Petrov
4428798c61
Change diagnostic message and rename to NESTED_CLASS_DEPRECATED
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
Alexander Udalov
9471f33c38
Refactor getDefaultSupertype, drop obsolete diagnostic
2017-06-20 14:39:47 +03:00
Dmitry Petrov
902d3af280
Prohibit extending kotlin.Enum directly
...
#KT-7773 Fixed
2017-05-26 13:58:46 +03:00
Dmitry Petrov
ee9a174c1f
KT-7897 Do not require to call enum constructor for each entry if all parameters have default values
...
Do not report an error on enum entry without initializer if all parameters have default values
(error is still reported if there is no such constructor, or if the constructor call is ambiguous).
Record resolved call on KtEnumEntry.
NB is the enum entry has a corresponding subclass, we still have to generate the "default" constructor call,
because FE doesn't know about the platform-specific representation of that class and its constructors.
See also KT-14097, KT-15900
2017-01-24 16:59:47 +03:00
Mikhail Zarechenskiy
76b0b785c5
Prohibit to use enum entry as a type
...
#KT-14179 Fixed
2017-01-09 18:30:32 +03:00
Mikhail Glukhikh
194ff4ee76
Check possible smart cast to enum in when subject #KT-14705 Fixed
2016-12-23 15:10:56 +03:00
Mikhail Glukhikh
436b0ec873
CFA merge for definition / initialization : more accurate handling of unknown variables #KT-13969 Fixed
...
(cherry picked from commit 4a96589)
2016-09-29 15:56:47 +03:00
Mikhail Glukhikh
1a8181bdc4
Only private constructors for sealed / enum classes #KT-12377 Fixed
...
Also #KT-8497 Fixed
2016-05-23 13:08:57 +03:00
Denis Zharkov
d0acb3674a
Fix rendered testData
...
New members in enum member scope
2016-05-16 15:38:13 +03:00
Alexander Udalov
1b8f934b54
Delete deprecated enum 'values' property
2016-02-19 22:28:44 +03:00
Mikhail Glukhikh
b93894953d
Exhaustive whens without else and 'Nothing' as the result are considered 'implicit exhaustive'
2015-12-26 10:46:11 +03:00
Mikhail Glukhikh
c8b50eec1e
Enum.values: deprecation (warning) --> deprecation (error)
2015-12-11 11:11:42 +03:00
Mikhail Glukhikh
b9e9c47b28
Using of enum entries as types is now forbidden #KT-5401 Fixed
2015-11-25 13:33:16 +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
Mikhail Glukhikh
74976911a2
Diagnostic for "private setter in abstract property" renamed
2015-11-23 17:29:20 +03:00
Alexey Tsvetkov
dc27363452
Remove @annotation from test data
2015-10-19 20:45:01 +03:00
Denis Zharkov
1c02231cda
Regenerate rendered descriptors after transforming Enum.values to property
2015-10-17 17:46:16 +03:00
Denis Zharkov
d8ede6d03e
Transform Enum.values to property
2015-10-17 17:46:16 +03:00
Mikhail Glukhikh
f8a356747e
Stdlib rename: 'name' and 'ordinal' are now properties in Enum, same name functions are deprecated
2015-10-14 20:40:13 +03:00
Mikhail Glukhikh
e121ba549e
Accessor visibilities are now forbidden for abstract properties
2015-10-12 18:12:39 +03:00
Mikhail Glukhikh
0cc861f00b
Exposed visibility checking, a set of exposed visibility tests, some test fixes
...
Effective visibility mechanism introduced.
Local is considered as public, java protected as Kotlin protected, java package private as Kotlin private.
2015-10-07 20:15:16 +03:00
Mikhail Glukhikh
55c7df8b8d
Deprecations: data class should now have at least one primary constructor parameter, parameters should be val / var and not vararg.
2015-09-23 16:33:05 +03:00
Denis Zharkov
098f5462eb
Drop inlineOptions and fix forgotten usages
2015-09-23 12:18:12 +03:00
Mikhail Glukhikh
a1e3471d92
"field": deprecated warnings introduced, compiler tests migrated to the new syntax
2015-09-21 15:48:00 +03:00
Denis Zharkov
4850fd10f0
Regenerate test data containing rendered descriptors
...
Introduced '@' after each annotation
2015-09-18 10:14:39 +03:00
Mikhail Glukhikh
0257f46ebb
Special modifier parsing for enum entries: last of them is considered as an enum entry name #KT-9088 Fixed
2015-09-08 17:18:28 +03:00
Denis Zharkov
676ca86ea4
Deprecate escaped modifiers and unescaped annotations
2015-09-08 12:11:30 +03:00
Denis Zharkov
fc447e2d2f
Parse some builtin annotations as modifiers
...
But still resolve them as annotations.
Mostly it's needed as begin of migration path, one day they become modifiers anyway
Some tests are dropped because they supposed that `annotation` should have parameter
2015-09-08 08:53:35 +03:00
Michael Nedzelsky
bc5c9065d2
fix tests in org.jetbrains.kotlin.checkers
2015-09-08 02:04:32 +03:00
Mikhail Glukhikh
fa292ec0e0
Enum entries now can have no initializer if default secondary constructor is available. #KT-8484 Fixed
2015-09-02 18:23:07 +03:00
Mikhail Glukhikh
754f8af3fc
Type<*> is inferred now if Type<A> and Type<B> common supertype is Type<X> and X is not within parameter upper bound. #KT-7585 Fixed. #EA-68943 Fixed.
...
It provides also a fix for KT-7585 (empty type intersection assertion).
A set of relevant tests, one fixed test
2015-09-01 15:49:29 +03:00
Alexander Udalov
9882e86ecb
Don't render contents of enum entry classes in .txt tests, regenerate tests
...
They are irrelevant because cannot be accessed from the outside anyway
2015-08-28 21:11:06 +03:00
Alexander Udalov
29abf94327
Prohibit clone() for enum classes
...
#KT-8972 Fixed
2015-08-28 21:11:02 +03:00
Mikhail Glukhikh
3f14e74b08
Drop old enum syntax. Comma / semicolon are now a syntactic part of enum entry.
...
Comma must present now between enum entries, semicolon between last entry & first member, constructor calls must be without colons / specifiers.
A swarm of tests fixed accordingly.
2015-08-11 10:38:10 +03:00
Mikhail Glukhikh
d127162a6d
Removed LOCAL_ENUM_NOT_ALLOWED
2015-08-03 19:41:58 +03:00
Mikhail Glukhikh
4bd48c4796
Regular modifier checker implemented (initial version). A set of tests fixed accordingly.
...
Most of modifier diagnostic is expressed by REDUNDANT_MODIFIER, INCOMPATIBLE_MODIFIERS, REPEATED_MODIFIER, WRONG_MODIFIER_TARGET, WRONG_MODIFIER_PARENT.
A set of modifier diagnostics is not in use now (but not deleted yet).
2015-08-03 19:41:50 +03:00
Nikolay Krasko
9648338b19
Enum with interface keywords leads to fail in DeclarationChecker
2015-07-17 20:59:03 +03:00
Nikolay Krasko
71b406d792
Fix class kind detector: prioritize enum over annotations. Introduce new error about enum annotations classes.
2015-07-17 20:59:02 +03:00
Mikhail Glukhikh
1eac4d67de
"annotation" is now parsed as an identifier. It is no longer a soft keyword.
...
Sometimes it's allowed to parse "annotation" unescaped even if other annotations must be escaped.
A set of annotations and their options tests.
A swarm of existing tests fixed (mostly kotlin.annotation.annotation() added to txt-files).
STUB_VERSION increased. Some quick fixes slightly changed.
2015-07-14 16:24:55 +03:00
Mikhail Glukhikh
848c2afdb4
"is" over enum entry is now an error + new tests + test fixes
2015-06-30 19:46:30 +03:00
Pavel V. Talanov
d2592e4a2c
Companion objects have public visibility by default
...
#KT-7114 Fixed
2015-06-02 16:23:03 +03:00
Mikhail Glukhikh
3c7225e83a
An implementation of KT-7753: now enum constructors cannot be called explicitly.
...
Several tests are provided.
#KT-7753 Fixed.
2015-05-25 17:27:31 +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
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
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