Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 356236 - Must use verbose syntax when setting dictionary annotations
Summary: Must use verbose syntax when setting dictionary annotations
Status: CLOSED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: EDT (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-08-30 13:49 EDT by Matt Heitz CLA
Modified: 2017-02-23 14:17 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Matt Heitz CLA 2011-08-30 13:49:11 EDT
I get an error on the following declaration.

dx dictionary{ caseSensitive = false, ordering = OrderingKind.byKey };

IWN.JavaGen.9998.e 8/187 Exception occurred: java.lang.RuntimeException: org.eclipse.edt.mof.egl.NoSuchMemberError: Member not found: casesensitive

I have to do this instead
d8 dictionary{ @ordering{ OrderingKind.byKey }, @caseSensitive{ false } };




A related problem happens when the annotations are set on a new expression
dy dictionary = new dictionary{ @ordering{ OrderingKind.byKey }, @caseSensitive{ false } };

IWN.VAL.7510.e 20/46 A positional property is not valid for use with any. The item must be an array with a specified length.

I have to do this instead
d8 = new dictionary{ @ordering{ value = OrderingKind.byKey }, @caseSensitive{ value = false } };
Comment 1 Paul Harmon CLA 2011-08-30 16:10:53 EDT
This was caused by some code in the binders that was specifically looking for the package egl.core when setting up the annotations for a dictionary. I have change this to look for the correct package (eglx.lang).

The related problem is an issue that occurs in RBD as well. You can open a separate bug (and a defect for RBD) if necessary.
Comment 2 Matt Heitz CLA 2011-08-31 11:32:45 EDT
This part is working now:
  dx dictionary{ caseSensitive = true, ordering = OrderingKind.byKey };

However, I still get the NoSuchMemberError on a new expression:
  dx dictionary = new dictionary{ caseSensitive = true, ordering = OrderingKind.byKey };
Comment 3 Matt Heitz CLA 2011-08-31 14:32:15 EDT
As we discussed, you were right, that stuff isn't supposed to work on a new expression.  I'm going to open a Future enhancement so there's a constructor you can pass caseSensitive and ordering into.
Comment 4 Matt Heitz CLA 2011-09-08 13:32:30 EDT
Closing.