Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0005802OCamlOCaml typingpublic2012-10-27 15:102013-07-24 10:25
Reporterturpin 
Assigned Togarrigue 
PrioritylowSeveritytrivialReproducibilityalways
StatusresolvedResolutionfixed 
PlatformOSOS Version
Product Version4.00.1 
Target Version4.01.0+devFixed in Version4.01.0+dev 
Summary0005802: Avoiding "let" as a value name
DescriptionIn Typecore, "let" is used as a value name (to avoid changing side-effects when doing eta-expansion). For the purpose of unparsing typedtrees, "_let" or "let_" would be nicer.
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0008683)
doligez (administrator)
2013-01-03 16:43

But using _let or let_ would interfere with legitimate programs that use these identifiers. AFAICT, that's the whole point of using a keyword here.
(0009840)
turpin (reporter)
2013-07-24 09:40

Maybe I'm wrong, but since the generated expression is 'let v = e in v', I believe that the variable name for v cannot interfere with anything, and can be chosen arbitrarily. Is that correct ?
(0009841)
garrigue (manager)
2013-07-24 10:21

Actually, the name is completely irrelevant, as it is not added to the environment (a fresh identifier is created in place).
I changed it to arg.
And due to the structure of the generated expression, there should be no shadowing introduced.
Precisely, what we get is something of the form:
  let arg = <expr> in (fun eta -> arg ?lab1:None ... ?labn:None eta)

- Issue History
Date Modified Username Field Change
2012-10-27 15:10 turpin New Issue
2013-01-03 16:43 doligez Note Added: 0008683
2013-01-03 16:43 doligez Status new => acknowledged
2013-01-03 16:43 doligez Target Version => 4.01.0+dev
2013-07-16 11:32 doligez Assigned To => doligez
2013-07-16 11:32 doligez Status acknowledged => feedback
2013-07-22 12:44 frisch Target Version 4.01.0+dev => 4.02.0+dev
2013-07-24 09:40 turpin Note Added: 0009840
2013-07-24 09:40 turpin Status feedback => assigned
2013-07-24 10:21 garrigue Note Added: 0009841
2013-07-24 10:21 garrigue Status assigned => resolved
2013-07-24 10:21 garrigue Fixed in Version => 4.01.0+dev
2013-07-24 10:21 garrigue Resolution open => fixed
2013-07-24 10:21 garrigue Assigned To doligez => garrigue
2013-07-24 10:25 frisch Target Version 4.02.0+dev => 4.01.0+dev


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker