Svetlana Isakova
a53eae79b5
bug fixed: analyze arguments in FREE expression position
2013-09-03 19:56:20 +04:00
Svetlana Isakova
b5e6568726
bug fixed: do not substitute type parameters twice
...
through final argument check
2013-09-03 19:50:00 +04:00
Svetlana Isakova
7fabfd8771
test data fixed
...
temporary
when ambiguity inner calls are not completed
2013-09-03 13:09:18 +04:00
Svetlana Isakova
79c18f1c56
test data fixed
...
temporary
2013-09-03 13:09:17 +04:00
Svetlana Isakova
efda014109
test data fixed
...
ignore error types in resolving constraints for generic functions
'if' is resolved as special function
2013-09-03 13:09:17 +04:00
Svetlana Isakova
335e0d7d1b
test data fixed
...
can't implicitly convert to Unit any more in 'if'
as 'if' is resolved as special function call 'fun IF<T>(T, T)'
2013-09-03 13:09:17 +04:00
Svetlana Isakova
c739632c57
report 'ambiguity' on reference, not on the whole expression
...
as other type inference errors
2013-09-03 13:09:15 +04:00
Svetlana Isakova
0084b68176
analyze incomplete 'in' expression
2013-09-03 13:09:14 +04:00
Svetlana Isakova
a493125a75
refactoring: fixes after review
...
rename, removed unnecessary methods, improved test
2013-09-03 13:09:11 +04:00
Svetlana Isakova
928133b69b
small fixes after review
2013-09-03 13:09:10 +04:00
Svetlana Isakova
fd5a2056c1
analyze labeled function literals as usual ones
...
(specially as function literals, not as other expressions)
2013-09-03 13:09:10 +04:00
Svetlana Isakova
8f29968183
test data updated
...
arguments analyzed even if there's type inference error
2013-09-03 13:09:09 +04:00
Svetlana Isakova
30b0a72c6b
analyze all arguments with unknown expected type
...
in the beginning of call resolution process
2013-09-03 13:09:07 +04:00
Svetlana Isakova
756cb3759b
fixed: use function placeholder when there is no declared value parameter list
...
(not when there is no value parameters)
2013-09-03 13:09:06 +04:00
Svetlana Isakova
dc51a2d238
analyze a lot of expressions in independent of context (expected type) mode
2013-09-03 13:09:05 +04:00
Svetlana Isakova
6429239f3f
rewrote analyzing expression with type rhs
...
removed unnecessary temporary trace (and so extra 'getType' for left expression)
2013-09-03 13:09:03 +04:00
Svetlana Isakova
7b04755a59
through completion phase result type of call should be updated
...
with respect to being selector in safe call expression
2013-09-03 13:09:02 +04:00
Svetlana Isakova
4621fe6dfa
resolve elvis operator as call
2013-09-03 13:09:02 +04:00
Svetlana Isakova
aba70e047d
resolve a!! as call
2013-09-02 23:18:46 +04:00
Svetlana Isakova
46cb6b3242
complete resolve for array access expression
2013-09-02 23:18:45 +04:00
Svetlana Isakova
e2f681c587
report type mismatch deeply on branches for if
...
in type argument inference case
2013-09-02 23:18:45 +04:00
Svetlana Isakova
99bb6f13b5
data flow info for arg may affect next argument's type for type argument inference case
2013-09-02 23:18:45 +04:00
Svetlana Isakova
27cff93ed8
use data flow info in constraint system
...
intersect data flow value possible types
add intersection type (or exact type for the most cases) as a lower bound to constraint system
always get common super type for intersection type as a result
(avoid returning it, even in error messages)
2013-09-02 23:18:45 +04:00
Svetlana Isakova
0609f61ee7
added test for nontrivial nested calls
2013-09-02 23:18:44 +04:00
Svetlana Isakova
0849798af0
report only 'The value is out of range'
...
not 'An integer literal does not conform to the expected type Int/Long'
2013-09-02 23:18:44 +04:00
Svetlana Isakova
f2746b835e
report ERROR_COMPILE_TIME_VALUE for constants instead of TYPE_MISMATCH
...
(functionality returned)
2013-09-02 23:18:44 +04:00
Svetlana Isakova
fccfa0051e
added DoubleValueTypeConstructor
...
no need to store exact value in IntegerValueTypeConstructor, it was removed
2013-09-02 23:18:43 +04:00
Svetlana Isakova
80eb45b793
process number value types properly in constraint system
...
the case when type parameter has number value types (constants) as lower bounds
should be handled specially, because upper bound for primitive number types is 'Number',
but by default we want Int (or Long)
2013-09-02 23:18:43 +04:00
Svetlana Isakova
0eed0c6c7f
extracted 'getResultingCall' method
...
rewrote 'getResultingType' in terms of it
2013-09-02 23:18:43 +04:00
Svetlana Isakova
2eadd5202d
check argument types through complete phase
...
with right data flow info
2013-09-02 23:18:42 +04:00
Mohammad Shamsi
32c34a3740
KT-3893 Fixed
...
- Added modifier check for parameters in constructors.
- Added modifier check for parameters in functions.
- Added modifier check for parameters in try/catch
2013-08-29 22:08:26 +08:00
Andrey Breslav
6cee65d74e
A test for nesting implicitly labeled calls
...
The actual error message should be "return not allowed", but due to a bug in label resolution it is "unresolved reference"
2013-08-22 17:13:08 +04:00
Andrey Breslav
55eb994502
KT-3919 Automatic labeling of lambdas by receiving functions
...
#KT-3919 Fixed
2013-08-22 14:27:01 +04:00
Andrey Breslav
a51ea10f55
No need to produce error types when RETURN_NOT_ALLOWED_EXPLICIT_RETURN_TYPE_REQUIRED is reported
2013-08-21 20:12:05 +04:00
Andrey Breslav
3f3ee378f3
Test that local return has type Nothing
2013-08-21 20:12:05 +04:00
Andrey Breslav
08625a6b2f
Local returns are only allowed with explicitly specified return types
...
This is a temporary limitation: otherwise type inference is having trouble to account for all the returned expressions.
We will fix the inference and remove the limitation
2013-08-21 20:12:04 +04:00
Andrey Breslav
4138ac4e36
Support local returns in lambdas
2013-08-21 20:12:04 +04:00
Andrey Breslav
db70087573
Labels on function literal arguments are processed properly
2013-08-21 20:12:04 +04:00
Andrey Breslav
9f90fd0938
No "unreachable code" errors when an illegal return expression is the last in a lambda
2013-08-21 20:12:04 +04:00
Andrey Breslav
3d28c4cdb2
Passing DataFlowInfo to local classes/objects
...
#KT-2835 In Progress
#KT-2225 In Progress
#KT-338 In Progress
2013-08-19 19:05:21 +04:00
Andrey Breslav
4908766813
Passing DataFlowInfo when analyzing property initializers
...
#KT-2835 In Progress
#KT-2225 In Progress
#KT-338 In Progress
2013-08-19 19:05:21 +04:00
Andrey Breslav
63c284e200
Passing DataFlowInfo to local classes/objects
...
#KT-2835 In Progress
#KT-2225 In Progress
#KT-338 In Progress
2013-08-19 19:05:20 +04:00
Natalia.Ukhorskaya
e11f130278
'annotation' keyword should be allowed only on classes
...
#KT-2785 Fixed
2013-07-25 17:00:10 +04:00
Natalia.Ukhorskaya
73000ec407
Change error message for nullable annotation member
2013-07-25 13:25:02 +04:00
Svetlana Isakova
539756ff3e
KT-3772 Invoke and overload resolution ambiguity
...
#KT-3772 Fixed
2013-07-16 20:33:08 +04:00
Evgeny Gerashchenko
5c8f87658a
Made SAM adapters final.
2013-07-12 21:09:22 +04:00
Andrey Breslav
8d65613eed
Create <out Any?> projections for raw Java types, not <*>
...
KT-3760 Internal compiler error with Java interoperability and ElasticSearch 0.90.2 (IllegalStateException, Type parameter descriptor in not initialized: T declared in ...)
#KT-3760 Fixed
EA-44150 Type parameter descriptor in not initialized. Fixed
2013-07-10 08:28:47 +04:00
Svetlana Isakova
d3e6d2d6cd
do not need to check stand-alone class object for class,
...
when it's on the left hand side of dot it is analyzed in 'getIdForImplicitReceiver' (test added)
2013-07-05 18:03:52 +04:00
Svetlana Isakova
cf5c5dba3d
KT-3189 Function invoke is called with no reason
...
prioritize tasks specially for invoke
#KT-3189 Fixed
#KT-3190 Fixed
#KT-3297 Fixed
2013-07-05 18:03:51 +04:00
Natalia.Ukhorskaya
33ddd713b7
Check annotation constructor parameter types
2013-07-04 14:37:29 +04:00