UCSD-PL / refscript

Refinement Types for Scripting Languages
BSD 3-Clause "New" or "Revised" License
65 stars 3 forks source link

Constructor invariants #95

Closed panagosg7 closed 9 years ago

panagosg7 commented 9 years ago

See examples:

https://github.com/UCSD-PL/RefScript/blob/ctor_init_1/tests/pos/classes/ctor-03-00.ts https://github.com/UCSD-PL/RefScript/blob/ctor_init_1/tests/pos/classes/ctor-03-01.ts https://github.com/UCSD-PL/RefScript/blob/ctor_init_1/tests/pos/classes/ctor-04.ts

ranjitjhala commented 9 years ago

Nice!!!!

On Feb 10, 2015, at 4:46 PM, Panagiotis Vekris notifications@github.com wrote:

See examples:

https://github.com/UCSD-PL/RefScript/blob/ctor_init_1/tests/pos/classes/ctor-03-00.ts https://github.com/UCSD-PL/RefScript/blob/ctor_init_1/tests/pos/classes/ctor-03-01.ts https://github.com/UCSD-PL/RefScript/blob/ctor_init_1/tests/pos/classes/ctor-04.ts

You can view, comment on, or merge this pull request online at:

https://github.com/UCSD-PL/RefScript/pull/95

Commit Summary

Adding keyVal preds in object literals Merge branch 'master' of github.com:UCSD-PL/RefScript Adding ctor examples New initialization scheme in SSA Patching inherited field mutability New constructor scheme through TC Fixes in ctor checking Adding support for DotRef in LQ Minor change in DotRef TC Adding check for globs in refinements Restoring some ctor examples Many fixes in ctor, super, etc Fix in CallExpr Fix in refinement check Fix in 'addObjectFields' Fixes: adding keyVals at addObjectFields Fix in propagating field mutability Fixes in prelude Restoring some examples Fix in getting inst. member fields for ctor-exit Adding WF checks on field types Merge branch 'master' of github.com:UCSD-PL/RefScript into ctor_init_1 Fix in dotref File Changes

M TODO.md (68) M ext/tsc-bin/built/local/tsc.js (216) M include/prelude.ts (31) M src/Language/Nano/Errors.hs (6) M src/Language/Nano/Liquid/CGMonad.hs (205) M src/Language/Nano/Liquid/Liquid.hs (306) M src/Language/Nano/Liquid/Types.hs (52) M src/Language/Nano/SSA/SSA.hs (253) M src/Language/Nano/SSA/SSAMonad.hs (62) M src/Language/Nano/Typecheck/Lookup.hs (124) M src/Language/Nano/Typecheck/Resolve.hs (48) M src/Language/Nano/Typecheck/TCMonad.hs (3) M src/Language/Nano/Typecheck/Typecheck.hs (291) M src/Language/Nano/Typecheck/Types.hs (163) M src/Language/Nano/Types.hs (16) M src/Language/Nano/Visitor.hs (31) M tests/neg/classes/class-00.ts (9) M tests/neg/classes/class-01.ts (4) M tests/neg/classes/class-02.ts (2) M tests/neg/classes/class-05.ts (4) M tests/neg/classes/class-06.ts (17) D tests/neg/classes/class-07.ts (10) M tests/neg/classes/class-08.ts (14) M tests/neg/classes/class-10.ts (1) D tests/neg/classes/constructor.ts (12) M tests/neg/classes/createElt.ts (7) A tests/neg/classes/ctor-01.ts (20) A tests/neg/classes/ctor-02.ts (20) A tests/neg/classes/ctor-03-00.ts (16) A tests/neg/classes/ctor-03-01.ts (24) A tests/neg/classes/ctor-04.ts (20) A tests/neg/classes/ctor-05-0.ts (42) A tests/neg/classes/ctor-05-1.ts (41) A tests/neg/classes/ctor-05-2.ts (45) A tests/neg/classes/ctor-06.ts (23) A tests/neg/classes/ctor-07.ts (22) M tests/neg/classes/eq_val1.ts (2) M tests/neg/classes/inheritance-00.ts (7) M tests/neg/classes/point-00.ts (3) M tests/neg/classes/self.ts (3) M tests/neg/fb/createElement.ts (7) M tests/neg/inclusion/in-05.ts (2) M tests/neg/misc/animals-00.ts (4) M tests/neg/misc/animals-01.ts (4) M tests/neg/misc/animals.ts (6) R tests/neg/objects/eq_val2.ts (14) M tests/neg/simple/cast-00.ts (13) M tests/neg/simple/glob-03.ts (2) R tests/neg/simple/glob-06.ts (0) R tests/neg/simple/glob-07.ts (0) A tests/neg/simple/glob-08.ts (10) A tests/neg/simple/glob-09.ts (14) A tests/neg/simple/glob-10.ts (14) M tests/pos/arrays/arr-04.ts (3)
M tests/pos/arrays/arr-09.ts (15) M tests/pos/arrays/arr-11.ts (16) M tests/pos/classes/class-01.ts (7) M tests/pos/classes/class-02.ts (14) M tests/pos/classes/class-04.ts (12) M tests/pos/classes/class-05.ts (7) M tests/pos/classes/class-07.ts (11) M tests/pos/classes/class-08.ts (2) M tests/pos/classes/class-09.ts (3) M tests/pos/classes/class-11.ts (2) M tests/pos/classes/createElt.ts (9) A tests/pos/classes/ctor-00.ts (26) A tests/pos/classes/ctor-01.ts (20) A tests/pos/classes/ctor-02.ts (20) A tests/pos/classes/ctor-03-00.ts (16) R tests/pos/classes/ctor-03-01.ts (9) A tests/pos/classes/ctor-04.ts (21) A tests/pos/classes/ctor-05.ts (42) A tests/pos/classes/ctor-06.ts (26) R tests/pos/classes/eq_val-00.ts (1) M tests/pos/classes/inheritance-00.ts (12) M tests/pos/classes/point-00.ts (4) M tests/pos/classes/self.ts (2) M tests/pos/fb/createElement.ts (8) M tests/pos/fb/minindex-modern-lib.ts (10) M tests/pos/inclusion/in-05.ts (8) M tests/pos/misc/animals.ts (6) M tests/pos/misc/array-tag-check.ts (4) M tests/pos/misc/callable-interface.ts (2) M tests/pos/misc/opt-args-00.ts (1) M tests/pos/misc/packet.ts (3) M tests/pos/objects/obj-01.ts (22) D tests/pos/objects/obj-02-parse-bug.ts (19) M tests/pos/objects/obj-07.ts (4) M tests/pos/objects/obj-08.ts (12) M tests/pos/objects/string-idx.ts (2) M tests/pos/simple/adhoc.ts (2) M tests/pos/simple/cast-00.ts (8) M tests/pos/simple/forall-00.ts (1) A tests/pos/simple/glob-08.ts (10) A tests/pos/simple/glob-09.ts (11) M tests/pos/simple/overload-01.ts (2) M tests/pos/simple/variadic-02.ts (21) A tests/todo/bugs/modules.ts (15) R tests/todo/features/bitVector-00.ts (0) Patch Links:

https://github.com/UCSD-PL/RefScript/pull/95.patch https://github.com/UCSD-PL/RefScript/pull/95.diff — Reply to this email directly or view it on GitHub.

panagosg7 commented 9 years ago

I've only tested RefScript regression tests.

Benchmarks in https://github.com/UCSD-PL/rs-benchmarks will probably require some fixes too.