Commit Graph

17099 Commits

Author SHA1 Message Date
Andrey Breslav 839d986f44 KT-385 type inference does not work properly
KT-109 Good code is red: type arguments are not inferred
KT-441 Exception in type inference when multiple overloads accepting an integer literal are accessible
2011-11-10 20:55:12 +03:00
Pavel Talanov 8e147b26a7 Added default getter/setter support and initializer support. 2011-11-10 21:29:50 +04:00
Andrey Breslav 1e3f2889a4 KT-336 Can't infer type parameter for ArrayList in a generic function (Exception in type inference)
KT-335 Type inference fails on Collections.sort
2011-11-10 19:44:59 +03:00
Stepan Koltsov a4b62868fa KT-424 also check overloads in namespaces 2011-11-10 20:00:34 +04:00
Stepan Koltsov 31b049893f fix wrong test (unnecessary overload) 2011-11-10 20:00:26 +04:00
Stepan Koltsov d155de2bdc better diagnostics for KT-424
highlight full function definition, not only function name
2011-11-10 20:00:19 +04:00
Stepan Koltsov 5218246d80 KT-424: Check declarations for overload-compatibility
===
fun a() {}
fun a() {}
===

must be an error.
2011-11-10 20:00:15 +04:00
svtk 89b4faa6fe started work on "unused value" analysis 2011-11-10 19:42:53 +04:00
Stepan Koltsov 5fbf684998 continue work on KT-458
70b7810c30 fixed parser

this commit fixes typer
2011-11-10 19:07:51 +04:00
Stepan Koltsov 70b7810c30 KT-458 Need to improve quoted identifiers support
class `$$$`

should not fail
2011-11-10 16:50:23 +04:00
Stepan Koltsov ea9b67c5cd regenerate grammar 2011-11-10 16:27:25 +04:00
Stepan Koltsov 44b631cdd0 enhancements in character constant parsing
* missing assertion converted to ErrorValue
* added test for 'a
* '\' must be error (KT-461)
2011-11-10 16:16:31 +04:00
Andrey Breslav dda5759643 More tests for KT-451 Incorrect character literals cause assertion failures 2011-11-10 15:42:14 +03:00
Stepan Koltsov c8e2e06d59 missing test for KT-451 incorrect character liternals assertion error 2011-11-10 15:13:08 +04:00
Stepan Koltsov 763be2af9e fix comment: it is not automatically generated 2011-11-10 15:09:11 +04:00
Stepan Koltsov cd2dab3e53 KT-451 Incorrect character literals cause assertion failures
''
'21'
2011-11-10 15:05:07 +04:00
Andrey Breslav c03a256353 Merge remote branch 'origin/master' 2011-11-10 14:51:54 +03:00
Andrey Breslav 2c2c6ea099 Clarifying comments added 2011-11-10 14:51:41 +03:00
Pavel Talanov fe54dc78e8 Added a test for extractor. 2011-11-10 14:15:30 +04:00
Pavel Talanov f4b18c277f Added DeclarationExtractor logic. 2011-11-10 14:06:15 +04:00
svtk 7ef0debbc7 Merge remote-tracking branch 'origin/master' 2011-11-10 14:00:40 +04:00
svtk 1b8e5a4a11 Added return type check for non-local return (despite it is prohibited yet) 2011-11-10 14:00:32 +04:00
Stepan Koltsov abec6933cf KT-499 allow class object in static inner classes
like this:

===
class A {
    class object {
        class B {
            class object { }
        }
    }
}
===
2011-11-10 12:59:29 +04:00
Andrey Breslav a28716af1d Constant propagation guarded by the class jet.Number where the properties are defined.
NOTE: currently, local extension properties are not allowed, but they may be allowed in future versions, and the old propagation would break
2011-11-09 22:29:48 +03:00
Andrey Breslav c6f6f182b6 KT-353 Generic type argument inference sometimes doesn't work
KT-459 Type argument inference fails when class names are fully qualified
2011-11-09 22:15:37 +03:00
Andrey Breslav 8ab1f1b420 KT-287 Infer constructor type arguments
More test data
2011-11-09 21:51:01 +03:00
Andrey Breslav 0c492ae0eb KT-287 Infer constructor type arguments 2011-11-09 21:48:36 +03:00
Andrey Breslav a24e448973 Simplistic type inference:
KT-258 Support equality constraints in type inference
KT-399 Type argument inference not implemented for CALL_EXPRESSION
2011-11-09 19:52:05 +03:00
Pavel Talanov da1a1a3727 Added simple method call support. 2011-11-09 20:29:51 +04:00
Andrey Breslav 787d3aa450 New type checking algorithm is used for subtyping constraint generation 2011-11-09 18:54:23 +03:00
Pavel Talanov f3d8b2c3b1 Added constructor calls. Working on method logic. 2011-11-09 19:12:10 +04:00
Pavel Talanov b514c180b4 Added string constant support. 2011-11-09 18:39:29 +04:00
Pavel Talanov 681100c4bc Added while/do while support 2011-11-09 18:18:29 +04:00
Andrey Breslav d4ea1d42c8 CommonSupertypes factored out
equalTypes() moved to TypeUtils
Lower bounds (stub implementation) introduced to type parameters
2011-11-09 16:56:05 +03:00
Andrey Breslav 0a2ad80234 Unused parameter removed 2011-11-09 16:53:33 +03:00
Pavel Talanov d9d8a40d5c Added if else support 2011-11-09 17:38:05 +04:00
svtk 0356bd98ec KT-411 Wrong type expected when returning from a function literal 2011-11-09 16:43:29 +04:00
Pavel Talanov 6654405efc Fixed JDK hack 2011-11-09 16:36:40 +04:00
Pavel Talanov 1bf6efce87 Added test files and the infamous jet/Library.jet 2011-11-09 16:34:32 +04:00
Pavel Talanov c811814037 Finished reorganising project structure. 2011-11-09 16:32:49 +04:00
Stepan Koltsov 099725da7f KT-449 class object in inner class must be an error
===
class A {
  class B {
    class object { }
  }
}
===
2011-11-09 16:26:12 +04:00
Stepan Koltsov a6898c7c64 simplify KT-249
for KT-449
2011-11-09 16:26:12 +04:00
Andrey Breslav df79fa2f3d Type checking procedure simplified (dramatically!) 2011-11-09 15:22:35 +03:00
Andrey Breslav a4768eda98 TypeInfo should be covariant. Consider the common case in Java when something wants, say, an annotation class. They write Class<? extends Annotation>. We can write just TypeInfo<Annotation> 2011-11-09 15:22:35 +03:00
Pavel Talanov 42a252c6a9 split code into modules and lots of other code changes 2011-11-09 16:11:18 +04:00
Sergey Ignatov fdf18e85fc IdentifierImpl fixed 2011-11-09 16:04:57 +04:00
Sergey Ignatov d4b35bc27f EQEQ added as a token type 2011-11-09 16:04:57 +04:00
Sergey Ignatov 1bc527cd92 supported two cases for constructor calling 2011-11-09 16:04:57 +04:00
Sergey Ignatov 54265da366 improved quoting for identifier added 2011-11-09 16:04:57 +04:00
Sergey Ignatov 846ac36fab cleanup 2011-11-09 16:04:57 +04:00