Commit Graph

2799 Commits

Author SHA1 Message Date
Michael Bogdanov 7bbedd9685 Added platformStatic annotation 2014-09-09 16:26:15 +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 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
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 67aad53db7 Render 'defined in' in resolved call tests 2014-09-01 12:32:52 +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 6c63492355 KT-5308 Wrong ExplicitReceiverKind when access to IntRange.EMPTY
#KT-5308 Fixed
2014-09-01 12:32:49 +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 e7c285e0e0 Launch ResolvedCallsTest with kotlin library 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
Evgeny Gerashchenko 4e41673b75 Added check for duplicate source paths in all compiler workflows. 2014-08-29 17:49:10 +04:00
Evgeny Gerashchenko 3226093fa6 Fixed redeclaration from incremental compilation. Added workaround for JPS bug. 2014-08-29 16:31:29 +04:00
Michael Bogdanov 83eb983e08 KT-5699 VerifyError in inlines
#KT-5699 Fixed
2014-08-29 14:02:52 +04:00
Andrey Breslav d80907543f KT-5697 Duplicate Unit type
#KT-5697 Fixed
2014-08-29 12:51:07 +04:00
Alexander Udalov 2ea9a2cfc9 Generate annotations on enum entry constants in bytecode
#KT-5665 Fixed
2014-08-25 17:50:08 +04:00
Pavel V. Talanov db5303c019 Implement modules in IDE
IDE:
Rewrite AnalyzerFacade and implementations for JS and JVM to support creating separate analyzers for each module
Introduce ModuleInfo which is an intermediate entity between configuration (tests or idea modules) and ModuleDescriptor
Implement IdeaModuleInfos which represent IDEA modules, sdks and libraries
Add (somewhat thin) test checking their behaviour
Implement getModuleInfo() - utility to obtain IdeaModuleInfo for PsiElement
Drop Project.getLazyResolveSession() - not possible to obtain resolve session for the whole project any more
Adjust JavaResolveExtension accordingly
KotlinSignature Intention/Marker - make sure that analyzed element is cls element (he's not in resolve scope otherwise)

LightClasses:
Create separate package light classes for each module
Java code can only reference light class from the first module among it's dependencies
Duplicate jvm signature is only reported on package declarations inside one module

Injectors:
Receive GlobalSearchScope as paramer for VirtualFileFinder and JavaClassFinder
which allows to narrow analyzer scope

JDR:
Introduce ModuleClassResolver resolves java classes in correct java descriptor resolver (corresponding ModuleDescriptor)
Add test checking that java classes belong to correct module

Debugger:
Provide context to analyze files created by debugger in

Converter:
Postprocessor now needs a context to analyze resulting code in

JetPsiFactory:
Add verification that files created by psi factory are not analyzed without context (that is almost never a good idea)

Other:
Use new API in various tests, utilities, run configuration producers and builtin serializers
Various "TODO: (module refactoring)" which mark the unfinished parts
2014-08-22 22:58:54 +04:00
Andrey Breslav 1933e30905 Test data split between compiledJava tests and compiledKotlin tests
Basically, this commit splits test data from the from java-txt-kt to two pairs java-txt and kt-txt.
This commit leads to some duplication in test data.
This is temporary: in the platform types branch the test data for LoadJava tests will be changed dramatically, so duplication will go away
2014-08-21 12:22:22 +04:00
Denis Mekhanikov 1533c0e9f3 Support more than 32 default arguments
#KT-4675 Fixed
2014-08-20 20:47:34 +04:00
Evgeny Gerashchenko 184ddbc9e1 Removed passing incremental cache base dir via module script. 2014-08-20 13:46:29 +04:00
Alexander Udalov 99d4f97aef Fix access to top level delegated property from another property
#KT-5612 Fixed
2014-08-14 10:43:50 +04:00
Alexander Udalov 9e971ed2b9 Minor, add test on enum assignability to kotlin.Enum 2014-08-13 17:19:56 +04:00
Alexander Udalov 226bfe65f0 Don't make traits and annotations inherit from KObject
#KT-5609 Fixed
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
Alexander Udalov 9c00e1c94d Scripts: coerce result to the actual expression type
#KT-5622 Fixed
2014-08-13 17:19:53 +04:00
Alexander Udalov 844845c6e3 REPL: sanitize stack traces
Don't include our compiler's and preloader's internal code, reflection, native
methods etc. Also delete "substring" matching logic from tests
2014-08-13 15:42:10 +04:00
Alexander Udalov 6eb5567895 REPL: fix open parenthesis not triggering "incomplete"
Check if all of the syntax errors are at EOF, not that there's a single one.
In case of open parenthesis two syntax errors are reported for some reason
2014-08-13 15:13:25 +04:00
Alexander Udalov 4213ce318e REPL: don't fail on a callable reference
There should probably be a special kind of property, but at least it won't
throw an exception for now
2014-08-13 15:13:24 +04:00
Alexander Udalov 415fe7a5e6 Initial support for classes in scripts and REPL 2014-08-13 15:13:22 +04:00
Alexander Udalov c873806b54 Refactor "incomplete line" handling in REPL tests 2014-08-13 15:13:21 +04:00
Alexander Udalov c6dfa866cd Refactor REPL tests: use empty line instead of "null" 2014-08-13 15:13:19 +04:00
Alexander Udalov 9ae95c1e5c Generate codegen tests on scripts 2014-08-13 15:13:17 +04:00
Alexander Udalov a83d9a7dce CLI: introduce alias "-cp" for "-classpath" 2014-08-13 11:10:42 +04:00
Alexander Udalov b54d2ac0c5 CLI: don't fail on a wrong "-script" usage 2014-08-13 11:10:42 +04:00
Alexander Udalov 5a792ca11f CLI: output relative paths in diagnostic messages 2014-08-13 11:10:41 +04:00
Alexander Udalov 850fc25ee0 CLI: drop "-tags" argument
It was only used for the compiler inside the IDE, and there we already invoke a
special method which outputs HTML only
2014-08-13 11:10:41 +04:00
Alexander Udalov 97e57e3e3d CLI: change "-suppress warnings" option to "-nowarn"
Following the rule of the least surprise: this option is named "-nowarn" in
other JVM language compilers. Besides, having an option with an argument which
can take exactly one predefined value is sort of confusing
2014-08-13 11:10:40 +04:00