Commit Graph

10518 Commits

Author SHA1 Message Date
Dmitriy Novozhilov 9f4abd8ff7 [FE 1.0] Fix diagnostic message rendering for OVERRIDE_DEPRECATION 2021-09-07 14:11:45 +03:00
Dmitry Savvinov d6cb96aa24 Wire proper KotlinTypeRefiner into ClassicTypeSystemCotextForCS
^KT-48589 Fixed
2021-09-06 12:06:26 +03:00
Mikhail Glukhikh b8c3b34886 FE 1.0: don't spread OptIn markers to children #KT-48570 Fixed 2021-09-03 15:40:45 +03:00
Mikhail Glukhikh 17590b7114 Disable OptInOnOverrideFordidden feature #KT-48535 Fixed 2021-09-03 15:40:44 +03:00
Dmitriy Novozhilov d46e2dd749 Fix OVERRIDE_DEPRECATION warnings in project code 2021-09-02 15:04:07 +03:00
Dmitriy Novozhilov 69c3831865 Rename Deprecation to DeprecationInfo 2021-09-02 15:04:07 +03:00
Dmitriy Novozhilov ef9ad5af51 [FE 1.0] Report warning on non-deprecated overrides of deprecated members
Also don't propagate deprecation status to overrides after 1.7

^KT-47902 Fixed
2021-09-02 15:04:07 +03:00
Dmitriy Novozhilov 762d225bd7 Unify Deprecation classes from :core:compiler.common and :compiler:frontend modules 2021-09-02 15:04:06 +03:00
Dmitriy Novozhilov 1e0878cde0 [FE 1.0] Postpone SafeCallsAreAlwaysNullable till 1.7
^KT-46860 Fixed
2021-09-02 13:34:27 +03:00
Denis.Zharkov d91155558b Rename LF: DefinitelyNotNullTypeParameters -> DefinitelyNonNullableTypes 2021-08-31 15:41:17 +03:00
Denis.Zharkov 0e7d51b04d Prohibit using definitely-non-nullable types as arguments for reified parameters
^KT-26245 In Progress
2021-08-31 15:41:16 +03:00
Denis.Zharkov c1b5d5551f Drop support for T!! syntactic structure
^KT-26245 In Progress
2021-08-31 15:41:13 +03:00
Denis.Zharkov 302eacbf59 Support new form of definitely non-nullable types: T & Any
^KT-26245 In Progress
2021-08-31 15:41:11 +03:00
Denis.Zharkov cdd8d1c163 Add AND (&) token 2021-08-31 15:41:09 +03:00
Mark Punzalan 34e6459014 FIR: Ensure that the array set argument (on RHS of =) is always mapped
to the last parameter of the set operator function, even if there are
missing or too many index arguments.
2021-08-31 14:52:28 +03:00
Mikhail Glukhikh 153ca8675f Fail fast in case of invalidation in getContributedClassifier
Related to IDE problems like descriptor not found
2021-08-31 00:25:38 +03:00
Denis.Zharkov 019001ca20 Optimize memory footprint related to empty/single element collections
^KT-47926 Related
2021-08-30 16:51:55 +03:00
Ilmir Usmanov 92fac304e7 Forbid @Synchronized annotation on suspend functions
and lambdas. With warning for now.
 #KT-27333
2021-08-30 13:47:34 +02:00
Ilmir Usmanov 1f8dd45c2b Remove experimental coroutines support. Part 2 2021-08-30 14:21:57 +03:00
Dmitriy Novozhilov 7e6e0a3dd6 Remove all type system-specific inheritors of TypeCheckerState 2021-08-26 10:08:51 +03:00
Dmitriy Novozhilov e07512a847 Delegate refineType and prepareType in TypeCheckerState to special services
This is needed to add ability to create type system independent TypeCheckerState
2021-08-26 10:08:51 +03:00
Dmitriy Novozhilov 8b5548df49 Rename AbstractTypeCheckerContext to TypeCheckerState 2021-08-26 10:08:51 +03:00
ov7a 5ddf0cc7b2 JVM Cli: Proper Main-class manifest attribute for JvmStatic entry point.
`findMainClass` could handle main entry point from object and companion
object, not just top-level function.

Fixes [KT-32376](https://youtrack.jetbrains.com/issue/KT-32376).
2021-08-25 23:38:51 +02:00
Alexander Udalov 4f29c113b7 Remove KotlinCompilerVersion.IS_PRE_RELEASE
Now, milestones of major Kotlin releases (e.g. 1.6.0-M1) will NOT
generate prerelease binaries anymore.

The reason for that is it's proven to be quite a complicated process to
turn on IR_PRE_RELEASE after the release is branched, perform double
bootstrap and fix tests, and then do it again in reverse just before
release. With the new release cadence, we don't have that much time to
do it and verify that everything works as intended.

Note that this only removes the "global" prerelease flag. Compiler will
still generate prerelease binaries if a non-stable language version is
used. For example, Kotlin 1.6.0-M1 with `-language-version 1.7` will
generate prerelease binaries.
2021-08-24 16:23:42 +02:00
Mikhail Glukhikh 12726bde15 Deprecate smart cast on alien derived property #KT-48101 Fixed 2021-08-24 12:32:30 +03:00
Mikhail Glukhikh bbb76aae3f Provide more precise check for ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED
#KT-47542 Fixed
2021-08-24 12:32:30 +03:00
Steven Schäfer 5059513106 jvm-abi-gen: Strip inline functions in private classes
Inline functions in private classes can only be accessed from Java and
we do not need to preserve their bodies for the abi.
2021-08-23 18:25:33 +02:00
Steven Schäfer 3ffe495346 jvm-abi-gen: Mark all anonymous objects in inline function scope as public
Anonymous objects inside of a private inline function nested in a public
inline function can still escape.
2021-08-23 18:25:33 +02:00
Steven Schäfer de9d2919a8 JVM Metadata: Add a bit to mark anonymous objects in inline functions
Anonymous objects in the scope of an inline functions are copied to
all call-sites. This makes them part of the public ABI of a Kotlin
library.

We introduce a flag to mark all classes in the scope of an inline
function. When compiling with assertions enabled, we check that
this flag is set whenever we inline an anonymous object from another
module.
2021-08-23 18:25:33 +02:00
Dmitriy Novozhilov 40614507d3 [FE 1.0] Report warning about new IL operator resolve in initializers and default values
^KT-48361 Fixed
2021-08-23 16:20:41 +03:00
Mikhail Glukhikh 255eb87375 Provide more clear API around AnnotationChecker.applicableTargetSet 2021-08-23 14:18:38 +03:00
Mikhail Glukhikh 7b0e5927cb Report EXPERIMENTAL_ANNOTATION_ON_WRONG_TARGET without explicit @Target
#KT-48349 Fixed
2021-08-23 14:18:34 +03:00
Andrey Zinovyev 3fee87a0f3 [FIR] Add ENUM_JVM_RECORD diagnostic 2021-08-23 10:33:20 +00:00
Andrey Zinovyev c8381e9b0f [FIR] Add NON_FINAL_JVM_RECORD diagnostic 2021-08-23 10:33:20 +00:00
Victor Petukhov a1519b7b4e Be able to infer a type variable based on several builder inference lambdas
^KT-48329 Fixed
2021-08-20 01:28:12 +03:00
Victor Petukhov 261a04b587 Rename "coroutine( inference) *" stuff into "builder inference *" 2021-08-20 01:28:05 +03:00
Jinseong Jeon 5819959cce Consolidate arrayOf call names 2021-08-18 16:04:36 +03:00
Andrey Zinovyev 1cd321a90f [FIR] Add INAPPLICABLE_OPERATOR_MODIFIER diagnostic 2021-08-18 16:03:01 +03:00
Ivan Kochurkin 301f446433 Restore KtModifierKeywordToken instead of String in modifier diagnostics
Remove KeywordType
2021-08-18 00:45:57 +03:00
Ilmir Usmanov 486c6b3c15 Remove obsolete experimental coroutines support
in compiler.
2021-08-13 22:31:30 +02:00
Ivan Kochurkin f2ffead881 Reduce allocations in KotlinTarget and modifier checkers 2021-08-13 18:32:29 +03:00
Ivan Kochurkin e85940a1ac Unbind modifiers checks from psi
Use common code in FE and FIR in modifier checker, refactor
2021-08-13 18:32:26 +03:00
Tianyu Geng 1679da45ab FIR checker: COMMA_IN_WHEN_CONDITION_WITHOUT_ARGUMENT
FIR simply ignores anything after the first comma if the when expression
doesn't have a subject. Hence, the checker has to rely on PSI structure
instead.
2021-08-12 18:42:26 +03:00
Tianyu Geng bcf6202863 FIR checker: fix position strategy for UNRESOLVED_LABEL 2021-08-10 19:36:04 +03:00
Alexander Udalov 89b3013294 Build: enable Werror for all compileJava tasks 2021-08-06 22:37:00 +02:00
Tianyu Geng 684ef871ee FIR: unify common special names scattered around the code base 2021-08-06 22:57:17 +03:00
Victor Petukhov cd09c8ba51 Report CANNOT_INFER_PARAMETER_TYPE on any error value parameters of a lambda
^KT-48058 Fixed
2021-08-06 13:27:57 +03:00
Victor Petukhov 1966915e92 Create DONT_CARE type only for dependent lambdas (i.e. to be resolved through the type inference later)
^KT-47493 Fixed
2021-08-06 13:27:56 +03:00
Dmitriy Novozhilov 8578f0beea [FE 1.0] Check for type mismatch for empty when statements
^KT-47922 Fixed
2021-08-04 19:33:45 +03:00
Victor Petukhov b6cb393796 Check postponed type variables to determine suitability for builder inference (during shouldRunCompletion check) more careful
^KT-42139 Fixed
2021-08-04 17:36:53 +03:00