Denis Zharkov
365ff593f3
Extract and normalize member scope calculation
...
Basically it's wrong to use original types' member scope
as a worker for SubstitutionScope.
Member scope should always be determined by type constructor's default one
and substitution/arguments
#KT-10448 Fixed
2015-12-28 07:44:56 +03:00
Denis Zharkov
58caff3411
Minor. Add tests checking not-null assertions
...
More precisely these tests check cases when expected type
was somehow obtained from captured type (in member scope with projections)
2015-12-28 07:44:56 +03:00
Denis Zharkov
7aaa6422b4
Introduce CustomSubstitutionCapability.substitutionToComposeWith
...
Mainly it's needed to prevent creation of subsituions composition
everytime we replacing arguments, because it's both unoptimal and wrong
When replace arguments in `A<E, F>` with <String, E> you got `A<String, String>`
as a result, that is unexpected.
But composition is only needed when previous substituion was abnormal
(e.g. RawSubsitution that should actually wrap new arguments), see RawTypes tests
2015-12-28 07:44:55 +03:00
Denis Zharkov
8d0a90a838
Preserve type capabilities of captured type
2015-12-28 07:44:55 +03:00
Denis Zharkov
e7dbcfe21f
Minor. Cleanup code
2015-12-28 07:44:54 +03:00
Denis Zharkov
555286849e
Minor. Move declaration closer to usages and optimize imports
2015-12-28 07:44:54 +03:00
Denis Zharkov
48b89a5db7
Replace unchecked 'is' on local class with unchecked 'as'
...
It became unchecked after latest changes (see parent commit)
2015-12-28 07:44:54 +03:00
Denis Zharkov
3fd35636ad
Fix type parameter list for local classes
...
Add captured parameters from enclosing functions
#KT-9584 Fixed
2015-12-28 07:44:53 +03:00
Denis Zharkov
73b961e885
Clean project code after #KT-3996 fix
...
No overload resolution ambiguity in smart-casts
2015-12-28 07:44:53 +03:00
Mikhail Glukhikh
0cc09872b6
Implicit exhaustive when annotation / highlighting
2015-12-26 10:46:44 +03:00
Mikhail Glukhikh
7d6ccc40c2
Implicit exhaustive whens now have exception in else branch #KT-8700 Fixed
2015-12-26 10:46:39 +03:00
Mikhail Glukhikh
011a9f23b9
Implicit exhaustive when check for definite variable initialization (KT-8700)
2015-12-26 10:46:35 +03:00
Mikhail Glukhikh
52c3fb03a2
ControlFlowInfo introduced to store variable states, related refactoring
2015-12-26 10:46:30 +03:00
Mikhail Glukhikh
0f3997c6ca
InitState / VariableUseState / VariableControlFlowState moved to a separate file
2015-12-26 10:46:25 +03:00
Mikhail Glukhikh
4c4456c808
PseudocodeVariablesData converted to Kotlin
2015-12-26 10:46:20 +03:00
Mikhail Glukhikh
7179b37d95
PseudocodeVariablesData.java --> PseudocodeVariablesData.kt
2015-12-26 10:46:16 +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
d62d7dd84f
Introduced binding context storage for implicit exhaustive when (KT-8700)
2015-12-26 10:46:06 +03:00
Mikhail Glukhikh
b805ce06c2
CFG exhaustive when else instruction for KT-8700
2015-12-26 10:46:01 +03:00
Alexander Udalov
697228eae0
Mark enum entry names as name ids for incremental compilation purposes
2015-12-25 20:16:18 +03:00
Alexander Udalov
3513a64351
Move utilities about companion property fields to JvmAbi
...
To reuse that logic in reflection
2015-12-25 20:16:18 +03:00
Alexander Udalov
0685f06200
Drop outdated stuff from metadata annotations
...
Make KotlinLocalClass and KotlinInterfaceDefaultImpls not retained at runtime,
to be maybe deleted in the future
2015-12-25 20:16:18 +03:00
Alexander Udalov
0ecf04dcc5
Drop KotlinDelegatedMethod, simplify related code in codegen
2015-12-25 20:16:18 +03:00
Alexander Udalov
39c10867a0
Drop 'index' JVM binary format extension
...
Compute the JVM parameer index manually instead
2015-12-25 20:16:18 +03:00
Alexander Udalov
8dc604ac8b
Drop compatibility flag, suppressing optimized generation of callable references
2015-12-25 20:16:18 +03:00
Alexander Udalov
64b48f4458
Drop compatibility flag, suppressing optimized generation of delegated property metadata
2015-12-25 20:16:18 +03:00
Alexander Udalov
002dc92d89
Drop old antlib.xml in org/jetbrains/jet/buildtools/ant
...
Use the new one in org/jetbrains/kotlin/ant instead
2015-12-25 20:16:18 +03:00
Alexander Udalov
dc6a176282
Drop old JVM binary format extensions: static in outer, impl class name
2015-12-25 20:16:18 +03:00
Alexander Udalov
fc74759231
Drop old enum entries from binary format
2015-12-25 20:16:18 +03:00
Alexander Udalov
57b96f38a9
Minor, remove/simplify unnecessary utilities in util.runtime
2015-12-25 20:16:18 +03:00
Alexander Udalov
b4addd0567
Move builtins-related logic from DeserializedPackageFragment to BuiltinsPackageFragment
2015-12-25 20:16:18 +03:00
Alexander Udalov
e7da56baf4
Restructure code in BuiltInsSerializer
2015-12-25 20:16:18 +03:00
Alexander Udalov
ddcdc11099
Write and read built-ins binary version
2015-12-25 20:16:18 +03:00
Alexander Udalov
906d706961
Deserialize builtins from new message
2015-12-25 20:16:18 +03:00
Alexander Udalov
7592f31596
Serialize built-ins to separate file .kotlin_builtins
2015-12-25 20:16:18 +03:00
Alexander Udalov
07a23cab10
Minor, make SerializedResourcePaths an interface
2015-12-25 20:16:18 +03:00
Alexander Udalov
75f046fa81
Drop Throwable#printStackTrace, make it a JVM-specific extension
2015-12-25 20:16:18 +03:00
Stanislav Erokhin
3d44471659
KT-10483 Missing smart cast on variable in variable as function call
...
#KT-10483 Fixed
2015-12-25 20:13:08 +03:00
Alexey Sedunov
4de26bed93
Minor: Add test for now-obsolete KT-8035 "Extended class is not open" quickfix fails on nested classes "
2015-12-25 18:51:03 +03:00
Alexey Sedunov
c90d283ff5
Quick Fixes: Implement 'Add val/var to primary constructor parameter' quick-fix for data classes
...
#KT-4038 Fixed
2015-12-25 18:50:59 +03:00
Alexey Sedunov
6978d842fb
Intentions: Implement 'Add val/var to primary constructor parameter' intention
...
#KT-4038 In Progress
2015-12-25 18:50:55 +03:00
Alexey Sedunov
5dcf531048
Formatter: Leave single space between val/var and value parameter
2015-12-25 18:50:52 +03:00
Alexey Sedunov
2895e2e86f
Change Signature: Process implicit usages of data class 'componentN' functions
...
#KT-9393 Fixed
2015-12-25 18:50:48 +03:00
Alexey Sedunov
4fba251fba
Intentions: 'Implement abstract member' (Kotlin -> Java)
...
#KT-8467 Fixed
2015-12-25 18:50:41 +03:00
Alexey Sedunov
03641ffbee
Intentions: 'Implement abstract member' (Kotlin -> Kotlin)
...
#KT-8467 In Progress
2015-12-25 18:50:37 +03:00
Alexey Sedunov
123b813073
'Replace with infix call' Intention: Disable on calls without explicit receiver
...
#KT-6332 Fixed
2015-12-25 18:50:34 +03:00
Alexey Sedunov
ae636a0d32
Iterate Intention: Add support of destructuring declarations
2015-12-25 18:50:30 +03:00
Alexey Sedunov
1d3054e7a6
Iterate Intention: Filter out functions without 'operator' modifier
2015-12-25 18:50:27 +03:00
Alexey Sedunov
1c74bab1cc
Iterate Intention: Fix detection of extension iterators
...
#KT-8616 Fixed
2015-12-25 18:50:23 +03:00
Alexey Sedunov
ee9389d089
Create from Usage: Strip first parameter of extension function when expected type is non-extension
2015-12-25 18:50:19 +03:00