Commit Graph

7894 Commits

Author SHA1 Message Date
Dmitry Petrov e2b6d2d849 Drop 'propertyDelegated' convention (without additional deprecation ceremony). 2016-12-12 23:13:58 +03:00
Dmitry Petrov 5ddf8e60e6 Use delegate initializer expression resolution scope for 'toDelegateFor' resolution. 2016-12-12 23:13:57 +03:00
Dmitry Petrov 2ee31916c7 'createDelegate' operator renamed to 'toDelegateFor' 2016-12-12 23:13:55 +03:00
Dmitry Petrov e2ba288323 'createDelegate' operator convention:
- resolution & inference
- additional diagnostic for language feature support
2016-12-12 23:13:54 +03:00
Dmitry Petrov 558e8aaebb DelegatedPropertyResolver: convert to Kotlin & cleanup. 2016-12-12 23:13:52 +03:00
Dmitry Petrov 85276c27f0 DelegatedPropertyResolver: .java --> .kt 2016-12-12 23:13:51 +03:00
Dmitry Jemerov 48513c7b1d Better diagnostics for "no resolver for module descriptor" situation (EA-72838 - ISE: EmptyResolverForProject.resolverForModuleDescriptor) 2016-12-12 17:50:26 +01:00
Dmitry Jemerov 7f02c67fbf Avoid NPE while calculating assertion message (EA-92384 - NPE: KtElementImpl.getContainingKtFile) 2016-12-12 17:50:19 +01:00
Roman Elizarov 8affb2726f Pluggable Synthetic Objects 2016-12-12 18:43:26 +03:00
Dmitry Jemerov 13b8494373 Remove unnecessary cyclic dependency between KtStubElementTypes and KtNodeTypes
#KT-15074 Fixed
2016-12-12 16:26:58 +01:00
Yan Zhulanow cbef0250aa Allow to turn the first parameter of a SAM-converted lambda into the receiver (KT-12848) 2016-12-09 20:01:21 +03:00
Yan Zhulanow e626b121ad NoArg: Add compiler plugin 2016-12-09 20:01:10 +03:00
Yan Zhulanow f57df272ac Allopen: Handle allopen annotations on classes (KT-12149) 2016-12-09 20:00:56 +03:00
Mikhail Zarechenskiy 7a0e44b8f9 Resolve '%' as 'mod' when LV=1.0 2016-12-09 17:01:41 +03:00
Mikhail Zarechenskiy bc4a492f4d Resolve for rem/modAssign and mod/remAssign
rem/remAssign always wins if it is possible
2016-12-09 17:00:27 +03:00
Mikhail Zarechenskiy 5f71f1bcad Add warnings at declaration and call sites of operator 'mod' 2016-12-09 16:59:24 +03:00
Mikhail Zarechenskiy 97ca51381a Gradual migration of operator 'mod' to 'rem'
- Introduce new 'rem' operator convention
 - Prefer 'rem()' to 'mod()' when both are available, even if mod() is a
   member, and rem() -- an extension
 - Place operator 'rem' under the language feature
2016-12-09 16:43:35 +03:00
Mikhael Bogdanov f4259c5f82 Added deprecation for protected call within inline functions 2016-12-09 11:55:16 +01:00
Mikhael Bogdanov 7af327c567 Added 'checkPublishedApi' to effective visibility checker 2016-12-09 11:55:15 +01:00
Mikhael Bogdanov 038065e827 Updated NON_PUBLIC_CALL_FROM_PUBLIC_INLINE diagnostic to support @PublishedApi 2016-12-09 11:55:15 +01:00
Mikhael Bogdanov 7ea29d3397 Wrong @PublishedApi usage diagnostic 2016-12-09 11:55:15 +01:00
Alexander Udalov 513ebb9729 Suggest to use "-Xskip-metadata-version-check" on incompatible classes in classpath 2016-12-09 01:59:36 +03:00
Alexander Udalov b943ed26f3 Report incompatible metadata version error correctly
Similarly to pre-release classes, load metadata for the class anyway and allow
the resolution to select it as the result and prohibit its usage in the end
with the special diagnostic reported in MissingDependencyClassChecker
2016-12-09 01:59:36 +03:00
Alexander Udalov 7de0cfde16 Report error on pre-release top level members 2016-12-09 01:59:34 +03:00
Alexander Udalov 11f975fe89 Add classifier usage checker for missing dependency classes
This has no effect for the original use case of mock class descriptors
(unresolved classes used in libraries), but is necessary for pre-release
classes in case the compiler is a release, because such classes end up in scope
and can be the result of the resolution
2016-12-09 01:59:33 +03:00
Alexander Udalov 4e99349f1f Write "pre-release" flag to class files, do not allow usages in release 2016-12-09 01:59:33 +03:00
Alexey Sedunov 215d8b1e1a Intentions: Convert function type receiver to parameter
#KT-14246 Fixed
2016-12-08 17:56:57 +03:00
Alexey Sedunov d4ed2d2022 Intentions: Convert function type parameter to receiver
#KT-14246 In Progress
2016-12-08 17:56:55 +03:00
Alexey Andreev 1ebf81c3ff Don't report about unused parameters on external functions and constructors 2016-12-08 15:41:41 +03:00
Alexey Andreev a7ce770cb4 Don't report error for properties and functions without body that either external by themselves or are members of external classes 2016-12-08 15:41:40 +03:00
Alexey Andreev 0c2da93e5f Allow external modifier on classes and properties 2016-12-08 15:41:38 +03:00
Alexey Andreev ba2443bcb3 Add external property to class and property descriptors 2016-12-08 15:41:38 +03:00
Alexander Udalov d5c75ae764 Minor refactoring in frontend/resolution
Fix typos, formatting, diagnostic message
2016-12-08 12:20:37 +03:00
Alexander Udalov 228d0a1c43 Move "missing dependency class" diagnostic from JVM to common front-end 2016-12-07 21:46:37 +03:00
Denis Zharkov 891a036b59 Change resolution priority level for SAM adapters
After this change SAM adapters are being resolved in the same group
as members, thus their overload resolution happens simultaneously.

But in the case of overload resolution ambiguity try to filter out all
synthetic members and run the process again.

See the issue and new test for clarification

 #KT-11128 In Progress
2016-12-07 21:04:44 +03:00
Denis Zharkov 83056c71c9 Minor. Extract FlatSignature factory 2016-12-07 21:04:08 +03:00
Nikolay Krasko 45532e480f Remove repeating contexts in CompositeBindingContext creation 2016-12-07 17:32:38 +03:00
Mikhail Zarechenskiy 160d43fe2e Introduce new feature: division by zero in constant expressions 2016-12-02 17:42:56 +03:00
Mikhail Glukhikh 729a3a34b8 Cleanup: remove empty primary constructor applied 2016-12-02 13:38:47 +03:00
Mikhail Glukhikh f71ea8858b Cleanup: remove empty constructor body applied 2016-12-02 13:38:42 +03:00
Mikhail Glukhikh 96ae881c16 Cleanup: join declaration & assignment applied 2016-12-02 13:38:32 +03:00
Dmitry Petrov e63abff7e8 Recognize possible generic property call chain ('a.b<T>.c') on '::' LHS. 2016-12-02 10:20:05 +03:00
Mikhail Glukhikh 468e975580 KT-12100 related: convert try / finally to use() call inspection introduced 2016-12-01 20:38:52 +03:00
Mikhail Zarechenskiy 25c3b43858 Support Infinity and NaN in constant evaluator
This allows to store infinities and NaNs inside const vals
2016-12-01 16:08:53 +03:00
Denis Zharkov b8e1ce7a05 Report error on non-tail suspend-calls
It only concerns calls inside another suspend function

 #KT-14924 In Progress
2016-12-01 10:11:37 +03:00
Denis Zharkov aa50f1d824 Report error when suspend call is illegal in the scope
Namely when it's not contained inside coroutine or another suspend function

 #KT-14924 In Progress
2016-12-01 10:11:37 +03:00
Mikhail Zarechenskiy 240d82d167 Move reified type parameter checker to additional checkers to able turn it off by demand 2016-12-01 10:06:38 +03:00
Ilya Chernikov 4e6e3a3403 Check for script file validity on cache changes, fixes #EA-90318, #EA-87672 2016-11-30 13:09:21 +01:00
Ilya Chernikov 0e7413b5b1 Generalizing error handling when working with (potentially 3rd-party) script templates, fixing #EA-91412 and alike 2016-11-30 13:09:20 +01:00
Alexey Sedunov 740f769487 Rename: Fix renaming of .kts file to .kt and vice versa
#KT-14814 Fixed
2016-11-30 14:35:34 +03:00