<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
	<link rel="stylesheet" type="text/css" href="http://oldforge.etsi.org/mantis/css/default.css" />
	<script type="text/javascript"><!--
		if(document.layers) {document.write("<style>td{padding:0px;}<\/style>")}
	// --></script>
	<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
	<meta http-equiv="Pragma" content="no-cache" />
	<meta http-equiv="Cache-Control" content="no-cache" />
	<meta http-equiv="Pragma-directive" content="no-cache" />
	<meta http-equiv="Cache-Directive" content="no-cache" />
	<meta http-equiv="Expires" content="Tue, 17 Dec 2024 09:18:55 GMT" />
	<link rel="shortcut icon" href="/mantis/images/favicon.ico" type="image/x-icon" />
	<link rel="search" type="application/opensearchdescription+xml" title="MantisBT: Text Search" href="http://oldforge.etsi.org/mantis/browser_search_plugin.php?type=text" />	<link rel="search" type="application/opensearchdescription+xml" title="MantisBT: Issue Id" href="http://oldforge.etsi.org/mantis/browser_search_plugin.php?type=id" />	<title>0005808: STF409 comment on [Part 1: TTCN-3 Core Language / Section 5.4.1 ]: inout parameters - ETSI's Bug Tracker</title>
<script type="text/javascript" src="/mantis/javascript/min/common.js"></script>
<script type="text/javascript">var loading_lang = "Loading...";</script><script type="text/javascript" src="/mantis/javascript/min/ajax.js"></script>
</head>
<body>
<br /><table class="width100" cellspacing="1"><tr><td class="form-title" colspan="6"><div class="center">ETSI's Bug Tracker - Part 01: TTCN-3 Core Language</div></td></tr><tr><td class="form-title" colspan="6">View Issue Details</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr class="print-category"><td class="print" width="16%">ID</td><td class="print" width="16%">Project</td><td class="print" width="16%">Category</td><td class="print" width="16%">View Status</td><td class="print" width="16%">Date Submitted</td><td class="print" width="16%">Last Update</td></tr><tr class="print"><td class="print">0005808</td><td class="print">Part 01: TTCN-3 Core Language</td><td class="print">Technical</td><td class="print">public</td><td class="print">24-11-2010 12:11</td><td class="print">01-12-2010 10:28</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr class="print"><td class="print-category">Reporter</td><td class="print">Andras Kovacs</td><td class="print" colspan="4">&#160;</td></tr><tr class="print"><td class="print-category">Assigned To</td><td class="print">Gyorgy Rethy</td><td class="print" colspan="4">&#160;</td></tr><tr class="print"><td class="print-category">Priority</td><td class="print">normal</td><td class="print-category">Severity</td><td class="print">minor</td><td class="print-category">Reproducibility</td><td class="print">N/A</td></tr><tr class="print"><td class="print-category">Status</td><td class="print">closed</td><td class="print-category">Resolution</td><td class="print">no change required</td><td class="print" colspan="2">&#160;</td></tr><tr class="print"><td class="print-category">Platform</td><td class="print"></td><td class="print-category">OS</td><td class="print"></td><td class="print-category">OS Version</td><td class="print"></td></tr><tr class="print"><td class="print-category">Product Version</td><td class="print"></td><td class="print" colspan="4">&#160;</td></tr><tr><td class="print-category">Target Version</td><td class="print"></td><td class="print-category">Fixed in Version</td><td class="print"></td><td class="print" colspan="2">&#160;</td></tr><tr class="print"><td class="print-category">Clause Reference(s)</td><td class="print" colspan="4">[Part 1: TTCN-3 Core Language / Section 5.4.1 ]</td></tr><tr class="print"><td class="print-category">Source  (company  - Author)</td><td class="print" colspan="4">BroadBit - Andras Kovacs</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr class="print"><td class="print-category">Summary</td><td class="print" colspan="5">0005808: STF409 comment on [Part 1: TTCN-3 Core Language / Section 5.4.1 ]: inout parameters</td></tr><tr class="print"><td class="print-category">Description</td><td class="print" colspan="5">It is implied from the content of this section that there can be no default value for inout parameters, and furthermore the value of a referenced inout parameter must be always present in the corresponding call (i.e. no use of '-' assignment for inout parameter types).<br />
It would add much to the clarity of the standard if this restriction has been explicitly stated.</td></tr><tr class="print"><td class="print-category">Steps To Reproduce</td><td class="print" colspan="5"></td></tr><tr class="print"><td class="print-category">Additional Information</td><td class="print" colspan="5"></td></tr><tr class="print"><td class="print-category">Tags</td><td class="print" colspan="5">No tags attached.</td></tr><tr class="print"><td class="print-category">Relationships</td><td class="print" colspan="5"></td></tr><tr class="print"><td class="print-category">Attached Files</td><td class="print" colspan="5"></td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr><td class="form-title">Issue History</td></tr><tr class="print-category"><td class="row-category-history">Date Modified</td><td class="row-category-history">Username</td><td class="row-category-history">Field</td><td class="row-category-history">Change</td></tr><tr class="print"><td class="print">24-11-2010 12:11</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=607">Andras Kovacs</a></td><td class="print">New Issue</td><td class="print"></td></tr><tr class="print"><td class="print">24-11-2010 12:11</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=607">Andras Kovacs</a></td><td class="print">Clause Reference(s)</td><td class="print"> =&gt; [Part 1: TTCN-3 Core Language / Section 5.4.1 ]</td></tr><tr class="print"><td class="print">24-11-2010 12:11</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=607">Andras Kovacs</a></td><td class="print">Source  (company  - Author)</td><td class="print"> =&gt; BroadBit - Andras Kovacs</td></tr><tr class="print"><td class="print">29-11-2010 09:56</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Note Added: 0009818</td><td class="print"></td></tr><tr class="print"><td class="print">29-11-2010 10:40</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Note Added: 0009819</td><td class="print"></td></tr><tr class="print"><td class="print">29-11-2010 10:41</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Note Added: 0009820</td><td class="print"></td></tr><tr class="print"><td class="print">29-11-2010 10:41</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Assigned To</td><td class="print"> =&gt; Jacob Wieland - Spirent</td></tr><tr class="print"><td class="print">29-11-2010 10:41</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Status</td><td class="print">new =&gt; assigned</td></tr><tr class="print"><td class="print">29-11-2010 12:54</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Note Added: 0009825</td><td class="print"></td></tr><tr class="print"><td class="print">29-11-2010 13:04</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Relationship added</td><td class="print">related to 0005513</td></tr><tr class="print"><td class="print">29-11-2010 13:05</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Relationship deleted</td><td class="print">related to 0005513</td></tr><tr class="print"><td class="print">29-11-2010 13:10</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a></td><td class="print">Assigned To</td><td class="print">Jacob Wieland - Spirent =&gt; Gyorgy Rethy</td></tr><tr class="print"><td class="print">29-11-2010 13:56</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Note Edited: 0009819</td><td class="print"></td></tr><tr class="print"><td class="print">30-11-2010 09:34</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Project</td><td class="print">TTCN-3 Change Requests =&gt; Part 01: TTCN-3 Core Language</td></tr><tr class="print"><td class="print">01-12-2010 10:22</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Note Added: 0009880</td><td class="print"></td></tr><tr class="print"><td class="print">01-12-2010 10:28</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Status</td><td class="print">assigned =&gt; closed</td></tr><tr class="print"><td class="print">01-12-2010 10:28</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Resolution</td><td class="print">open =&gt; no change required</td></tr></table>
<br />
<table class="width100" cellspacing="1">
<tr>
	<td class="form-title" colspan="2">
		Notes	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0009818)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				29-11-2010 09:56&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				Default values to inout parameters does not make sense as these parameters are always instantiated with VARIABLES and since there are no global variables, no such variable can be supplied in the formal parameter declaration.<br />
<br />
However, I think allowing the unchanged symbol as instantiation for for out parameters (with the meaning that the resulting value of the out-parameter after the call is not assigned to any variable) would make sense.<br />
<br />
For example:<br />
<br />
function splitQualifiedName(in charstring qualifiedName, out charstring moduleName, out charstring declName) {<br />
...<br />
&#160;&#160;moduleName := ...;<br />
&#160;&#160;declName := ...;<br />
...<br />
}<br />
<br />
function charstring getDeclarationName(in charstring qualifiedName) return charstring {<br />
&#160;&#160;var charstring result;<br />
&#160;&#160;splitQualifiedName(qualifiedName, -, result);<br />
&#160;&#160;return result;<br />
}<br />
<br />
It could even be possible to allow leaving out the rest of the parameter list (the same as for in-parameters) if all the rest-parameters are 'unchanged'.<br />
<br />
function charstring getModuleName(in charstring qualifiedName) return charstring {<br />
&#160;&#160;var charstring result;<br />
&#160;&#160;splitQualifiedName(qualifiedName, result);<br />
&#160;&#160;return result;<br />
}<br />
<br />
Now, allowing default values for inout parameters could then have the meaning that when a function call passes the unchanged symbol to such a parameter, it is treates as if a variable that contains that value was passed to the parameter and assignment to that parameter won't have any effect to the calling function (like for an out parameter).<br />
<br />
This would be a consistent and useful generalization of the default-value/unchanged-parameter feature.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0009819)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				29-11-2010 10:40&#160;&#160;&#160;
				<br />(edited on:&#32;29-11-2010 13:56)			</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				STF409 didn't asked to extend default values to inout or out parameters, just to add a sentence to state *explicitly*, that default value is not allowed for these kinds of parameters. Currently the standard states in<br />
$5.4.1 &quot;Formal in parameters may have default values. This default value is used when no actual parameter is provided.&quot; and in<br />
$5.4.1.1 &quot;In parameters may have a default value, which is given by an expression assigned to the parameter.&quot;.<br />
<br />
I simply propose to add the sentence to $5.4.1 (following the existing two sentences)<br />
&quot;Inout and out parameters shall have no default value.&quot;<br />
<br />
			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0009820)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				29-11-2010 10:41&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				Assigned to Jacob on my own, to check my proposal.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0009825)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=508">Jacob Wieland - Spirent</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				29-11-2010 12:54&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				Your proposal is fine, but I think totally unnecessary.<br />
<br />
Since the feature 'default value' is only introduced in the context of in parameters, I don't think that it needs to be forbidden for other kinds of parameters for which it was never introduced. <br />
<br />
So, your proposal just adds (in my view unncessecary) redundancy (which later can lead to inconsistencies should the feature be enlarged to encompass other kinds of parameters as well). <br />
<br />
It's like saying: Strings can be concatenated with the concatenation operator. Integers cannot be concatenated with the concatenation operator.<br />
<br />
Restrictions should only be added where not having the restriction would have any meaningful semantics but which is problematic for some reason. Otherwise, the restriction should be unnecessary.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0009880)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				01-12-2010 10:22&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				OK. Clarifying the question in this CR should be enough, default values are allowed for &quot;in&quot; parameters only. No change in the standard's text.			</td>
		</tr>
		</table>
	</td>
</tr>
</table>
</body>
</html>
