Skip to content

CD compiler does not report unresolved imported types #118

Description

@schmalzing

Issue description

When compiling a MontiCore class diagram, an invalid import is accepted without an error. The problem is only detected later when the generated Java code is compiled.

Reproduction

montiarc.generator.meta.Java.cd:

classdiagram Java {
  public abstract class Class { }
}

montiarc.generator.meta.MA2Jsim.cd:

import montiarc.generator.Java.Class;

classdiagram MA2Jsim {
  public class MCConcept extends Class { }
}

The import in MA2Jsim.cd is invalid. The declared type is actually:

montiarc.generator.meta.Java.Class

Actual behavior

The CD compilation succeeds and generates Java code containing:

import montiarc.generator.Java.Class;

Java compilation then fails, for example:

ERROR in ...\MA2Jsim\Transition.java (at line 21)
import montiarc.generator.Java.Class;
       ^^^^^^^^^^^^^^^^^^^^^^^
The import montiarc.generator.Java cannot be resolved

Expected behavior

The CD compiler should report an error during CD processing because montiarc.generator.Java.Class cannot be resolved.

The correct import is:

import montiarc.generator.meta.Java.Class;

Impact

Invalid cross-CD dependencies remain undetected until the Java-generation/Java-compilation phase. This delays feedback and makes the error appear as a generated-code or Java classpath problem rather than an invalid CD import.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions