Community
Participate
Working Groups
Create a file named MathLibMax and add the source listed below. When the file is generated, the following exception is thrown: Caused by: org.eclipse.edt.mof.egl.AmbiguousFunctionReferenceError at org.eclipse.edt.mof.egl.impl.QualifiedFunctionInvocationImpl.resolveFunction(QualifiedFunctionInvocationImpl.java:116) at org.eclipse.edt.mof.egl.impl.QualifiedFunctionInvocationImpl.getTarget(QualifiedFunctionInvocationImpl.java:49) ... 87 more Source: Program MathLibMax function main() var1 int; MathLib.max(var1/2 - 12, 0); end end
I have fixed this by modifying the algorithm in TypeUtils. The code now attempts to eliminate any function/operation that requires an argument type to be narrowed.
The following test case still have compile errors ------ EGL Source ----------- program testMathlib type BasicProgram {} data any[]; function main() data.appendElement(1); MathLib.max(1, data.getSize() - 50); end end ------ Exceptions ------------ org.eclipse.edt.mof.codegen.api.TemplateException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at org.eclipse.edt.mof.codegen.api.TemplateContext.doInvoke(TemplateContext.java:384) at org.eclipse.edt.mof.codegen.api.TemplateContext.invoke(TemplateContext.java:260) at org.eclipse.edt.gen.javascript.templates.StatementTemplate.genStatementNoBraces(StatementTemplate.java:30) at sun.reflect.GeneratedMethodAccessor78.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at org.eclipse.edt.mof.codegen.api.TemplateContext.doInvoke(TemplateContext.java:357) at org.eclipse.edt.mof.codegen.api.TemplateContext.invoke(TemplateContext.java:260) at org.eclipse.edt.gen.javascript.templates.FunctionTemplate.genFunctionBody(FunctionTemplate.java:40) at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at org.eclipse.edt.mof.codegen.api.TemplateContext.doInvoke(TemplateContext.java:357) at org.eclipse.edt.mof.codegen.api.TemplateContext.invoke(TemplateContext.java:260) at org.eclipse.edt.gen.javascript.templates.FunctionTemplate.genDeclaration(FunctionTemplate.java:34) at sun.reflect.GeneratedMethodAccessor155.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at org.eclipse.edt.mof.codegen.api.TemplateContext.doInvoke(TemplateContext.java:357) at org.eclipse.edt.mof.codegen.api.TemplateContext.invoke(TemplateContext.java:260) at org.eclipse.edt.gen.javascript.templates.EGLClassTemplate.genFunction(EGLClassTemplate.java:310) at sun.reflect.GeneratedMethodAccessor154.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at org.eclipse.edt.mof.codegen.api.TemplateContext.doInvoke(TemplateContext.java:359) at org.eclipse.edt.gen.EglContext.invoke(EglContext.java:397) at org.eclipse.edt.gen.javascript.templates.EGLClassTemplate.genFunctions(EGLClassTemplate.java:304) at sun.reflect.GeneratedMethodAccessor372.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at org.eclipse.edt.mof.codegen.api.TemplateContext.doInvoke(TemplateContext.java:357) at org.eclipse.edt.gen.EglContext.invoke(EglContext.java:397) at org.eclipse.edt.gen.javascript.templates.EGLClassTemplate.genClassBody(EGLClassTemplate.java:123) at sun.reflect.GeneratedMethodAccessor362.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at org.eclipse.edt.mof.codegen.api.TemplateContext.doInvoke(TemplateContext.java:357) at org.eclipse.edt.gen.EglContext.invoke(EglContext.java:397) at org.eclipse.edt.gen.javascript.templates.PartTemplate.genPart(PartTemplate.java:42) at sun.reflect.GeneratedMethodAccessor331.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at org.eclipse.edt.mof.codegen.api.TemplateContext.doInvoke(TemplateContext.java:357) at org.eclipse.edt.gen.EglContext.invoke(EglContext.java:397) at org.eclipse.edt.gen.javascript.JavaScriptGenerator.generate(JavaScriptGenerator.java:80) at org.eclipse.edt.gen.AbstractGeneratorCommand.generate(AbstractGeneratorCommand.java:106) at org.eclipse.edt.ide.compiler.gen.JavaScriptGenerator.generate(JavaScriptGenerator.java:33) at org.eclipse.edt.ide.core.internal.generation.GenerationQueue.invokeGenerators(GenerationQueue.java:264) at org.eclipse.edt.ide.core.internal.generation.GenerationQueue.generate(GenerationQueue.java:192) at org.eclipse.edt.ide.core.internal.generation.GenerationQueue.generate(GenerationQueue.java:145) at org.eclipse.edt.ide.core.internal.generation.AbstractGenerator.build(AbstractGenerator.java:49) at org.eclipse.edt.ide.core.internal.generation.GenerationBuilder.cleanBuild(GenerationBuilder.java:100) at org.eclipse.edt.ide.core.internal.generation.GenerationBuilder.build(GenerationBuilder.java:50) at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:629) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:172) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:203) at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:255) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:258) at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:311) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:343) at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:242) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at org.eclipse.edt.mof.impl.AbstractVisitor.invokeVisit(AbstractVisitor.java:122) at org.eclipse.edt.mof.impl.AbstractVisitor.primVisit(AbstractVisitor.java:92) at org.eclipse.edt.mof.impl.InternalEObject.accept(InternalEObject.java:206) at org.eclipse.edt.mof.impl.InternalEObject.visitChildren(InternalEObject.java:230) at org.eclipse.edt.mof.impl.InternalEObject.accept(InternalEObject.java:208) at org.eclipse.edt.mof.impl.InternalEObject.visitChildren(InternalEObject.java:230) at org.eclipse.edt.mof.impl.InternalEObject.accept(InternalEObject.java:208) at org.eclipse.edt.gen.ReorganizeCode.reorgCode(ReorganizeCode.java:72) at org.eclipse.edt.gen.javascript.templates.StatementBlockTemplate.processStatements(StatementBlockTemplate.java:48) at org.eclipse.edt.gen.javascript.templates.StatementBlockTemplate.genStatementBodyNoBraces(StatementBlockTemplate.java:37) at sun.reflect.GeneratedMethodAccessor79.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at org.eclipse.edt.mof.codegen.api.TemplateContext.doInvoke(TemplateContext.java:357) ... 64 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor120.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at org.eclipse.edt.mof.impl.AbstractVisitor.invokeVisit(AbstractVisitor.java:119) ... 77 more Caused by: java.lang.RuntimeException: org.eclipse.edt.mof.egl.NoSuchFunctionError at org.eclipse.edt.mof.egl.impl.QualifiedFunctionInvocationImpl.getTarget(QualifiedFunctionInvocationImpl.java:53) at org.eclipse.edt.mof.egl.impl.QualifiedFunctionInvocationImpl.getTarget(QualifiedFunctionInvocationImpl.java:1) at org.eclipse.edt.gen.ReorganizeCode.processInvocationConstantParameters(ReorganizeCode.java:816) at org.eclipse.edt.gen.ReorganizeCode.processInvocation(ReorganizeCode.java:825) at org.eclipse.edt.gen.ReorganizeCode.visit(ReorganizeCode.java:800) ... 81 more Caused by: org.eclipse.edt.mof.egl.NoSuchFunctionError at org.eclipse.edt.mof.egl.impl.QualifiedFunctionInvocationImpl.resolveFunction(QualifiedFunctionInvocationImpl.java:123) at org.eclipse.edt.mof.egl.impl.QualifiedFunctionInvocationImpl.getTarget(QualifiedFunctionInvocationImpl.java:51) ... 85 more
duplicate *** This bug has been marked as a duplicate of bug 355765 ***
duplicate of a defect that was fixed a month ago, so I am closing it.