Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • R relational-rags
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 15
    • Issues 15
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

GitLab update scheduled for Friday, March 31st between 08:15 and 08:45 CEST. If unpleasant, please contact René or Martin.

  • JastAdd
  • relational-rags
  • Merge requests
  • !17

WIP: Feature/better placeholders

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Johannes Mey requested to merge feature/better-placeholders into master Apr 20, 2020
  • Overview 0
  • Commits 4
  • Pipelines 1
  • Changes 15

resolves #12 (closed)

Currently, all nonterminal classes get accompanying placeholder classes prefixed with unresolved. There are several problems with that.

  • Unresolved classes are also created for types that cannot be the endpoint of a relation.
  • The existence of an unresolved class means that the class must be instantiable. Even though the class is obtained by subtyping, if the superclass is abstract, there might be unimplemented abstract methods.

Therefore, two improvements are required.

  1. Determine if a type can be the end point of a relation syn boolean TypeDecl.isReferenceTarget().
  2. Determine if a type is instantiable at all syn boolean TypeDecl.instantiable().

These points can be checked easily. However, there is another problem. Relation endpoints can refer to types that have subtypes. However, the placeholder must still have the type of the supertype. Currently, an arbitrary instantiable subtype is selected.

  • TODO: It must be made sure, that this (and only this) subtype gets a placeholder class.
Edited Apr 20, 2020 by Johannes Mey
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: feature/better-placeholders