Commit Graph

55769 Commits

Author SHA1 Message Date
Alexander Gorshenev 76088cdf00 Bind WrappedVariableDescriptorWithAccessors in IR deserializer 2019-06-25 15:18:04 +03:00
Mikhail Zarechenskiy 48f25385ac [NI] Don't use old common supertype calculator in NI 2019-06-25 14:09:45 +03:00
Mikhail Zarechenskiy 60a0cf1fcc [NI] Fix exception: don't try to compute type depth on null type
#KT-32184 Fixed
2019-06-25 14:09:42 +03:00
Mikhail Zarechenskiy a26cf86af7 [NI] Fix exception: callable reference is used with an unresolved LHS
#KT-32187 Fixed
2019-06-25 14:09:38 +03:00
Mikhail Zarechenskiy bc0773b219 [NI] Capture receiver of invoke-based call
#KT-32133 Fixed
2019-06-25 14:09:34 +03:00
pyos 54d1df3147 JVM_IR: fix unbound function references 2019-06-25 12:29:23 +02:00
Nikolay Krasko 674badc692 Register mock injection language manager in compiler
In 192 it's important to have service registered since
https://github.com/JetBrains/intellij-community/commit/f204718c885034bc2fa4be4b281ff4bbd5fa4ef4

Caused by: java.lang.IllegalArgumentException: Argument for @NotNull parameter 'value' of com/intellij/openapi/util/UserDataHolderBase.putUserDataIfAbsent must not be null
	at com.intellij.openapi.util.UserDataHolderBase.$$$reportNull$$$0(UserDataHolderBase.java)
	at com.intellij.openapi.util.UserDataHolderBase.putUserDataIfAbsent(UserDataHolderBase.java)
	at com.intellij.openapi.util.NotNullLazyKey.getValue(NotNullLazyKey.java:41)
	at com.intellij.lang.injection.InjectedLanguageManager.getInstance(InjectedLanguageManager.java:41)
	at com.intellij.psi.impl.PsiCachedValue.isVeryPhysical(PsiCachedValue.java:74)
	at com.intellij.psi.impl.PsiCachedValue.anyChangeImpliesPsiCounterChange(PsiCachedValue.java:57)

Reproduced with Fir2IrTextTestGenerated
2019-06-25 11:49:00 +03:00
Nikolay Krasko ebcf306ecc Update proguard rules for 192 idea 2019-06-25 11:48:59 +03:00
Nikolay Krasko 5119979571 Fix compile warnings with 192.5118.30 in backward compatible way 2019-06-25 11:48:59 +03:00
Nikolay Krasko beb1bc09d4 Update to 192.5118.30 2019-06-25 11:48:59 +03:00
Nikolay Krasko 997d896557 Inline ORDER_ENTRY_TYPE_ATTR to fix compilation in 192 branch 2019-06-25 11:48:58 +03:00
Nikolay Krasko 96f0f444ad Remove dependency to IconLoader from compiler 2019-06-25 11:48:58 +03:00
Nikolay Krasko aa079376e7 Fix signing artifacts (KT-32192)
Broken in f1e3e26e6cd6e38b473ffe1a23b19b68ebb2d11f.

----
> Task :kotlin-reflect:signArchives FAILED
Build time for tasks:
Compiling kotlin: 1.44s (12.33% of total time)
Processing jars: 4.28s (36.75% of total time)
Uncategorized: 5.39s (46.26% of total time)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':kotlin-reflect:signArchives'.
> Duplicate key Signature kotlin-reflect:jar.asc:asc:
---

 #KT-32192 Fixed
2019-06-25 11:46:17 +03:00
Dmitry Gridin 2ef2c358c4 RedundantLetInspection: fix descriptions 2019-06-25 15:10:17 +07:00
Dmitry Gridin 7e0db3d612 ComplexRedundantLetInspection: fix highlight for multiple line receiver
#KT-31278 Fixed
2019-06-25 14:37:04 +07:00
Dmitry Gridin b97aaf0f71 Split ReplaceSingleLineLetInspection to SimpleRedundantLet & ComplexRedundantLet
Relates to #KT-32010
2019-06-25 14:37:04 +07:00
Dmitry Gridin 8e0bbe7d4a Convert ReplaceSingleLineLetIntention to inspection & decrease severity to INFORMATION
#KT-32010 Fixed
2019-06-25 14:37:04 +07:00
Dmitry Gridin ea76ea6fb8 Minor: cleanup ReplaceSingleLineLetIntention 2019-06-25 14:37:04 +07:00
Amaury bb0ee8ca0a Fix typo in jdksFinder.kt 2019-06-25 09:33:43 +02:00
Anton Yalyshev c8ad7b95cd small refactoring: hashSets are replaced by sets 2019-06-25 09:14:04 +03:00
Anton Yalyshev de02fcb626 it doesn't need to override second invoke(..) for FUS, as they both are called during refactoring 2019-06-25 09:14:04 +03:00
Anton Yalyshev 1acb89d760 added PullUp and PushDown cases to set of possible values for Refactorings collector 2019-06-25 09:14:04 +03:00
Anton Yalyshev 2adcb6d616 fixed a set of possible values for New File Templates collector 2019-06-25 09:14:03 +03:00
Anton Yalyshev edf467febf added lists of possible values for Evaluator collector 2019-06-25 09:14:03 +03:00
Anton Yalyshev 1a4a6bb0ff added lists of possible values for Refactoring, NewFileTemplate and NPWizards collectors 2019-06-25 09:14:03 +03:00
Anton Yalyshev eb5ab1cc52 added lists of possible values for buildSystemTarget collectors 2019-06-25 09:14:03 +03:00
Alexander Udalov edce35a643 Minor, remove obsolete coroutines-related code from mapBuiltInType 2019-06-24 19:15:17 +02:00
Alexander Udalov 10d1adca03 Minor, fix typo in kdoc in JavaToKotlinClassMap 2019-06-24 19:15:17 +02:00
Roman Artemev 97203973ac [JS IR BE] Fix coroutine context 2019-06-24 20:14:19 +03:00
Roman Artemev 544443f113 [JS IR BE] Initialize module dependencies in the correct order 2019-06-24 20:14:19 +03:00
Simon Ogorodnik 9d4fbf8cbd FIR: reuse scopeSession in call resolver & implicit typed ref resolution 2019-06-24 18:51:15 +03:00
Simon Ogorodnik bc7c822b74 FIR resolve: stop visiting receiver hierarchy during call completion 2019-06-24 18:51:14 +03:00
Mikhail Glukhikh 046c82ab60 FIR: remove unused utility function 2019-06-24 18:51:13 +03:00
Simon Ogorodnik 0e60af95bf Optimization: make every FIR node extend FirPureAbstractElement 2019-06-24 18:51:12 +03:00
Mikhail Glukhikh d41c50d6cf FIR: support type inference for assignments, fix related lambda inference 2019-06-24 18:51:03 +03:00
Mikhail Glukhikh 48cea4b800 FIR: take expected type into account during inference
NB: this commit provokes some inference problems,
which are fixed by next commit about type inference for assignments
2019-06-24 18:42:52 +03:00
Mikhail Glukhikh 1e1f4d4472 ConeTypeContext: handle "recursive type alias" situation 2019-06-24 18:42:51 +03:00
Mikhail Glukhikh 152abbfb4c ConeTypeContext: handle star projection more correctly
See substitutionSupertypePolicy & testInnerTP in FIR smoke diagnostics
2019-06-24 18:42:29 +03:00
pyos 6a21285aed JVM_IR: do not generate two nullary constructors
when the primary constructor with @JvmOverloads has default values for
all arguments.
2019-06-24 14:58:45 +02:00
ghedeon 40957ad46a KT-17916: Import popup does not indicate deprecated classes 2019-06-24 16:49:33 +07:00
Dmitry Gridin 8c84f885ac Cleanup: apply RemoveRedundantQualifierNameInspection to idea 2019-06-24 15:56:33 +07:00
Dmitry Gridin f1e2ba728f RemoveRedundantQualifierNameInspection: fix case with non-static java functions 2019-06-24 15:56:30 +07:00
Dmitry Gridin 0b16c51baf RemoveRedundantQualifierNameInspection: fix false positive
#KT-32112 Fixed
2019-06-24 15:17:10 +07:00
Dmitry Gridin a170de2c56 RemoveRedundantQualifierNameInspection: support class literal expression
#KT-32046 Fixed
2019-06-24 15:17:09 +07:00
Dmitry Gridin b930c061a8 RemoveRedundantQualifierNameInspection: context should evaluated once for KtUserType 2019-06-24 15:17:09 +07:00
Mikhail Glukhikh ac730a693a FIR: don't count implicit built-in type as a kind of implicit type
Before this commit, implicit Unit type for function with body and
without type, implicit Boolean type for conditions etc. were 'implicit'
types and resolved types together.
Sometimes this could lead to hard-to-find issues in FIR resolve, because
'implicit' types are usually handled there as 'necessary to resolve'
which is wrong for such effectively-resolved types.
2019-06-24 10:13:26 +03:00
Toshiaki Kameyama 2efbc6e914 Explicit this inspection: fix false positive with subclass and extension
#KT-27550 Fixed
2019-06-24 09:34:08 +03:00
Jeffrey van Gogh 1dbe487077 Reduce compiler runtime overhead of MaxStackFrameSizeAndLocalsCalculator
Profiling the compilation of kotlinx.serialization, MaxStackFrameSizeAndLocalsCalculator
causes ~7% of the runtime to be spent in java.lang.Object.hashCode

This is through two uses:
- visitMaxs(..) has a pushed hashSet that causes ~2%
- labelWrappersMap used to attach additional data to asm Labels, causes ~ 5%

visitMaxs can use the existing SmartSet (not to be confused with SmartHashSet)

Analysis of the visitMaxs HashSet creation & sizes:

| What               | Amount |
| calls to visitMaxs | 4416   |
| max pushed	     | 158    |
| median pushed	     | 4      |
| average pushed     | 5.20   |
| stddev pushed	     | 7.66   |
| 90 percentile      | 10     |

Analysis of labelWrappersMap creation & sizes:

| What               | Amount |
| ------------------ | ------ |
| hashtables created | 4006   |
| max entries        | 175    |
| median entries     | 5      |
| average entries    | 6.10   |
| stdev entries      | 8.28   |
| 90 percentile      | 11     |

testing with a non hash based map using an array for keys and an array for values
showed that the cost of MaxStackFrameSizeAndLocalsCalculator became neglible to
the overall running time.

SmartIdentityTable is a Map like structure that uses reference identity for keys.
It uses 2 arrays to store keys & values until the number of entries stored is larger than 10.
At that point it switches to using an IdentityHashMap.

This structure can be used instead of HashMap when reference identity can be used and
the number of entries inserted is small (<= 10) on average, drastically reducing the overhead
of calls to Object.hashCode

Between the two changes, compilation of kotlinx.serialization through kotlinc
commandline decreased from 14 seconds to 11 seconds on my machine
2019-06-21 18:51:22 +02:00
Svyatoslav Kuzmich 0b19a4a32b [JS IR BE] Initial version of member namer 2019-06-21 17:02:01 +03:00
Svyatoslav Kuzmich 3e10de9cd1 [JS IR BE] Fixup property accessors 2019-06-21 17:02:01 +03:00