What is "The left-hand side of a . operator must be a valid scope identifier" error for? And how to solve this?

16 views (last 30 days)
Hi,
I am trying to perform SIL testing and while executing the test cases, I get the following error:
"Error: File: C:\Program Files\MATLAB\R2018b\rtw\c\tlc\mw\capi.tlc Line: 1200 Column: 53
The left-hand side of a . operator must be a valid scope identifier"
Initially, I developed test cases for MIL environment which I could execute without any error. Now, I changed the harness for SIL testing and trying to execute the same test cases but, getting above-mentioned error.
I am testing the SW by creating the test harness, test cases were developed using unittest in MATLAB and were executed by the test manager.
Can anyone please help me with that?
Thank you,
Parin

Accepted Answer

Parin Shah
Parin Shah on 10 Aug 2021
There were auto-code gen files (from previous build of the same SWC) in my MATLAB working project directory. I made some changes to my test harness and when I was doing SIL testing, MATLAB was referring to files from previous build rather than creating auto-code gen files from scratch. After deleting those previous files, I could resolve this error.
  1 Comment
Parin Shah
Parin Shah on 10 Aug 2021
I hope MathWorks come up with the solution for this kind of issues in their new release because whenever I change my harness, I need to delete those auto-code gen files manually and then build the model for SIL.

Sign in to comment.

More Answers (2)

Walter Roberson
Walter Roberson on 6 Aug 2021
Notice the message about dot indexing not supported.
The most common reason for that message is that some operation returned [] when you expected it to return a struct or an object.
However it can also occur if a variable that was a struct or object was overwritten with a numeric object. It can also occur if the variable previously existed as a numeric object and the code that you expected to overwrite it with a struct or object does not do so.
  9 Comments
Walter Roberson
Walter Roberson on 7 Aug 2021
I found the file. Line 1200 is
%foreach dwkIdx = Block[blkIdx].ChartData.NumChartData
and that would fail if Block[blkIdx].ChartData is empty.
I do not see anything in the code that sets the ChartData field, so I do not know at the moment where that is coming from.
Parin Shah
Parin Shah on 8 Aug 2021
Thank you so much for your time! I will try to contact Mathworks and see if they know anything about this. I will keep this thread updated.

Sign in to comment.


Dean DeBastiani
Dean DeBastiani on 5 Jan 2024
I noticed this in R2019b as well, and was able to resolve it by disabling the link to some of my library blocks, and then breaking said links. I was able to rebuild and not get the issue mentioned above.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!