itemisCREATE / statecharts

YAKINDU Statechart Tools (http://www.statecharts.org)
Eclipse Public License 1.0
175 stars 85 forks source link

Defining type alias with type alias results NPE #2741

Closed rherrmannr closed 4 years ago

rherrmannr commented 5 years ago

Using type alias with type alias results npe in cpp generator.

alias myInt : integer
alias intFromInt : myInt

NPE:

java.lang.IllegalArgumentException: Unhandled parameter types: [org.yakindu.base.expressions.expressions.impl.ElementReferenceExpressionImpl@39b0ff3c (operationCall: false, arrayAccess: false), null]
    at org.yakindu.sct.generator.cpp.CppExpressionsGenerator.code(CppExpressionsGenerator.java:267)
    at org.yakindu.sct.generator.c.CExpressionsGenerator._code(CExpressionsGenerator.java:120)
    at org.yakindu.sct.generator.cpp.CppExpressionsGenerator.code(CppExpressionsGenerator.java:276)
    at org.yakindu.sct.generator.cpp.FlowCode._code(FlowCode.java:351)
    at org.yakindu.sct.generator.cpp.FlowCode.code(FlowCode.java:516)
    at org.yakindu.sct.generator.cpp.FlowCode._code(FlowCode.java:384)
    at org.yakindu.sct.generator.cpp.FlowCode.code(FlowCode.java:526)
    at org.yakindu.sct.generator.cpp.FlowCode._code(FlowCode.java:336)
    at org.yakindu.sct.generator.cpp.FlowCode.code(FlowCode.java:536)
    at org.yakindu.sct.generator.cpp.FlowCode._code(FlowCode.java:391)
    at org.yakindu.sct.generator.cpp.FlowCode.code(FlowCode.java:526)
    at org.yakindu.sct.generator.cpp.FlowCode._code(FlowCode.java:391)
    at org.yakindu.sct.generator.cpp.FlowCode.code(FlowCode.java:526)
    at org.yakindu.sct.generator.cpp.FlowCode._code(FlowCode.java:336)
    at org.yakindu.sct.generator.cpp.FlowCode.code(FlowCode.java:536)
    at org.yakindu.sct.generator.cpp.submodules.InternalFunctions.implementation(InternalFunctions.java:148)
    at org.yakindu.sct.generator.cpp.submodules.InternalFunctions.toDefinitions(InternalFunctions.java:101)
    at org.yakindu.sct.generator.cpp.submodules.InternalFunctions.functionImplementations(InternalFunctions.java:90)
    at org.yakindu.sct.generator.cpp.providers.DefaultFunctionProvider.get(DefaultFunctionProvider.java:119)
    at org.yakindu.sct.generator.cpp.CodeGeneratorFragmentProvider.lambda$0(CodeGeneratorFragmentProvider.java:42)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Iterator.forEachRemaining(Iterator.java:116)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
    at org.yakindu.sct.generator.cpp.CodeGeneratorFragmentProvider.get(CodeGeneratorFragmentProvider.java:43)
    at org.yakindu.sct.generator.cpp.files.StatemachineImplementation.content(StatemachineImplementation.java:99)
    at org.yakindu.sct.generator.cpp.CppGenerator.generateArtifacts(CppGenerator.java:104)
    at org.yakindu.sct.generator.cpp.CppGenerator.generate(CppGenerator.java:95)
    at org.yakindu.sct.generator.core.execution.SExecGeneratorEntryExecutor.execute(SExecGeneratorEntryExecutor.java:60)
    at org.yakindu.sct.generator.core.execution.AbstractGeneratorEntryExecutor.execute(AbstractGeneratorEntryExecutor.java:64)
    at org.yakindu.sct.generator.core.execution.GeneratorExecutorLookup.execute(GeneratorExecutorLookup.java:57)
    at org.yakindu.sct.generator.builder.EclipseContextGeneratorExecutorLookup$1.run(EclipseContextGeneratorExecutorLookup.java:43)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
rherrmannr commented 4 years ago

Cannot reproduce this anymore. Has been fixed.