Commit Graph

4315 Commits

Author SHA1 Message Date
Michael Bogdanov a735d67e86 Check noinline annotation on non-local return processing 2014-09-16 15:33:14 +04:00
Michael Bogdanov b763aa9995 Added platform static checker with provider implementation 2014-09-16 14:38:15 +04:00
Alexander Udalov f39c3041d2 Make MISSING_VAL_ON_ANNOTATION_PARAMETER error instead of warning
Annotation with a parameter that is not stored doesn't make any sense
2014-09-15 19:30:52 +04:00
Alexander Udalov 13eeb18219 Delete "idea.properties"
Apparently it was committed by mistake and never used since then
2014-09-15 19:30:49 +04:00
Andrey Breslav f1cf446e10 KT-5773 Smart cast doesn't work with Nothing on the rhs of "?:"
#KT-5773 FIxed
2014-09-15 18:24:13 +04:00
Pavel V. Talanov 88b262faf1 Make test source module a friend of production source module 2014-09-12 13:08:31 +04:00
Alexander Udalov 937404239e Minor, delete unused method in DataFlowInfo 2014-09-11 17:56:27 +04:00
Nikolay Krasko b6abd6442a Don't try to search for component function if asked completely different function 2014-09-11 12:52:57 +04:00
Nikolay Krasko c3f44d5030 Refactoring: create DataClassUtils and move all "component" function utils there 2014-09-11 12:52:57 +04:00
Nikolay Krasko 65d358a066 Don't generate component function in lazy resolve for parameter if it has no val/var 2014-09-11 12:52:56 +04:00
Nikolay Krasko caee19cdc7 Generate copy() in data class even if constructor is empty or not present 2014-09-11 12:52:55 +04:00
Zalim Bashorov 48de3b706d Frontend: added the support file annotations to LazyTopDownAnalyzer. 2014-09-10 22:39:12 +04:00
Zalim Bashorov 6d0bcf8b32 Frontend: added the support file annotations to TopDownAnalyzer. 2014-09-10 22:39:12 +04:00
Zalim Bashorov 486b6be32c Minor in Parser: "attribute" -> "annotation" 2014-09-10 22:39:11 +04:00
Zalim Bashorov fb97b1df93 Minor in Parser: drop obsolete code. 2014-09-10 22:39:11 +04:00
Zalim Bashorov 3c60d0de93 Parser: added the support file annotations. 2014-09-10 22:39:11 +04:00
Alexey Sedunov b59da7686c Pseudocode: Fix type predicate inference for values used inside of lambda 2014-09-10 16:44:47 +04:00
Alexey Sedunov 7a15a88288 Minor: Change signature 2014-09-10 16:44:44 +04:00
Alexander Udalov 4d212be31f Refactor QualifiedExpressionResolver
- fix return types everywhere: Collection<DeclarationDescriptor> instead of
  Collection<? extends DeclarationDescriptor>
- delete useless LookupResult.EMPTY and merge LookupResult with
  SuccessfulLookupResult
- reformat, minor inlines, etc.
2014-09-09 20:42:38 +04:00
Alexander Udalov 5b1993f62a Resolve "values" and "valueOf" in enum class object
Import enum class's static scope into its class object's member scope
2014-09-09 20:42:38 +04:00
Alexander Udalov c5345a83c9 Minor, reuse existing method 2014-09-09 20:42:37 +04:00
Alexander Udalov 476dc78c16 Refine getClassObjectDescriptor()'s type
This reverts commit db3e5ed678.
2014-09-09 20:42:37 +04:00
Alexander Udalov b52f337f7f Drop enum class object hack
Place valueOf() and values() into the static scope of the corresponding enum
class

 #KT-5580 Fixed
 #KT-2410 Fixed
2014-09-09 20:42:37 +04:00
Alexander Udalov 8ccca1781d Support static class scope in frontend, JVM codegen and IDE 2014-09-09 20:42:36 +04:00
Alexander Udalov cb81023469 Minor, fix warnings and formatting in QualifiedExpressionResolver 2014-09-09 20:42:36 +04:00
Alexander Udalov 75df4a9ad8 Introduce ClassDescriptor#getStaticScope()
Will be used to exterminate hacks related to static Java methods in our
codebase: synthetic class object for enum, synthetic package for static members
of Java classes, etc.
2014-09-09 20:42:35 +04:00
Alexey Sedunov e274af7be8 Pseudocode: Filter out nulls before combining type predicates
#KT-5732 Fixed
2014-09-08 17:48:47 +04:00
Michael Nedzelsky 6e728852d0 add BindingUtilsPackage.isUnreachableCode 2014-09-08 11:30:12 +04:00
Svetlana Isakova f5feb3bf33 Fixed: label copies should be added to all labels 2014-09-07 01:04:01 +04:00
Svetlana Isakova 976d5ab030 Pseudocode: don't write full label name when jump on it 2014-09-07 01:04:00 +04:00
Svetlana Isakova 3a9b7bbade Improved error message for 'nested class should be qualified' 2014-09-07 01:04:00 +04:00
Svetlana Isakova 91b0ad2023 Removed 'implicit this' from scope for member lookup 2014-09-07 01:03:59 +04:00
Svetlana Isakova 067ac5c94a Fixed one part of 'Resolution error of this type shouldn't occur for...'
Result for "IF<T>(T, T)" can be "hasUnknownParameters"
if both arguments have types 'uninferred type parameter' (incomplete resolve case),
no constraints are added to the system.
2014-09-07 01:03:58 +04:00
Svetlana Isakova 61dc110cc7 Report 'break or continue outside a loop'
for break/continue outside a loop body (e.g. in loop condition)

 #KT-5724 Fixed
2014-09-07 01:03:57 +04:00
Svetlana Isakova 0b4f313b6d Jump on 'continue' to condition entry points for all loops 2014-09-05 18:31:53 +04:00
Michael Nedzelsky 25a0854dbd fix KT-5645: 'continue' inside 'do...while' statement works as goto to the beginning of the loop (not checking loop condition)
#KT-5645 Fixed
2014-09-05 18:31:53 +04:00
Svetlana Isakova 3d7c22f242 Added exact label names for labels 2014-09-05 18:31:53 +04:00
Alexey Sedunov f11621615b Pseudocode: Do not generate VALUE_CONSUMER if property delegate has no value (EA-59276) 2014-09-05 17:39:54 +04:00
Valentin Kipyatkov 24bd6ec7de Moved too specific function out of ExpressionTypingUtils (and refactored it) 2014-09-03 15:43:25 +04:00
Valentin Kipyatkov 855cc2443f KT-4976 Completion ignores smart casts
#KT-4976 Fixed
 #KT-5718 Fixed
2014-09-03 15:43:25 +04:00
Nikolay Krasko 932bd57cf9 Minor: small code rearrangement 2014-09-02 14:41:46 +04:00
Svetlana Isakova 17c3eeb7bd Added error 'NESTED_CLASS_SHOULD_BE_QUALIFIED'
when nested class is resolved through implicit this
2014-09-01 12:32:54 +04:00
Svetlana Isakova 132c292d32 Don't check class object visibility when it's in qualifier position
(visibility for member is checked anyway).
It might be better to underline invisible qualifier in a chain (class or class object), not the last one (member) - for later improvement.
2014-09-01 12:32:54 +04:00
Svetlana Isakova 3767187027 Refactoring: extracted 'BindingContext.getDataFlowInfo' 2014-09-01 12:32:53 +04:00
Svetlana Isakova 0b9c62ab54 Extracted util function 'recordScopeAndDataFlowInfo' 2014-09-01 12:32:53 +04:00
Svetlana Isakova 7f9ecc50c2 Use EXPRESSION_DATA_FLOW_INFO instead of NON_DEFAULT_EXPRESSION_DATA_FLOW 2014-09-01 12:32:53 +04:00
Svetlana Isakova 4e8f10b8ab Refactoring: extracted interface Qualifier (that is not a ReceiverValue) 2014-09-01 12:32:53 +04:00
Svetlana Isakova bc3f6e200a Refactoring in PositioningStrategies
Rename: NAME_IDENTIFIER -> DECLARATION_NAME
NAMED_ELEMENT -> DECLARATION_SIGNATURE
DECLARATION, DECLARATION_OR_DEFAULT (merged) -> DECLARATION_SIGNATURE_OR_DEFAULT
2014-09-01 12:32:53 +04:00
Svetlana Isakova bbeb44e6ee Fixed NPE in ArgumentMatchImpl.getStatus
Check value arguments if there is wrong number of type arguments
2014-09-01 12:32:52 +04:00
Svetlana Isakova 9d366cb896 Prohibit local objects and enum classes
#KT-5402 Fixed
  #KT-4838 Fixed

Resolve type of object inside local object as special, not supertype('Any').
Changed visibility of constructor of anonymous object to 'internal' to be able to resolve the following:
fun box(): String {
    var foo = object {
        val bar = object {
            val baz = "ok"
        }
    }
    return foo.bar.baz
}
The containing declaration of property initializers is constructor, so 'baz' was invisible inside private constructor.
2014-09-01 12:32:52 +04:00