Opened 16 years ago
Closed 16 years ago
#219 closed defect (fixed)
Cannot use -> on left hand of assignment in .mmp files
| Reported by: | dfix | Owned by: | Stephen Siegel |
|---|---|---|---|
| Priority: | minor | Milestone: | Release 1.0 |
| Component: | examples | Version: | 1.0 |
| Keywords: | arrow operator, examples, Node | Cc: |
Description
Something like:
Node a;
Node* p = &a;
p->field = ...;
will result in an error.
However, the arrow operator seems to work in any other situation.
java.lang.NullPointerException
at edu.udel.cis.vsl.tass.front.minimp.ModelBuilder.processAST(ModelBuilder.java:291)
at edu.udel.cis.vsl.tass.front.minimp.ModelBuilder.buildModel(ModelBuilder.java:286)
at edu.udel.cis.vsl.tass.front.minimp.ModelExtractor.extract(ModelExtractor.java:30)
at edu.udel.cis.vsl.tass.front.minimp.ModelExtractor.extractModel(ModelExtractor.java:54)
at linkedList.LinkedListTest.testVerifyLinkedListSimple(LinkedListTest.java:29)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
edu.udel.cis.vsl.tass.front.minimp.parser.SyntaxError: Syntax error found in file: linkedListSimple.mmp, on line: 16:1
Left value expected in assignment.
at edu.udel.cis.vsl.tass.front.minimp.parser.TreeParser.reportSyntaxError(TreeParser.java:2715)
at edu.udel.cis.vsl.tass.front.minimp.parser.TreeParser.processAssignExpr(TreeParser.java:1296)
at edu.udel.cis.vsl.tass.front.minimp.parser.TreeParser.processExpr(TreeParser.java:1285)
at edu.udel.cis.vsl.tass.front.minimp.parser.TreeParser.processExprStmt(TreeParser.java:2539)
at edu.udel.cis.vsl.tass.front.minimp.parser.TreeParser.processStatement(TreeParser.java:2037)
at edu.udel.cis.vsl.tass.front.minimp.parser.TreeParser.processStmtList(TreeParser.java:1269)
at edu.udel.cis.vsl.tass.front.minimp.parser.TreeParser.processFunctionBody(TreeParser.java:1244)
at edu.udel.cis.vsl.tass.front.minimp.parser.TreeParser.processFunction(TreeParser.java:1141)
at edu.udel.cis.vsl.tass.front.minimp.parser.TreeParser.processAST(TreeParser.java:246)
at edu.udel.cis.vsl.tass.front.minimp.ModelExtractor.extract(ModelExtractor.java:29)
at edu.udel.cis.vsl.tass.front.minimp.ModelExtractor.extractModel(ModelExtractor.java:54)
at linkedList.LinkedListTest.testVerifyLinkedListSimple(LinkedListTest.java:29)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Change History (2)
comment:1 by , 16 years ago
| Owner: | set to |
|---|---|
| Status: | new → accepted |
comment:2 by , 16 years ago
| Resolution: | → fixed |
|---|---|
| Status: | accepted → closed |
This is fixed, but another error was revealed.
Also, the example test had some problems with undefined values because no objects were every allocated.
The other error has to do with the resolution of pointer base types, which does not always take place, in ModelBuilder.

Is there a JUnit test demonstrating this defect? If not, please add one.