summaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2014-01-31 20:28:25 +0000
committeraarne <aarne@chalmers.se>2014-01-31 20:28:25 +0000
commit6f03e517c8ead15229215917a7c67805ba3c3f5c (patch)
tree2e970ea05837183a4ef38b098758d9979da49909 /src/runtime
parentdbd68b987e45026319545069c4be549d4f3daeac (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