Asumu Takikawa
00a4494ba7
Allow duplicate type names if they have the same type
...
original commit: cc61f0639ec433061d491ba7bf1023cccaf2020f
2014-02-20 16:50:24 -05:00
Asumu Takikawa
97cd75165d
Add "multiple inheritance" for class types
...
original commit: f84cf996c36a78a43a13827411a7d498c6cabf05
2014-02-20 16:50:24 -05:00
Asumu Takikawa
9ca8361ced
Don't add super-type inits into type with #:extends
...
original commit: 4543204e859cddfa6abacd52ff725ceb6dca6ee6
2014-02-20 16:50:24 -05:00
Asumu Takikawa
defa74d44a
Support private fields
...
original commit: bbd5d97a230bf8bab1d4bf3e5d88a606b86e637e
2014-02-20 16:50:23 -05:00
Asumu Takikawa
a2250fad43
Add super calls
...
(also removed bogus super-new init test)
original commit: 45599812128b2d5b1f52db91b792ffeec5c8ad40
2014-02-20 16:50:23 -05:00
Asumu Takikawa
07206b7f17
Don't make mandatory super inits mandatory for super-new
...
original commit: ba70851ba0dd7f812dd5f10dee36b2008e74f103
2014-02-20 16:50:23 -05:00
Asumu Takikawa
d7f6d81607
Fix type-checking for fields with this
...
original commit: f82a49be7dbf6e0abb5598179e85a5a06cb0cf2b
2014-02-20 16:50:23 -05:00
Asumu Takikawa
5dd26e30dc
Fix subtyping for fields
...
original commit: 6b5875a1f1c4250a996e461609682d22ba428194
2014-02-20 16:50:23 -05:00
Asumu Takikawa
9d5a2d5f36
Make keyword methods type-check
...
Note: send does not work with keyword methods yet
original commit: 5da60f70673cd997b746b2fc437f9f8a055216dd
2014-02-20 16:50:23 -05:00
Asumu Takikawa
88af42a16a
Add support for inherited methods
...
original commit: 4e5d0846baec22d8b23bc34a86c61881d8b36ca0
2014-02-20 16:50:23 -05:00
Asumu Takikawa
d04f0b6727
Attempt better error message for bad method type case
...
original commit: 30e3c498867dcd6b188157321b4ae7c5491329f2
2014-02-20 16:50:23 -05:00
Asumu Takikawa
d113733ab8
Better support for class top-level behavior
...
original commit: 0d5a775a62eb6dae2dba92012f49f9467685a4b1
2014-02-20 16:50:23 -05:00
Asumu Takikawa
ddf31e527e
Allow top-level expressions to refer to inits
...
original commit: b9a175eed277138f9f4216b2f4694a3e27b7d7bb
2014-02-20 16:50:23 -05:00
Asumu Takikawa
290abc0333
Cleanup FIXME comments
...
original commit: 384e1392bd985c7f376f54df9a24374a40532e35
2014-02-20 16:50:23 -05:00
Asumu Takikawa
9e17db7f38
Improve super-new
handling.
...
Now `super-new` calls are type-checked with the right
context so that init arguments can be passed as arguments.
In addition, the `super-new` checking was factored out into
three functions.
original commit: 6f86c66199bde3989a0b603b7386baa58167247d
2014-02-20 16:50:23 -05:00
Asumu Takikawa
25b1b3f648
Fix optional argument check that was broken
...
original commit: 44f9b87f02480b3e805b9891f3e31d49c7a3f410
2014-02-20 16:50:23 -05:00
Asumu Takikawa
e8575dbe9a
Make init defaults work correctly as well
...
original commit: 14eeab934c521c36c71ed4628d897a2a31f09c6e
2014-02-20 16:50:23 -05:00
Asumu Takikawa
daccd31c15
Get init-field working in most cases
...
original commit: aa830a346123fdc092a4bceddfaf0276ab6e096c
2014-02-20 16:50:23 -05:00
Asumu Takikawa
94535805cd
Type-check field initialization
...
Also fixed local accessors when internal names are used that
are different from external names.
original commit: 267a37134ef164f7d8bd9e3ffe6006ab16cf4bf2
2014-02-20 16:50:23 -05:00
Asumu Takikawa
15e21bb39f
Factor out class expansion parsing
...
This commit prepares the code for more interesting parsing
of the initializer body (for expansion-introduced top-level
expressions for example) and faster parsing of methods and
other things in a single pass.
original commit: 6ce16e15380197f4cee9f44ca7ad42a34acc2c81
2014-02-20 16:50:23 -05:00
Asumu Takikawa
3ad23f8986
Fix non-expected case with inits/fields missing annotations
...
Also fix bogus test cases and the bug that hid them
original commit: 599beeae522f63a2007b3f17346ea7d91feeeca3
2014-02-20 16:50:23 -05:00
Asumu Takikawa
e942e91fb5
Check more clause presence/absence appropriately
...
original commit: f188d7f1030d4d48abe3d5d6cc2759403808084d
2014-02-20 16:50:22 -05:00
Asumu Takikawa
7bf90d1894
Rule out multiple super-new
...
original commit: f010a9ce71384a8412988ce60ea266e5fd3e8fa2
2014-02-20 16:50:22 -05:00
Asumu Takikawa
87f9ad8c18
Add support for private methods
...
original commit: 0ef255916dbc5fb663ebd5cf975e46a45d027088
2014-02-20 16:50:22 -05:00
Asumu Takikawa
aaf40266d1
Fix bug that triggers due to missing super-new
...
original commit: ab8513f48d8ae490e0ed9bd4c1ea34240c4de74e
2014-02-20 16:50:22 -05:00
Asumu Takikawa
4aa3c2a639
Make sure super inits that are provided don't count
...
original commit: c009948627fea6555a91e37e5d76c8370d0df13f
2014-02-20 16:50:22 -05:00
Asumu Takikawa
6fd920cee9
Make sure superclass mandatory inits are provided
...
original commit: b1627984e258df8f23d1295ec554fe0d5b128ea5
2014-02-20 16:50:22 -05:00
Asumu Takikawa
a91d41a453
Fix inheritance without expected type
...
original commit: c16a3b2350530c1858dacb8d1b7ea70fc42f1081
2014-02-20 16:50:22 -05:00
Asumu Takikawa
e54413e95a
Set init arguments as optional correctly
...
original commit: d8a303983024a416be66b69f060270d2b39d4bb5
2014-02-20 16:50:22 -05:00
Asumu Takikawa
f4c8fd57e0
Make internal/external names work
...
original commit: f895e3156f26d01a5c62c18d675514204440f9ff
2014-02-20 16:50:22 -05:00
Asumu Takikawa
21b9774043
Better class types when no expected type given
...
original commit: ae2866e8ca7eb1c7822bb71518bd5db9adc95dfa
2014-02-20 16:50:22 -05:00
Asumu Takikawa
06c9398293
Fix top-level use of classes
...
original commit: 2ae1f5a602f843f9c854de9809916a60ff767cc5
2014-02-20 16:50:22 -05:00
Asumu Takikawa
59a5c57f42
Type-check class top-level expressions
...
original commit: dc35a8cd4db8f2a0cf9424aac50aad7960eb1074
2014-02-20 16:50:22 -05:00
Asumu Takikawa
4356293a59
Support tc-expr and not just tc-expr/check
...
Note: the type is too conservative in some cases with
tc-expr (if you leave : annotations out). This should
be fixed in the future.
original commit: 6a43fac5c27d46f1bb456e861f55c4b2dddca455
2014-02-20 16:50:22 -05:00
Asumu Takikawa
2ee160cc8c
Add infrastructure for private methods
...
They don't actually work yet, because I don't yet know
how to assign them types for when they're called locally.
Probably requires the two pass approach for locals.
original commit: 709f3c66960fc08b77a7978c7c64ddb3e27b4c45
2014-02-20 16:50:22 -05:00
Asumu Takikawa
d1ae0dc0e9
Add support for local field access
...
original commit: 6c0e82f15bc1dda5b984d4ddf21c41de9eb80315
2014-02-20 16:50:22 -05:00
Asumu Takikawa
28096a6385
Add support for override
...
original commit: 931556264e4fea7c1c3e5f289aade11e511c60d4
2014-02-20 16:50:22 -05:00
Asumu Takikawa
f028ab23b3
Check super-new
calls
...
Still need to use this information to adjust the class
type init clauses
original commit: 060aaa8b26c05ca8800db0d3444b5f4c4a09bf4f
2014-02-20 16:50:21 -05:00
Asumu Takikawa
f058d684b6
Add unit tests for classes
...
original commit: 77847de94436dcaf8389236d14251110fa7c138a
2014-02-20 16:50:21 -05:00
Asumu Takikawa
bc07b8b140
Initial work on type-checking class expressions
...
Add a `class:` macro that adds instrumentation for
the type-checker. Also add type-checking for the
expansion of that macro.
original commit: 244135a96e8c6e98e6a77052813b53d4f284443f
2014-02-20 16:50:21 -05:00
Asumu Takikawa
744c8593d6
Clean up object init and add support for get-field
...
original commit: 684fabde1bdfa92279c413ab612f2771db2f2f9e
2014-02-20 16:50:21 -05:00
Asumu Takikawa
68518c74fc
Add new Class type representation
...
This commit introduces a new Class type representation
and adds initial support for parsing the new types.
Existing uses of Class types are adjusted to compile.
original commit: 72c991c1de2ad964657883422d18cea3f6429eb2
2014-02-20 16:50:21 -05:00
Asumu Takikawa
ecc82246af
Make TR's for/hash
form more flexible
...
original commit: d35fb82f4a583a6b27164ecd92fd8d52c0dd72db
2014-02-20 14:13:41 -05:00
Asumu Takikawa
9a4ee81604
Add TR case-lambda with optional type annotations
...
original commit: 58a3d12f0c1e27b2ea45bcb1c8ee1243825d28b1
2014-02-20 13:54:32 -05:00
Asumu Takikawa
4216d01b2d
TR: move helper syntax classes to helper file
...
original commit: ed98404aafea1f9d0142dabdba73dcf7f16dda73
2014-02-20 12:05:11 -05:00
Asumu Takikawa
f57a8f5e96
Add test for PR 13937
...
The actual bug was already fixed by enabling multi-valued
sequence syntax in TR `for` loop forms.
Closes PR 13937
original commit: 8d4b3ee396a645a828594b7b9afdcaf7e5676ccd
2014-02-20 00:06:45 -05:00
Asumu Takikawa
9ee89f821d
Document legacy forms with a : suffix
...
Also don't export internal macros
original commit: a17e4578404b7eb243e1b7dbfb749b1df6e44215
2014-02-19 21:20:48 -05:00
Asumu Takikawa
43060c8d37
Revise TR Reference for new :-less forms
...
original commit: 768d04fa975097097af18d2fae1be108cbf3abbe
2014-02-19 16:40:40 -05:00
Asumu Takikawa
4f2bd7180f
Provide :-less versions of all for
forms.
...
Modify the forms as needed to accept non-annotated
bindings to match the untyped versions. Also fixes
bugs in syntax classes found along the way.
original commit: 37b09521ac3493ed45963aedacf7a263194aec1a
2014-02-19 16:40:40 -05:00
Asumu Takikawa
28cba9af4a
Accept polydots rest in TR lambda and define
...
Also accept type variables before formals in all cases
original commit: 35ef2f90ebef94c8f7c4e46fc43c03b6ce329a41
2014-02-19 16:40:40 -05:00