| Summary: | [Xbase] Closures with more than 6 parameters | ||
|---|---|---|---|
| Product: | [Modeling] TMF | Reporter: | Christian Dietrich <christian.dietrich.opensource> |
| Component: | Xtext | Assignee: | Project Inbox <tmf.xtext-inbox> |
| Status: | CLOSED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | sebastian.zarnekow, sven.efftinge |
| Version: | 2.0.0 | Flags: | sven.efftinge:
indigo+
|
| Target Milestone: | M7 | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| Whiteboard: | |||
Hi Christian, thanks for the report - we are aware of the missing validation. Do you see an actual use case for more than 6 parameters? Regards, Sebastian Hi, no i do not see an usecase for more than 6 parameters - thus a validation rule would be ok for me ;-) pushed to master Closing all bugs that were set to RESOLVED before Neon.0 Closing all bugs that were set to RESOLVED before Neon.0 |
Build Identifier: Xtext 2.0 Trunk as of 2011-03-18 Xbase does Support Closures with more than 6 Parameters but the Compiler/Validator does not. So provide a Validation rule that gives the user an error. Reproducible: Always Steps to Reproduce: Taking following Xtend2 example class Test { doit() { var n = [Integer i1,Integer i2,Integer i3,Integer i4,Integer i5,Integer i6, Integer i7|i1] } } this is valid in the editor but does not compile / give error on the console java.lang.RuntimeException: org.eclipse.emf.common.util.WrappedException: XbaseJavaValidator#checkTypes for org.eclipse.xtext.xbase.impl.XClosureImpl@3d96f6fa caused: org.eclipse.xtext.xbase.lib.Functions$Function7 at org.eclipse.xtext.validation.AbstractDeclarativeValidator$MethodWrapper.invoke(AbstractDeclarativeValidator.java:122) at org.eclipse.xtext.validation.AbstractDeclarativeValidator.internalValidate(AbstractDeclarativeValidator.java:288) at org.eclipse.xtext.validation.AbstractInjectableValidator.validate(AbstractInjectableValidator.java:62) at org.eclipse.xtext.validation.CompositeEValidator.validate(CompositeEValidator.java:119) at org.eclipse.emf.ecore.util.Diagnostician.validate(Diagnostician.java:164) at org.eclipse.emf.ecore.util.Diagnostician.validate(Diagnostician.java:143) at org.eclipse.xtext.validation.CancelableDiagnostician.validate(CancelableDiagnostician.java:36) at org.eclipse.emf.ecore.util.Diagnostician.doValidateContents(Diagnostician.java:179) at org.eclipse.xtext.validation.CancelableDiagnostician.doValidateContents(CancelableDiagnostician.java:48) at org.eclipse.emf.ecore.util.Diagnostician.validate(Diagnostician.java:167) at org.eclipse.emf.ecore.util.Diagnostician.validate(Diagnostician.java:143) at org.eclipse.xtext.validation.CancelableDiagnostician.validate(CancelableDiagnostician.java:36) at org.eclipse.emf.ecore.util.Diagnostician.doValidateContents(Diagnostician.java:179) at org.eclipse.xtext.validation.CancelableDiagnostician.doValidateContents(CancelableDiagnostician.java:48) at org.eclipse.emf.ecore.util.Diagnostician.validate(Diagnostician.java:167) at org.eclipse.emf.ecore.util.Diagnostician.validate(Diagnostician.java:143) at org.eclipse.xtext.validation.CancelableDiagnostician.validate(CancelableDiagnostician.java:36) at org.eclipse.emf.ecore.util.Diagnostician.doValidateContents(Diagnostician.java:179) at org.eclipse.xtext.validation.CancelableDiagnostician.doValidateContents(CancelableDiagnostician.java:48) at org.eclipse.emf.ecore.util.Diagnostician.validate(Diagnostician.java:167) at org.eclipse.emf.ecore.util.Diagnostician.validate(Diagnostician.java:143) at org.eclipse.xtext.validation.CancelableDiagnostician.validate(CancelableDiagnostician.java:36) at org.eclipse.emf.ecore.util.Diagnostician.doValidateContents(Diagnostician.java:183) at org.eclipse.xtext.validation.CancelableDiagnostician.doValidateContents(CancelableDiagnostician.java:48) at org.eclipse.emf.ecore.util.Diagnostician.validate(Diagnostician.java:167) at org.eclipse.emf.ecore.util.Diagnostician.validate(Diagnostician.java:143) at org.eclipse.xtext.validation.CancelableDiagnostician.validate(CancelableDiagnostician.java:36) at org.eclipse.emf.ecore.util.Diagnostician.doValidateContents(Diagnostician.java:183) at org.eclipse.xtext.validation.CancelableDiagnostician.doValidateContents(CancelableDiagnostician.java:48) at org.eclipse.emf.ecore.util.Diagnostician.validate(Diagnostician.java:167) at org.eclipse.emf.ecore.util.Diagnostician.validate(Diagnostician.java:143) at org.eclipse.xtext.validation.CancelableDiagnostician.validate(CancelableDiagnostician.java:36) at org.eclipse.emf.ecore.util.Diagnostician.validate(Diagnostician.java:126) at org.eclipse.xtext.validation.ResourceValidatorImpl.validate(ResourceValidatorImpl.java:108) at org.eclipse.xtext.ui.editor.validation.ValidationJob$1.exec(ValidationJob.java:79) at org.eclipse.xtext.ui.editor.validation.ValidationJob$1.exec(ValidationJob.java:1) at org.eclipse.xtext.util.concurrent.AbstractReadWriteAcces.readOnly(AbstractReadWriteAcces.java:32) at org.eclipse.xtext.ui.editor.model.XtextDocument.readOnly(XtextDocument.java:86) at org.eclipse.xtext.ui.editor.validation.ValidationJob.createIssues(ValidationJob.java:75) at org.eclipse.xtext.ui.editor.validation.ValidationJob.run(ValidationJob.java:64) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) Caused by: org.eclipse.emf.common.util.WrappedException: XbaseJavaValidator#checkTypes for org.eclipse.xtext.xbase.impl.XClosureImpl@3d96f6fa caused: org.eclipse.xtext.xbase.lib.Functions$Function7 at org.eclipse.xtext.xbase.validation.XbaseJavaValidator.checkTypes(XbaseJavaValidator.java:80) at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.xtext.validation.AbstractDeclarativeValidator$MethodWrapper.invoke(AbstractDeclarativeValidator.java:106) ... 40 more Caused by: org.eclipse.emf.common.util.WrappedException: java.lang.ClassNotFoundException: org.eclipse.xtext.xbase.lib.Functions$Function7 at org.eclipse.xtext.xbase.typing.FunctionConversion.loadFunctionClass(FunctionConversion.java:363) at org.eclipse.xtext.xbase.typing.FunctionConversion.createRawFunctionTypeRef(FunctionConversion.java:322) at org.eclipse.xtext.xbase.typing.FunctionConversion.createFunctionTypeRef(FunctionConversion.java:330) at org.eclipse.xtext.xbase.typing.XbaseTypeProvider._type(XbaseTypeProvider.java:508) at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.xtext.util.PolymorphicDispatcher.invoke(PolymorphicDispatcher.java:291) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$2.doComputation(AbstractTypeProvider.java:160) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$2.doComputation(AbstractTypeProvider.java:1) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$CyclicHandlingSupport$3.get(AbstractTypeProvider.java:418) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$CyclicHandlingSupport$3.get(AbstractTypeProvider.java:1) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$1.get(AbstractTypeProvider.java:107) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$CyclicHandlingSupport.getType(AbstractTypeProvider.java:415) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider.doGetType(AbstractTypeProvider.java:191) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider.getType(AbstractTypeProvider.java:203) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider.getType(AbstractTypeProvider.java:199) at org.eclipse.xtext.xbase.validation.XbaseJavaValidator.checkTypes(XbaseJavaValidator.java:72) ... 44 more Caused by: java.lang.ClassNotFoundException: org.eclipse.xtext.xbase.lib.Functions$Function7 at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:494) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at org.eclipse.xtext.xbase.typing.FunctionConversion.loadFunctionClass(FunctionConversion.java:360) ... 61 more