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

(Non-static) polyfills causing exception when compiling n4js-libs #2235

Open
mor-n4 opened this issue Oct 20, 2021 · 0 comments
Open

(Non-static) polyfills causing exception when compiling n4js-libs #2235

mor-n4 opened this issue Oct 20, 2021 · 0 comments
Labels

Comments

@mor-n4
Copy link
Contributor

mor-n4 commented Oct 20, 2021

When removing the work-around in MemberCube (search for GH-2235), compilation of the n4js-libs fails with an exception (see below). However, this happens only on GitLab CI, not locally, possibly due to a different build order.

This should be fixed and the work-around removed.

Caused by: java.lang.IllegalArgumentException: name may not be null
at org.eclipse.n4js.ts.types.util.NameStaticPair.<init>(NameStaticPair.java:48)
	at org.eclipse.n4js.ts.types.util.NameStaticPair.<init>(NameStaticPair.java:40)
	at org.eclipse.n4js.ts.types.util.NameStaticPair.of(NameStaticPair.java:33)
	at org.eclipse.n4js.validation.utils.MemberCube.addMembers(MemberCube.java:52)
	at org.eclipse.n4js.validation.utils.MemberCube.<init>(MemberCube.java:43)
	at org.eclipse.n4js.validation.validators.N4JSMemberRedefinitionValidator.createMemberValidationList(N4JSMemberRedefinitionValidator.java:1278)
	at org.eclipse.n4js.validation.validators.N4JSMemberRedefinitionValidator.checkMemberRedefinitions(N4JSMemberRedefinitionValidator.java:189)
	at jdk.internal.reflect.GeneratedMethodAccessor255.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.eclipse.xtext.validation.AbstractDeclarativeValidator$MethodWrapper.invoke(AbstractDeclarativeValidator.java:129)
	at org.eclipse.n4js.validation.N4JSValidator$N4JSMethodWrapperCancelable.invoke(N4JSValidator.java:105)
	... 44 more

NOTE: this is similar to GH-2228.

@mor-n4 mor-n4 added the bug label Oct 20, 2021
mor-n4 added a commit that referenced this issue Oct 20, 2021
@mor-n4 mor-n4 changed the title Validation causing exception when compiling n4js-libs (Non-static) polyfills causing exception when compiling n4js-libs Oct 20, 2021
mor-n4 added a commit that referenced this issue Oct 20, 2021
… imported from standard documents (#2234)

* remove scope folder @n4js-temp

* switch from npm to yarn

Now "preinstall": "npx npm-force-resolutions" is no longer required
in package.json, because yarn supports resolutions out-of-the-box.

* add support for type alias

* add tests

* support for read-only fields and getter in interfaces

* minor improvement

* support for type parameters of classes and interfaces

* add cmd line option --runtime-libs

* do not include TS built-in libs when --runtime-libs is specified

* support the "ctor/instance type pattern" in runtime lib .d.ts files

* support construct and call signature declarations

* some features and improvements (e.g. annotations, illegal member names)

* tests

* remove an unused import

* add support for static members

* support for generic methods

* some adjustments in runtimeLibs.n4js to reflect recent changes in N4JS

* add first support for converting type references from .d.ts to .n4jsd

* temporary: ignore folder TEMP

* support for object types

* temporary: minor changes for ease of debugging

* support for 'this' type

* support for type operators (e.g. readonly) - ignored on N4JS side

* add test for type operators

* add place-holder support for type predicates and mapped types

* skip ignored elements as early as possible

* add place-holder support for index signatures

* support for JSDoc comments

* minor fix

* avoid "this" as parameter name + support for additional members

* support multiple declarations for the same interface

* better support for prefix/suffix of scripts

* replace builtin_js.n4jsd (without jsdoc)

* handling of parameterized call signatures (not supported in N4JS)

* re-generated builtin_js.n4jsd

* strip 'undefined' from unions

* re-generated builtin_js.n4jsd

* support for member replacement in runtimeLibs mode

* re-generated builtin_js.n4jsd

* support for extends/implements clauses of classifiers

* fix some tests

* more fixes to get tests green

* even more fixes to get tests green

* some changes to make n4js-libs compile (partial)

* Squashed commit of the following (GH-2224):

commit 8d0f49c
Author: Mark-Oliver Reiser <mark-oliver.reiser@numberfour.eu>
Date:   Thu Oct 7 13:49:58 2021 +0200

    minor: improve wording of some comments

commit aa40a90
Author: Mark-Oliver Reiser <mark-oliver.reiser@numberfour.eu>
Date:   Thu Oct 7 13:42:24 2021 +0200

    more tests

commit 8cfd1c4
Author: Mark-Oliver Reiser <mark-oliver.reiser@numberfour.eu>
Date:   Thu Oct 7 13:35:05 2021 +0200

    fix bug in n4js-runtime-html5

commit a7d4258
Author: Mark-Oliver Reiser <mark-oliver.reiser@numberfour.eu>
Date:   Thu Oct 7 13:11:05 2021 +0200

    add a validation

commit 7b8d5bd
Author: Mark-Oliver Reiser <mark-oliver.reiser@numberfour.eu>
Date:   Thu Oct 7 12:52:19 2021 +0200

    clean up: remove two obsolete FIXMEs

commit 6e9178f
Author: Mark-Oliver Reiser <mark-oliver.reiser@numberfour.eu>
Date:   Thu Oct 7 12:46:08 2021 +0200

    yet more tests

commit 74ffddf
Author: Mark-Oliver Reiser <mark-oliver.reiser@numberfour.eu>
Date:   Thu Oct 7 12:31:50 2021 +0200

    more tests

commit 180b137
Author: Mark-Oliver Reiser <mark-oliver.reiser@numberfour.eu>
Date:   Thu Oct 7 12:20:55 2021 +0200

    more validations

commit 61781b8
Author: Mark-Oliver Reiser <mark-oliver.reiser@numberfour.eu>
Date:   Thu Oct 7 11:35:06 2021 +0200

    add/adjust some validations

commit 05a72f1
Author: Mark-Oliver Reiser <mark-oliver.reiser@numberfour.eu>
Date:   Thu Oct 7 09:56:15 2021 +0200

    support (non-static) polyfills for interfaces (pending: validations)

* misc. fixes to avoid compile errors in n4js-libs

* move runtimeLib configuration to separate file

* adjust some test

* add option for not emitting JSDoc comments

* support more cases of declaration merging + better approach

* process runtime libs in the order they are defined in the config file

* refactoring: change from functions to class methods

* minor clean up

* support for handling ctor/instance type pattern across file boundaries

* registration of remaining runtime library files

* fixes in handling of multiple declarations across files

* replace .n4jsd files in n4js-libs by generated files

* initial version of script for generating built-in types

* minor unrelated fix in MWE2 workflow for building n4js-libs

* minor fix

* change temporary handling of overloading

Emit signature "(...args: any+): any+" instead of arbitrarily emitting
the first signature.

* support symbols as member names

* ctor/instance type pattern: create type alias for removed ctor type

* more improvements and adjustments

* support for generic type aliases

* more patching

* more improvements and patching (now es2015 compiles)

* yet more improvements and patching (now esnext compiles)

* add support for tuple types

* add place-holder functionality for indexed access types

* improvements and more patching to resolve compile errors in nj4s-libs

* minor clean up

* Merge branch GH-2230 (squashed).

* slightly more patching

* support ignoring individual signatures + type parameters per signature

* more patching + some fixes and improvements

* prepare conversion of DOM API in shell script

* adjustment in n4js-runtime-html5 for compatibility with new built-ins

* experimental: 1st approach of bug fix to avoid failure on GitLab CI

* experimental: continues previous commit

* more improvements, fixes, patching to get stdlib to compile

* more improvements, fixes, patching to get OPR to compile

* fix scoping tests

* improve BuiltInTypesDefinitionTest + fix validation issues in built-ins

* fix more tests + minor improvement of patching

* bump version from 0.28.x to 0.29.x

* remove a few obsolete FIXME markers

* fix fix scoping tests (again)

* allow custom runtime library generation config in tests + clean up

* resolve/remove a few more FIXMEs

* review feedback

* revert experimental commits a40d991 f07b8ff

* add temporary work-around for GH-2235
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant