Module name clash only yields in a warning
Summary
If the name of an identifier is the same as that of the containing module or an imported module, TITAN shows a warning and compiles the code. According to the TTCN-3 standard (Section 5.2.2, paragraph 2 and Example 3), this is not allowed, i.e. shall yield in an error.
Steps and/or TTCN-3 code to reproduce
Create a TITAN project, and the following two modules in it:
module my {
import from my2 all;
type component myct{
var integer my;
}
function myfn() return boolean{
const integer my := 2;
return true;
}
type component myct2{
var integer my2;
}
function myfn2() return boolean{
const integer my2 := 2;
return true;
}
}
module my2 {
}
What is the current bug behavior?
A warning is shown after saving at all four clashes. The code is cross-compiled and then compiled to binary (both with the C++ and the Java compiler).
What is the expected correct behavior?
An error message shall be shown and cross-compilation shall fail.
Relevant logs and/or screenshots
Possible fixes
Titan version
8.1.0
Platform details (OS type and version)
Microsoft Windows 10 Enterprise 10.0.19042
/cc @aknappqwt
Edited by Levente Erős