Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(declarations): move declaration uniqueness check to model file #794

Conversation

ekarademir
Copy link
Contributor

Closes #785

This logic doesn't need to run for each declaration in the class. It basically calls the model file and fetches declarations and creates a set. There is nothing special about the particular declaration within this logic.

Changes

  • Moved unique name check logic to model file
  • Updated the tests (move the tests from class declaration to model file as well)

Author Checklist

  • Ensure you provide a DCO sign-off for your commits using the --signoff option of git commit.
  • Vital features and changes captured in unit and/or integration tests
  • Commits messages follow AP format
  • Extend the documentation, if necessary
  • Merging to main from fork:branchname

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>
Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>
@@ -190,21 +190,6 @@ class ClassDeclaration extends Declaration {
validate() {
super.validate();

const declarations = this.getModelFile().getAllDeclarations();
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is nothing in this removed code that references the particular declaration (this,) and it already calls the model file. So we can just move this logic to model file and remove unnecessary O(n^2) loop.

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>
@mttrbrts mttrbrts merged commit a406c0f into accordproject:main Jan 29, 2024
11 checks passed
@ekarademir ekarademir deleted the ertugrul/i785/move-declaration-uniqueness-check-to-modelfile branch January 29, 2024 14:55
mttrbrts pushed a commit to mttrbrts/composer-concerto that referenced this pull request Mar 10, 2024
…le (accordproject#794)

* refactor(declarations): Move unique name check to model file.

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>

* refactor(test): move validation checks for duplicate class to model file

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>

* test: empty commit to trigger test

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>

---------

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>
mttrbrts pushed a commit to mttrbrts/composer-concerto that referenced this pull request Mar 11, 2024
…le (accordproject#794)

* refactor(declarations): Move unique name check to model file.

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>

* refactor(test): move validation checks for duplicate class to model file

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>

* test: empty commit to trigger test

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>

---------

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>
mttrbrts added a commit that referenced this pull request Mar 11, 2024
* fix(build): include unions in index

Signed-off-by: Matt Roberts <code@rbrts.uk>

* chore(deps): upgrade codegen to latest release

Signed-off-by: Matt Roberts <code@rbrts.uk>

---------

Signed-off-by: Matt Roberts <code@rbrts.uk>

* fix(class): throw error when class is extending itself (#767)

* fix(parser): throw error when concept is extending itself in CTO

Signed-off-by: Stefan Blaginov <stefanblaginov@gmail.com>
Signed-off-by: Stefan Blaginov <Stefan.Blaginov@docusign.com>

* fix(parser): throw error when concept is extending itself in JSON metamodel form

Signed-off-by: Stefan Blaginov <stefanblaginov@gmail.com>
Signed-off-by: Stefan Blaginov <Stefan.Blaginov@docusign.com>

* fix(parser): throw error when concept is extending itself in the AST

Signed-off-by: Stefan Blaginov <stefanblaginov@gmail.com>
Signed-off-by: Stefan Blaginov <Stefan.Blaginov@docusign.com>

* refactor(validation): alphabetical rearrangement

Signed-off-by: Stefan Blaginov <stefanblaginov@gmail.com>
Signed-off-by: Stefan Blaginov <Stefan.Blaginov@docusign.com>

* test(self-extending): remove redundant tests (codepath covered in concerto-cto)

Signed-off-by: Stefan Blaginov <stefanblaginov@gmail.com>
Signed-off-by: Stefan Blaginov <Stefan.Blaginov@docusign.com>

* test(fix): remove unneeded import

Signed-off-by: Stefan Blaginov <stefanblaginov@gmail.com>
Signed-off-by: Stefan Blaginov <Stefan.Blaginov@docusign.com>

---------

Signed-off-by: Stefan Blaginov <stefanblaginov@gmail.com>
Signed-off-by: Stefan Blaginov <Stefan.Blaginov@docusign.com>
Co-authored-by: Stefan Blaginov <Stefan.Blaginov@docusign.com>

* fix(class-declaration): throw with undefined ast properties (#771)

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>

* fix(error): adding type to error in string validator in introspect (#773)

* fix(error): adding type to error in string validator in introspect

Signed-off-by: Santanu Roy <edu.santanu12@gmail.com>
Co-authored-by: Santanu Roy <santanu.roy@docusign.com>

* refactor(declarations): move declaration uniqueness check to model file (#794)

* refactor(declarations): Move unique name check to model file.

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>

* refactor(test): move validation checks for duplicate class to model file

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>

* test: empty commit to trigger test

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>

---------

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>

* perf(core): don't use arrays to check uniqueness (#802)

refactor: don't use arrays to check uniqueness

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>

* perf(core): remove usage of arrays while forming duplicate item errors (#804)

* refactor: don't use arrays to check uniqueness

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>

* refactor: also refactor unique property name check

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>

* refactor: remove array for decorator uniqueness check

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>

* refactor: remove uniqueness check from scalar declarations as well

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>

---------

Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>

---------

Signed-off-by: Matt Roberts <code@rbrts.uk>
Signed-off-by: Stefan Blaginov <stefanblaginov@gmail.com>
Signed-off-by: Stefan Blaginov <Stefan.Blaginov@docusign.com>
Signed-off-by: Ertugrul Karademir <ekarademir@gmail.com>
Signed-off-by: Santanu Roy <edu.santanu12@gmail.com>
Co-authored-by: Stefan Blaginov <stefanblaginov@gmail.com>
Co-authored-by: Stefan Blaginov <Stefan.Blaginov@docusign.com>
Co-authored-by: Ertugrul Karademir <ekarademir@gmail.com>
Co-authored-by: Santanu Roy <43335319+santanu8961@users.noreply.github.com>
Co-authored-by: Santanu Roy <santanu.roy@docusign.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Declaration validation uniqueness check is O(n^2)
4 participants