Commit Graph

971 Commits

Author SHA1 Message Date
Zalim Bashorov 30208d5532 Minor: drop semicolon in package declaration everywhere. 2014-09-16 19:32:37 +04:00
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
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
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
Andrey Breslav b8b0316d97 Reporting ACCIDENTAL_OVERRIDE on jvm signatures that have no descriptors
(marking them SYNTHETIC)
2014-09-10 17:35:54 +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 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 bcfb5f3b09 Rewrite Java resolve to use static class scope instead of synthesized packages
#KT-4149 Fixed
 #KT-4839 Fixed
2014-09-09 20:42:36 +04:00
Alexander Udalov 7ad88f7799 Minor, add test for obsolete issue
#KT-4021 Obsolete
2014-09-09 20:42:35 +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 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 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
Svetlana Isakova eaeed78154 Resolve type of anonymous object in local object as local 2014-09-01 12:32:51 +04:00
Svetlana Isakova f811b9541c Position error on 'class A' or 'object A' instead of name identifier only 2014-09-01 12:32:51 +04:00
Svetlana Isakova 6f4c152f53 Record reference to class object directly
not to containing class descriptor
2014-09-01 12:32:50 +04:00
Svetlana Isakova 7f33ad90a6 Report 'nested class accessed via instance reference' error 2014-09-01 12:32:50 +04:00
Svetlana Isakova 8289f13016 Introduced QualifierReceiver instead of PackageType 2014-09-01 12:32:49 +04:00
Svetlana Isakova 8f6f8331ac DelegationSpecifier resolve depends on expected type (supertype) 2014-09-01 12:32:48 +04:00
Svetlana Isakova e4e09d6c70 Resolve invoke on class objects and enum entries
Added FakeCallableDescriptorForObject to make a resolved call
with object as variable in 'variable as function call'

 #KT-4321 Fixed
 #KT-4863 Fixed
2014-09-01 12:32:48 +04:00
Andrey Breslav d80907543f KT-5697 Duplicate Unit type
#KT-5697 Fixed
2014-08-29 12:51:07 +04:00
Alexander Udalov 9e971ed2b9 Minor, add test on enum assignability to kotlin.Enum 2014-08-13 17:19:56 +04:00
Alexander Udalov 47d5f83d04 Report unmet trait requirements
#KT-3006 Fixed
2014-08-13 17:19:55 +04:00
Alexey Sedunov 311166737f Associate synthetic component function descriptors with corresponding
constructor parameters
2014-08-08 18:59:45 +04:00
Alexey Sedunov 9fee8600cb Pseudocode: Do not generate implicit return instruction inside of
Unit-typed lambdas
 #KT-5549 Fixed
2014-08-05 18:14:40 +04:00
Svetlana Isakova 2ae87cae4a Function literal expression outside the parentheses wrapped into JetFunctionLiteralArgument
Extracted JetFunctionLiteralArgument.moveInsideParenthesesAndReplaceWith util function
2014-07-30 17:14:00 +04:00
Svetlana Isakova 4477a96ca7 Resolve operation (unary, array access) on error element instead of ignoring it
(to record corresponding call for later simplification in control flow)
Generate code for unmapped arguments in control flow
2014-07-30 17:14:00 +04:00
Nikolay Krasko 61b70d287e Update to 138.1283.4 EAP 2014-07-29 16:28:36 +04:00
Denis Zharkov 76845a76b9 Fixed KT-4814: check type when a += b is a = a+b
In cases when a += b is a = a + b, check that (a+b) can be safely casted to a
2014-07-28 22:00:14 +04:00
Alexey Sedunov 9cbcabffa4 Control-Flow Analysis: Reuse pseudo-value information for unused expression analysis 2014-07-28 13:07:37 +04:00
Alexey Sedunov 77bbf8f73b Pseudocode: Generate fake values for Unit/Nothing-typed expressions 2014-07-28 13:07:29 +04:00
Alexander Udalov de0f751207 Replace object$ -> OBJECT$, instance$ -> INSTANCE$ in the project 2014-07-26 00:21:05 +04:00
Alexander Udalov a79398fa00 Don't load Object as a supertype for Java classes
#KT-4890 In Progress
 #KT-5002 Fixed
2014-07-25 21:19:37 +04:00
Svetlana Isakova 8c13a76805 KT-5527 Double TYPE_MISMATCH diagnostic when returns object
#KT-5527 Fixed
2014-07-25 21:17:31 +04:00
Zalim Bashorov c767ffc3e7 Unit.VALUE -> Unit in testData 2014-07-25 17:16:40 +04:00
Alexander Udalov 70adb0f4e2 Temporarily prohibit non-local returns for some stdlib functions
Make InlineUtil work with FQ names, not descriptors

 #KT-5496 Fixed
 #KT-5497 Fixed
2014-07-19 02:13:27 +04:00
Alexander Udalov a07909bb52 Don't generate unnecessary accessors for private class properties 2014-07-17 19:18:05 +04:00
Alexey Sedunov 1c75a5f642 Pseudocode: Generate instructions for superclass constructor calls. Consume value of delegate expression in the by-clause 2014-07-11 19:13:21 +04:00
Evgeny Gerashchenko 86d2565700 Added test for KT-4827 UOE at PackageType.throwException()
#KT-4827 obsolete
 #EA-53605 obsolete
2014-07-10 15:05:18 +04:00
Andrey Breslav e3b1639edf KT-5425 Kotlin plugin crashes when project uses RxJava 17.0 or older
#KT-5425 Fixed
2014-07-09 16:10:41 +04:00
Michael Bogdanov 6ddeb85c00 Added checking for ONLY_LOCAL_RETURN in actual parameter of inline function 2014-07-09 09:46:28 +04:00
Svetlana Isakova cec01237d0 Added test for labeled delegated expression 2014-07-08 14:57:40 +04:00
Svetlana Isakova 72e9822d99 All RESOLVED_CALL getters replaced with util methods
JetElement.getResolvedCall(BindingContext)
  JetElement.getResolvedCallForSure(BindingContext)
2014-07-08 14:57:37 +04:00
Svetlana Isakova b2c2e1811c Check 'isDirty' for resolved calls replaced with check 'hasUnresolvedArguments' for call
Don't report 'cannotCompleteResolve' error if some arguments are unresolved (like 'ambiguity')
2014-07-08 14:48:19 +04:00
Svetlana Isakova a3e306b820 Update recorded type for argument in parentheses correctly 2014-07-08 14:48:18 +04:00