diff options
| author | aarne <aarne@chalmers.se> | 2014-01-31 20:28:25 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2014-01-31 20:28:25 +0000 |
| commit | 6f03e517c8ead15229215917a7c67805ba3c3f5c (patch) | |
| tree | 2e970ea05837183a4ef38b098758d9979da49909 /src/runtime | |
| parent | dbd68b987e45026319545069c4be549d4f3daeac (diff) | |
experimental type checker module GF.Compile.TypeCheck.RConcrete.hs with record updates enabled by ** expressions. Can be changed back to Concrete.hs by just changing one import command in GF.Compile.CheckGrammar.hs. The worst thing that *should* happen with the new type checker is that some old code is detected to be invalid, which happens if it contains a type-incompatible record extension, e.g. {x = "foo"} ** {x = 1}. Previously such errors were silently ignored. A set of test runs detected one such error in the RGL, which was corrected. On the positive side, the new type checker now enables record updates in the natural way: R ** {x = 1} will give value x = 1 overshadowing any value of x in R (provided the expected type of x is Int). lib/src/experimental/PredicationSwe.gf illustrates this, as opposed to PredicationSwO.gf which has to use old-style copying of even the unchanged record fields.
Diffstat (limited to 'src/runtime')
0 files changed, 0 insertions, 0 deletions
