Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 356236

Summary: Must use verbose syntax when setting dictionary annotations
Product: z_Archived Reporter: Matt Heitz <mheitz>
Component: EDTAssignee: Project Inbox <edt.compiler-inbox>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: pharmon
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

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.