| Type | Wish | Status | dismissed | Date | 2-Aug-2015 21:33 | 
|---|---|---|---|---|---|
| Version | r3 master | Category | Evaluation | Submitted by | fork | 
| Platform | All | Severity | minor | Priority | normal | 
| Summary | Make a refinement's parameters default to excluding NONE! | 
|---|---|
| Description | 
				Currently, a refinement's arguments will be NONE! if they are not supplied.  So the following is legal: foo: func [/bar param] [ if param [print "Got the param."] ] It's more convenient than UNSET!, which is harder to handle. Were they UNSET!, it would mean that each attempt to use a refinement argument would first have to test the refinement itself: foo: func [/bar param] [ if all [bar param] [print "Got the param."] ] On the downside of using NONE!, it encourages a habit of potentially using the refinement arg as an indicator of whether the refinement *itself* had been provided. This overlooks the case of: >> foo/bar none (Though of course, the more problematic cases would look more like >> foo/bar some-function/with/lots [of 'args] {that returns none}, and the called function would be more complex as well.) A simple compromise might be to remove NONE! from the types that a refinement argument will accept by default. This way, the average function may implicitly assume that any one of a refinement's arguments being none *means the refinement itself is not present*. The average case would likely benefit from being able to make such an assumption, as actually tolerating a NONE! argument to a refinement is likely rare. Having a typeset meaning "anything that isn't unset" (e.g. VALID!) would make it easier to make an argument that would mimic the current behavior.  | 
		
| Example code | 
| Assigned to | n/a | Fixed in | - | Last Update | 8-Jan-2016 00:32 | 
|---|
| Comments | |
|---|---|
| 
			(0004684)
			 Ladislav 7-Jan-2016 20:33  | 
		I do not like this. It introduces new special case not bringing sufficient benefit. | 
| 
			(0004686)
			 Ladislav 8-Jan-2016 00:32  | 
		The author changed his mind. | 
| Date | User | Field | Action | Change | 
|---|---|---|---|---|
| 8-Jan-2016 00:32 | ladislav | Comment : 0004686 | Added | - | 
| 8-Jan-2016 00:32 | ladislav | Status | Modified | reviewed => dismissed | 
| 7-Jan-2016 20:53 | ladislav | Status | Modified | submitted => reviewed | 
| 7-Jan-2016 20:34 | ladislav | Comment : 0004684 | Modified | - | 
| 7-Jan-2016 20:33 | ladislav | Comment : 0004684 | Added | - | 
| 2-Aug-2015 21:37 | Fork | Description | Modified | - | 
| 2-Aug-2015 21:37 | Fork | Description | Modified | - | 
| 2-Aug-2015 21:33 | Fork | Ticket | Added | - |