Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManoj Palat2018-04-27 11:22:41 -0400
committerManoj Palat2018-04-27 11:22:41 -0400
commit4d16d4a7e5285c1dac76d445078c7eb29bbcc500 (patch)
tree2647391a4a18c47674ed2b8ff5b2916c48c0610d
parente5ce8d62839d03b3a8affb5e4bcaa2f5e2ab6db9 (diff)
downloadeclipse.jdt.core-manoj/const_dyn.531710.tar.gz
eclipse.jdt.core-manoj/const_dyn.531710.tar.xz
eclipse.jdt.core-manoj/const_dyn.531710.zip
Bug 53170 (WIP) [18.9][11] Support for JEP 309: Dynamic Class-Filemanoj/const_dyn.531710
Constants
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPool.java10
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPoolConstant.java22
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPoolEntry.java9
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPoolEntry2.java7
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ClassFileReader.java10
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CodeAttribute.java20
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ConstantPool.java7
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/DefaultBytecodeVisitor.java55
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/Disassembler.java14
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/Messages.java8
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/messages.properties8
11 files changed, 150 insertions, 20 deletions
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPool.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPool.java
index ab750ce47c..c56dc89336 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPool.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPool.java
@@ -1,10 +1,14 @@
/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
+ * This is an implementation of an early-draft specification developed under the Java
+ * Community Process (JCP) and is made available for testing and evaluation purposes
+ * only. The code is not compatible with any specification of the JCP.
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -39,7 +43,9 @@ public interface IConstantPool {
*
* <p>The return value can be an instance of {@link IConstantPoolEntry2} if the value returned
* by {@link #getEntryKind(int)} is either {@link IConstantPoolConstant#CONSTANT_MethodHandle},
- * {@link IConstantPoolConstant#CONSTANT_MethodType} or {@link IConstantPoolConstant#CONSTANT_InvokeDynamic}.</p>
+ * {@link IConstantPoolConstant#CONSTANT_MethodType},
+ * {@link IConstantPoolConstant#CONSTANT_InvokeDynamic},
+ * {@link IConstantPoolConstant#CONSTANT_Dynamic}.</p>
*
* <p>The return value can be an instance of {@link IConstantPoolEntry3} if the value returned
* by {@link #getEntryKind(int)} is either {@link IConstantPoolConstant#CONSTANT_Module}
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPoolConstant.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPoolConstant.java
index c5f0401474..28dbe1fe0e 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPoolConstant.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPoolConstant.java
@@ -1,10 +1,14 @@
/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
+ * This is an implementation of an early-draft specification developed under the Java
+ * Community Process (JCP) and is made available for testing and evaluation purposes
+ * only. The code is not compatible with any specification of the JCP.
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -41,7 +45,12 @@ public interface IConstantPoolConstant {
* @since 3.8
*/
int CONSTANT_InvokeDynamic = 18;
-
+ /**
+ * proposed new name in JVMLS11
+ * @since 3.14 BETA_JAVA11
+ */
+ int CONSTANT_DynamicCallSite = CONSTANT_InvokeDynamic;
+
/**
* @since 3.14
*/
@@ -50,6 +59,11 @@ public interface IConstantPoolConstant {
* @since 3.14
*/
int CONSTANT_Package = 20;
+ /**
+ * For the proposed section of JVMLS11 4.4.13 The CONSTANT_Dynamic_info Structure
+ * @since 3.14 BETA_JAVA11
+ */
+ int CONSTANT_Dynamic = 17;
int CONSTANT_Methodref_SIZE = 5;
int CONSTANT_Class_SIZE = 3;
@@ -76,6 +90,10 @@ public interface IConstantPoolConstant {
int CONSTANT_InvokeDynamic_SIZE = 5;
/**
+ * @since 3.14 BETA_JAVA11
+ */
+ int CONSTANT_Dynamic_SIZE = 5;
+ /**
* @since 3.14
*/
int CONSTANT_Module_SIZE = 3;
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPoolEntry.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPoolEntry.java
index 4ed570a0d7..9833b5f5e0 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPoolEntry.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPoolEntry.java
@@ -1,10 +1,14 @@
/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
+ * This is an implementation of an early-draft specification developed under the Java
+ * Community Process (JCP) and is made available for testing and evaluation purposes
+ * only. The code is not compatible with any specification of the JCP.
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -65,6 +69,7 @@ public interface IConstantPoolEntry {
* @see IConstantPoolConstant#CONSTANT_Methodref
* @see IConstantPoolConstant#CONSTANT_InterfaceMethodref
* @see IConstantPoolConstant#CONSTANT_InvokeDynamic
+ * @see IConstantPoolConstant#CONSTANT_Dynamic
*/
int getNameAndTypeIndex();
@@ -181,6 +186,7 @@ public interface IConstantPoolEntry {
* @see IConstantPoolConstant#CONSTANT_Methodref
* @see IConstantPoolConstant#CONSTANT_InterfaceMethodref
* @see IConstantPoolConstant#CONSTANT_InvokeDynamic
+ * @see IConstantPoolConstant#CONSTANT_Dynamic
*/
char[] getMethodName();
@@ -212,6 +218,7 @@ public interface IConstantPoolEntry {
* @see IConstantPoolConstant#CONSTANT_InterfaceMethodref
* @see IConstantPoolConstant#CONSTANT_MethodType
* @see IConstantPoolConstant#CONSTANT_InvokeDynamic
+ * @see IConstantPoolConstant#CONSTANT_Dynamic
*/
char[] getMethodDescriptor();
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPoolEntry2.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPoolEntry2.java
index c7c8674676..5569e4bfe9 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPoolEntry2.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IConstantPoolEntry2.java
@@ -1,10 +1,14 @@
/*******************************************************************************
- * Copyright (c) 2011 IBM Corporation and others.
+ * Copyright (c) 2011, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
+ * This is an implementation of an early-draft specification developed under the Java
+ * Community Process (JCP) and is made available for testing and evaluation purposes
+ * only. The code is not compatible with any specification of the JCP.
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -54,6 +58,7 @@ public interface IConstantPoolEntry2 extends IConstantPoolEntry {
*
* @return the reference kind. This value is set only when decoding a MethodHandle entry.
* @see IConstantPoolConstant#CONSTANT_InvokeDynamic
+ * @see IConstantPoolConstant#CONSTANT_Dynamic
*/
int getBootstrapMethodAttributeIndex();
}
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ClassFileReader.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ClassFileReader.java
index 30b235e85c..1c4f8e7a44 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ClassFileReader.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ClassFileReader.java
@@ -1,10 +1,14 @@
/*******************************************************************************
- * Copyright (c) 2000, 2011, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
+ * This is an implementation of an early-draft specification developed under the Java
+ * Community Process (JCP) and is made available for testing and evaluation purposes
+ * only. The code is not compatible with any specification of the JCP.
+ *
* Contributors:
* IBM Corporation - initial API and implementation
* Andy Clement - Contributions for
@@ -154,6 +158,10 @@ public class ClassFileReader extends ClassFileStruct implements IClassFileReader
constantPoolOffsets[i] = readOffset;
readOffset += IConstantPoolConstant.CONSTANT_InvokeDynamic_SIZE;
break;
+ case IConstantPoolConstant.CONSTANT_Dynamic :
+ constantPoolOffsets[i] = readOffset;
+ readOffset += IConstantPoolConstant.CONSTANT_Dynamic_SIZE;
+ break;
case IConstantPoolConstant.CONSTANT_Module:
constantPoolOffsets[i] = readOffset;
readOffset += IConstantPoolConstant.CONSTANT_Module_SIZE;
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CodeAttribute.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CodeAttribute.java
index 033e9e70ac..ffa873e88c 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CodeAttribute.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CodeAttribute.java
@@ -1,10 +1,14 @@
/*******************************************************************************
- * Copyright (c) 2000, 2016 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
+ * This is an implementation of an early-draft specification developed under the Java
+ * Community Process (JCP) and is made available for testing and evaluation purposes
+ * only. The code is not compatible with any specification of the JCP.
+ *
* Contributors:
* IBM Corporation - initial API and implementation
* Andy Clement (GoPivotal, Inc) aclement@gopivotal.com - Contributions for
@@ -267,10 +271,9 @@ public class CodeAttribute extends ClassFileAttribute implements ICodeAttribute
case IOpcodeMnemonics.LDC :
index = u1At(this.classFileBytes, 1, pc);
constantPoolEntry = this.constantPool.decodeEntry(index);
- if (constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_Float
- && constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_Integer
- && constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_String
- && constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_Class) {
+ int kind = constantPoolEntry.getKind();
+ if (kind == IConstantPoolConstant.CONSTANT_Long ||
+ kind == IConstantPoolConstant.CONSTANT_Double) {
throw new ClassFormatException(ClassFormatException.INVALID_CONSTANT_POOL_ENTRY);
}
visitor._ldc(pc - this.codeOffset, index, constantPoolEntry);
@@ -279,10 +282,9 @@ public class CodeAttribute extends ClassFileAttribute implements ICodeAttribute
case IOpcodeMnemonics.LDC_W :
index = u2At(this.classFileBytes, 1, pc);
constantPoolEntry = this.constantPool.decodeEntry(index);
- if (constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_Float
- && constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_Integer
- && constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_String
- && constantPoolEntry.getKind() != IConstantPoolConstant.CONSTANT_Class) {
+ int kind1 = constantPoolEntry.getKind();
+ if (kind1 == IConstantPoolConstant.CONSTANT_Long ||
+ kind1 == IConstantPoolConstant.CONSTANT_Double) {
throw new ClassFormatException(ClassFormatException.INVALID_CONSTANT_POOL_ENTRY);
}
visitor._ldc_w(pc - this.codeOffset, index, constantPoolEntry);
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ConstantPool.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ConstantPool.java
index aeff4afd36..4477c59cf1 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ConstantPool.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ConstantPool.java
@@ -1,10 +1,14 @@
/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
+ * This is an implementation of an early-draft specification developed under the Java
+ * Community Process (JCP) and is made available for testing and evaluation purposes
+ * only. The code is not compatible with any specification of the JCP.
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -140,6 +144,7 @@ public class ConstantPool extends ClassFileStruct implements IConstantPool {
constantPoolEntry = constantPoolEntry2;
break;
case IConstantPoolConstant.CONSTANT_InvokeDynamic :
+ case IConstantPoolConstant.CONSTANT_Dynamic :
constantPoolEntry2 = new ConstantPoolEntry2();
constantPoolEntry2.reset();
constantPoolEntry2.setKind(kind);
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/DefaultBytecodeVisitor.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/DefaultBytecodeVisitor.java
index 9c56677ec5..dc00e7bc1d 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/DefaultBytecodeVisitor.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/DefaultBytecodeVisitor.java
@@ -2040,6 +2040,19 @@ public class DefaultBytecodeVisitor implements IBytecodeVisitor {
Integer.toString(index),
returnConstantClassName(constantPoolEntry)
}));
+ break;
+ case IConstantPoolConstant.CONSTANT_MethodType :
+ appendConstantMethodType(this.buffer, Messages.classformat_ldc_w_methodhandle,
+ IOpcodeMnemonics.LDC_W, index, constantPoolEntry);
+ break;
+ case IConstantPoolConstant.CONSTANT_MethodHandle :
+ appendConstantMethodHandle(this.buffer, Messages.classformat_ldc_w_methodhandle,
+ IOpcodeMnemonics.LDC_W, index, constantPoolEntry);
+ break;
+ case IConstantPoolConstant.CONSTANT_Dynamic :
+ appendConstantDynamic(this.buffer, Messages.classformat_ldc_w_dynamic,
+ IOpcodeMnemonics.LDC_W, index, constantPoolEntry);
+ break;
}
writeNewLine();
}
@@ -2078,10 +2091,52 @@ public class DefaultBytecodeVisitor implements IBytecodeVisitor {
Integer.toString(index),
returnConstantClassName(constantPoolEntry)
}));
+ break;
+ case IConstantPoolConstant.CONSTANT_MethodType :
+ appendConstantMethodType(this.buffer, Messages.classformat_ldc_w_methodhandle,
+ IOpcodeMnemonics.LDC, index, constantPoolEntry);
+ break;
+ case IConstantPoolConstant.CONSTANT_MethodHandle :
+ appendConstantMethodHandle(this.buffer, Messages.classformat_ldc_w_methodhandle,
+ IOpcodeMnemonics.LDC, index, constantPoolEntry);
+ break;
+ case IConstantPoolConstant.CONSTANT_Dynamic :
+ appendConstantDynamic(this.buffer, Messages.classformat_ldc_w_dynamic,
+ IOpcodeMnemonics.LDC, index, constantPoolEntry);
+ break;
}
writeNewLine();
}
+ private StringBuffer appendConstantDynamic(StringBuffer s, String messageKind, int opcode,
+ int index, IConstantPoolEntry constantPoolEntry) {
+ return s.append(Messages.bind(messageKind, new String[] {
+ OpcodeStringValues.BYTECODE_NAMES[opcode],
+ Integer.toString(index),
+ Integer.toString(((IConstantPoolEntry2) constantPoolEntry).getBootstrapMethodAttributeIndex()),
+ new String(constantPoolEntry.getMethodName()),
+ new String(constantPoolEntry.getMethodDescriptor())
+ }));
+ }
+
+ private StringBuffer appendConstantMethodType(StringBuffer s, String messageKind, int opcode,
+ int index, IConstantPoolEntry constantPoolEntry) {
+ return s.append(Messages.bind(messageKind, new String[] {
+ OpcodeStringValues.BYTECODE_NAMES[opcode],
+ Integer.toString(index),
+ new String(constantPoolEntry.getMethodDescriptor())
+ }));
+ }
+
+ private StringBuffer appendConstantMethodHandle(StringBuffer s, String messageKind, int opcode,
+ int index, IConstantPoolEntry constantPoolEntry) {
+ return s.append(Messages.bind(messageKind, new String[] {
+ OpcodeStringValues.BYTECODE_NAMES[opcode],
+ Integer.toString(index),
+ Integer.toString(((IConstantPoolEntry2) constantPoolEntry).getReferenceKind()),
+ Integer.toString(((IConstantPoolEntry2) constantPoolEntry).getReferenceIndex())
+ }));
+ }
/**
* @see IBytecodeVisitor#_ldc2_w(int, int, IConstantPoolEntry)
*/
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/Disassembler.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/Disassembler.java
index a2e3492c71..1713cf6d44 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/Disassembler.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/Disassembler.java
@@ -1,10 +1,14 @@
/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
+ * This is an implementation of an early-draft specification developed under the Java
+ * Community Process (JCP) and is made available for testing and evaluation purposes
+ * only. The code is not compatible with any specification of the JCP.
+ *
* Contributors:
* IBM Corporation - initial API and implementation
* Andy Clement (GoPivotal, Inc) aclement@gopivotal.com - Contributions for
@@ -1793,7 +1797,8 @@ public class Disassembler extends ClassFileBytesDisassembler {
}
IConstantPoolEntry constantPoolEntry = constantPool.decodeEntry(i);
String[] methodDescription;
- switch (constantPool.getEntryKind(i)) {
+ int kind = constantPool.getEntryKind(i);
+ switch (kind) {
case IConstantPoolConstant.CONSTANT_Class :
buffer.append(
Messages.bind(Messages.disassembler_constantpool_class,
@@ -1914,9 +1919,12 @@ public class Disassembler extends ClassFileBytesDisassembler {
}));
break;
case IConstantPoolConstant.CONSTANT_InvokeDynamic :
+ case IConstantPoolConstant.CONSTANT_Dynamic :
entry2 = (IConstantPoolEntry2) constantPoolEntry;
buffer.append(
- Messages.bind(Messages.disassembler_constantpool_invokedynamic,
+ Messages.bind(kind == IConstantPoolConstant.CONSTANT_InvokeDynamic ?
+ Messages.disassembler_constantpool_invokedynamic :
+ Messages.disassembler_constantpool_dynamic,
new String[] {
Integer.toString(i),
Integer.toString(entry2.getBootstrapMethodAttributeIndex()),
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/Messages.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/Messages.java
index e5a6198f7b..316e14f9ad 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/Messages.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/Messages.java
@@ -5,6 +5,10 @@
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
+ * This is an implementation of an early-draft specification developed under the Java
+ * Community Process (JCP) and is made available for testing and evaluation purposes
+ * only. The code is not compatible with any specification of the JCP.
+ *
* Contributors:
* IBM Corporation - initial API and implementation
* Andy Clement (GoPivotal, Inc) aclement@gopivotal.com - Contributions for
@@ -301,6 +305,7 @@ public final class Messages extends NLS {
public static String disassembler_constantpool_methodhandle;
public static String disassembler_constantpool_methodtype;
public static String disassembler_constantpool_invokedynamic;
+ public static String disassembler_constantpool_dynamic;
public static String disassembler_annotationdefaultheader;
public static String disassembler_annotationdefaultvalue;
public static String disassembler_annotationenumvalue;
@@ -360,6 +365,9 @@ public final class Messages extends NLS {
public static String classformat_checkcast;
public static String classformat_instanceof;
public static String classformat_ldc_w_class;
+ public static String classformat_ldc_w_methodtype;
+ public static String classformat_ldc_w_methodhandle;
+ public static String classformat_ldc_w_dynamic;
public static String classformat_ldc_w_float;
public static String classformat_ldc_w_integer;
public static String classformat_ldc_w_string;
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/messages.properties b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/messages.properties
index 7cf3f28922..43d61c21f8 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/messages.properties
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/messages.properties
@@ -5,6 +5,10 @@
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
+# This is an implementation of an early-draft specification developed under the Java
+# Community Process (JCP) and is made available for testing and evaluation purposes
+# only. The code is not compatible with any specification of the JCP.
+#
# Contributors:
# IBM Corporation - initial API and implementation
# Andy Clement (GoPivotal, Inc) aclement@gopivotal.com - Contributions for
@@ -328,6 +332,7 @@ disassembler_constantpool_utf8 = constant #{0} utf8: "{1}"
disassembler_constantpool_methodhandle = constant #{0} method handle: {1} #{2}
disassembler_constantpool_methodtype = constant #{0} method type: #{1} {2}
disassembler_constantpool_invokedynamic = constant #{0} invoke dynamic: #{1} #{2} {3} {4}
+disassembler_constantpool_dynamic = constant #{0} invoke dynamic: #{1} #{2} {3} {4}
disassembler_annotationdefaultheader = Annotation Default:\
disassembler_annotationdefaultvalue= {0} (constant type)
disassembler_annotationenumvalue = {2}.{3}(enum type #{0}.#{1})
@@ -409,6 +414,9 @@ classfileformat_versionUnknown = unknown
classformat_anewarray = {0} {2} [{1}]
classformat_checkcast = {0} {2} [{1}]
classformat_instanceof = {0} {2} [{1}]
+classformat_ldc_w_methodtype = {0} <MethodType {2}> [{1}]
+classformat_ldc_w_methodhandle = {0} <MethodHandle {2} {3}> [{1}]
+classformat_ldc_w_dynamic = {0} <Dynamic {2} {3} {4}> [{1}]
classformat_ldc_w_class = {0} <Class {2}> [{1}]
classformat_ldc_w_float = {0} <Float {2}> [{1}]
classformat_ldc_w_integer = {0} <Integer {2}> [{1}]

Back to the top