Commit Graph

17127 Commits

Author SHA1 Message Date
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
Mikhael Bogdanov 95a47e56f7 InlineExposed usages are changed to PublishedApi 2016-12-09 11:55:14 +01:00
Alexey Andreev a2d45153ba JS: prohibit dynamic on RHS of in and !in operators (see KT-6579) 2016-12-09 12:03:52 +03:00
Alexey Andreev fc6eaa015f JS: prohibit using more than one argument in indexed access with dynamic receiver (see KT-6580) 2016-12-09 12:03:51 +03:00
Mikhael Bogdanov 627dd66ed5 New ieee754 arithmetic, Fix for KT-14651: Floating point comparisons shall operate according to IEEE754 2016-12-09 09:48:46 +01:00
Mikhael Bogdanov f9b40585cd Partial fix for KT-14989: Missed null check for platform type 2016-12-09 09:46:38 +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 830d2f6603 Do not fail when deserializing incompatible metadata
Catch all exceptions when deserializing metadata with an incompatible version
to prevent the compiler from failing on discovering incompatible classes on the
classpath. Note that this is not the perfect solution: any invariant may be
broken in the incompatible metadata and it may result in a later exception
2016-12-09 01:59:36 +03:00
Alexander Udalov 789483e1eb Remove old mechanism of metadata version error reporting 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 d204fa91cc Use "-Xskip-metadata-version-check" to load pre-release classes 2016-12-09 01:59:35 +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
Alexander Udalov 1342743001 Add KotlinVersion.IS_PRE_RELEASE and a flag to kotlin/Metadata 2016-12-09 01:59:33 +03:00
Ilya Gorbunov d60fc7d9a8 Introduce ClosedComparableRange interface which inherits ClosedRange to provide special comparison operation for double and float. 2016-12-08 20:50:11 +03:00
Ilya Gorbunov 5765031209 Adjust Range.contains optimization for double and float ranges according to #KT-4481
#KT-5044 #KT-4481
2016-12-08 20:47:27 +03:00
Ilya Gorbunov d91f3cba0b Add additional invariant to check in Range.contains optimization tests.
Change expectations for double and float ranges according to #KT-4481
 #KT-5044 #KT-4481

Custom 'rangeTo' might be unoptimized, but still 'in' should not diverge from 'contains'.
2016-12-08 20:47:25 +03:00
Ilya Gorbunov e4ab3f3b93 Fix rendered descriptors in test data after enhancing signatures. 2016-12-08 20:34:59 +03:00
Ilya Gorbunov 459c5fed8c Tweak checks and type parameter heuristics in LazyJavaClassDescriptor.getPurelyImplementedSupertype to support cases of UnaryOperator and BinaryOperator enhancements. 2016-12-08 20:34:55 +03:00
Ilya Gorbunov c66b3b8ef9 Nullability for java.lang.ref.Reference.get 2016-12-08 20:22:17 +03:00
Ilya Gorbunov 84a7e3c032 Add tests for enhanced java signatures based on AbstractResolvedCallsTest.
Refactor AbstractResolvedCallsTest to support multiple carets (multiple methods being tested  for resolve) in testdata file.
2016-12-08 20:22:17 +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 abca774422 Support external modifier on classes in descriptor renderer. Regenerate test data. 2016-12-08 15:41:44 +03:00
Alexey Andreev dadffebe97 Support external modifier in descriptor renderer. Update test data. 2016-12-08 15:41:43 +03:00
Alexey Andreev 7e37d5d6fa Prohibit external modifiers on classes and properties in JVM target 2016-12-08 15:41:42 +03:00
Alexey Andreev d0ffb5bd32 JS: add restrictions to external modifier according to KT-13893 2016-12-08 15:41:42 +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 7a6b510ddb Include external modifier to serialized descriptors for classes and properties 2016-12-08 15:41:40 +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 68412ae94f JS: replace all usages of @native annotation with external modifier, in tests, stdlib, etc 2016-12-08 15:41:39 +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
Alexander Udalov 3b18531b20 Add expectedVersion to IncompatibleVersionErrorData, move to deserialization 2016-12-07 21:46:36 +03:00
Alexander Udalov c811c1bea5 Reflection: add KAnnotatedElement.findAnnotation
#KT-12250 Fixed
2016-12-07 21:45:24 +03:00
Alexander Udalov 414daef001 Rename KotlinVersion->KotlinCompilerVersion, move to module util.runtime
Rename to avoid confusion with the recently added kotlin.KotlinVersion
2016-12-07 21:11:15 +03:00
Alexander Udalov 751f546a70 Fix compilation of module android-tests 2016-12-07 21:11:14 +03:00
Denis Zharkov dd392963ac Minor. Rename SyntheticExtensionFunctions -> SyntheticMemberFunctions 2016-12-07 21:04:57 +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 a4adfb43d4 Minor. Refine substitution for SAM adapters
Introduce CompositionTypeSubstitution instead of manual composition of
two substitutions.

This change is necessary for the later changes where original substitution
will be able to contain outer type parameters

 #KT-11128 In Progress
2016-12-07 21:04:39 +03:00
Denis Zharkov 83056c71c9 Minor. Extract FlatSignature factory 2016-12-07 21:04:08 +03:00
Denis Zharkov c45edaa420 Minor. Extract CandidatesCollector as a type alias 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 57ee8c878c Regenerate tests 2016-12-06 08:56:45 +03:00