update jdt.core to S4_17_0_M3

- adjust DiagnoseParser after grammar change
- reconcile new rule about records with role interfaces (re staticness)
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/NestedTypeBinding.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/NestedTypeBinding.java
index 89dbdd2..1a9a826 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/NestedTypeBinding.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/NestedTypeBinding.java
@@ -86,8 +86,14 @@
 public SyntheticArgumentBinding addSyntheticArgument(ReferenceBinding targetEnclosingType) {
 	if (!isPrototype()) throw new IllegalStateException();
 	if (isStatic()) {
+//{ObjectTeams: role interfaces are static, too:
+	  if (!isSynthInterface()) {
+// orig:
 		assert this.isRecord();// a local record is implicitly static; no other local type can be static
 		return null;
+// :giro
+	  }
+// SH}
 	}
 	SyntheticArgumentBinding synthLocal = null;
 	if (this.enclosingInstances == null) {
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/diagnose/DiagnoseParser.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/diagnose/DiagnoseParser.java
index a591721..dc60be9 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/diagnose/DiagnoseParser.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/diagnose/DiagnoseParser.java
@@ -460,9 +460,9 @@
 //{ObjectTeams: WATCHOUT: needs to be updated with each new grammar!!!!
 	private void setScannerState(int act) {
 		switch(act) {
-		case 243: this.lexStream.forceBaseIsIdentifier(); break; // ForceBaseIsIdentifier
-		case 244: this.lexStream.restoreBaseKeyword(); break;    // RestoreBaseKeyword
-		case 339: this.parser.scanner._insideParameterMapping = true; break; // NestedParamMappings
+		case 244: this.lexStream.forceBaseIsIdentifier(); break; // ForceBaseIsIdentifier
+		case 245: this.lexStream.restoreBaseKeyword(); break;    // RestoreBaseKeyword
+		case 340: this.parser.scanner._insideParameterMapping = true; break; // NestedParamMappings
 		}
 	}
 //SH}