# HG changeset patch # User Christian Humer # Date 1389121587 -3600 # Node ID 85b485b1e8e1d21c4fd00589f97a943958b7a425 # Parent 1f870eaf1e9672402886ba1c3ab2c3f8de67dedd Truffle-DSL: removed support for implicit parameters. not needed anymore. diff -r 1f870eaf1e96 -r 85b485b1e8e1 graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/NodeCodeGenerator.java --- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/NodeCodeGenerator.java Tue Jan 07 20:05:55 2014 +0100 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/NodeCodeGenerator.java Tue Jan 07 20:06:27 2014 +0100 @@ -125,7 +125,7 @@ } } - private void addInternalValueParameterNames(CodeTreeBuilder builder, TemplateMethod source, TemplateMethod specialization, String unexpectedValueName, boolean forceFrame, boolean includeImplicit, + private void addInternalValueParameterNames(CodeTreeBuilder builder, TemplateMethod source, TemplateMethod specialization, String unexpectedValueName, boolean forceFrame, Map customNames) { if (forceFrame && specialization.getSpecification().findParameterSpec("frame") != null) { builder.string("frameValue"); @@ -136,9 +136,6 @@ continue; } - if (!includeImplicit && (parameter.isImplicit())) { - continue; - } if (parameter.getSpecification().isLocal()) { continue; } @@ -240,11 +237,6 @@ valueParameter = targetParameter; } TypeMirror targetType = targetParameter.getType(); - - if (targetParameter.isImplicit() || valueParameter.isImplicit()) { - continue; - } - TypeMirror valueType = null; if (valueParameter != null) { valueType = valueParameter.getType(); @@ -342,7 +334,7 @@ builder.startThrow().startNew(getContext().getType(UnsupportedOperationException.class)); builder.startCall("createInfo0"); builder.doubleQuote("Unsupported values"); - addInternalValueParameterNames(builder, current, current, null, false, true, null); + addInternalValueParameterNames(builder, current, current, null, false, null); builder.end().end().end(); } @@ -1284,7 +1276,7 @@ } builder.startStatement().string("String message = ").startCall("createInfo0").string("reason"); - addInternalValueParameterNames(builder, node.getGenericSpecialization(), node.getGenericSpecialization(), null, false, true, null); + addInternalValueParameterNames(builder, node.getGenericSpecialization(), node.getGenericSpecialization(), null, false, null); builder.end().end(); final String currentNodeVar = currentNode; @@ -1749,7 +1741,7 @@ } if (current.isGeneric()) { builder.startReturn().tree(replace).string(".").startCall(EXECUTE_GENERIC_NAME); - addInternalValueParameterNames(builder, source, current, null, current.getNode().needsFrame(getContext()), true, null); + addInternalValueParameterNames(builder, source, current, null, current.getNode().needsFrame(getContext()), null); builder.end().end(); } else if (current.getMethod() == null) { if (replaceCall != null) { @@ -1808,7 +1800,7 @@ builder.startReturn(); builder.startCall("currentCopy.next0", EXECUTE_POLYMORPHIC_NAME); - addInternalValueParameterNames(builder, node.getGenericSpecialization(), node.getGenericSpecialization(), null, true, true, null); + addInternalValueParameterNames(builder, node.getGenericSpecialization(), node.getGenericSpecialization(), null, true, null); builder.end(); builder.end(); @@ -2270,7 +2262,7 @@ CodeTreeBuilder execute = new CodeTreeBuilder(builder); execute.startCall("next0", EXECUTE_POLYMORPHIC_NAME); - addInternalValueParameterNames(execute, specialization, polymorphic, param.getLocalName(), true, true, null); + addInternalValueParameterNames(execute, specialization, polymorphic, param.getLocalName(), true, null); execute.end(); TypeData sourceType = polymorphic.getReturnType().getTypeSystemType(); @@ -2404,7 +2396,7 @@ CodeTreeBuilder specializeCall = new CodeTreeBuilder(parent); specializeCall.startCall(EXECUTE_SPECIALIZE_NAME); specializeCall.string(String.valueOf(node.getSpecializations().indexOf(current))); - addInternalValueParameterNames(specializeCall, generic, node.getGenericSpecialization(), exceptionParam != null ? exceptionParam.getLocalName() : null, true, true, null); + addInternalValueParameterNames(specializeCall, generic, node.getGenericSpecialization(), exceptionParam != null ? exceptionParam.getLocalName() : null, true, null); specializeCall.doubleQuote(reason); specializeCall.end().end(); @@ -2683,7 +2675,7 @@ } else { CodeTreeBuilder elseBuilder = new CodeTreeBuilder(builder); elseBuilder.startReturn().startCall("this.next0", EXECUTE_POLYMORPHIC_NAME); - addInternalValueParameterNames(elseBuilder, polymorphic, polymorphic, null, true, true, null); + addInternalValueParameterNames(elseBuilder, polymorphic, polymorphic, null, true, null); elseBuilder.end().end(); boolean forceElse = specialization.getExceptions().size() > 0; @@ -2724,7 +2716,7 @@ CodeTreeBuilder specializeCall = new CodeTreeBuilder(builder); specializeCall.startCall(EXECUTE_SPECIALIZE_NAME); specializeCall.string("0"); - addInternalValueParameterNames(specializeCall, specialization, node.getGenericSpecialization(), null, true, true, null); + addInternalValueParameterNames(specializeCall, specialization, node.getGenericSpecialization(), null, true, null); specializeCall.startGroup().doubleQuote("Uninitialized polymorphic (").string(" + depth + ").doubleQuote("/" + node.getPolymorphicDepth() + ")").end(); specializeCall.end().end(); @@ -2904,19 +2896,19 @@ CodeTreeBuilder returnBuilder = new CodeTreeBuilder(parent); if (specialization.isPolymorphic()) { returnBuilder.startCall("next0", EXECUTE_POLYMORPHIC_NAME); - addInternalValueParameterNames(returnBuilder, specialization, specialization, null, true, true, null); + addInternalValueParameterNames(returnBuilder, specialization, specialization, null, true, null); returnBuilder.end(); } else if (specialization.isUninitialized()) { returnBuilder.startCall("super", EXECUTE_SPECIALIZE_NAME); returnBuilder.string("0"); - addInternalValueParameterNames(returnBuilder, specialization, specialization, null, true, true, null); + addInternalValueParameterNames(returnBuilder, specialization, specialization, null, true, null); returnBuilder.doubleQuote("Uninitialized monomorphic"); returnBuilder.end(); } else if (specialization.getMethod() == null && !node.needsRewrites(context)) { emitEncounteredSynthetic(builder, specialization); } else if (specialization.isGeneric()) { returnBuilder.startCall("super", EXECUTE_GENERIC_NAME); - addInternalValueParameterNames(returnBuilder, specialization, specialization, null, node.needsFrame(getContext()), true, null); + addInternalValueParameterNames(returnBuilder, specialization, specialization, null, node.needsFrame(getContext()), null); returnBuilder.end(); } else { returnBuilder.tree(createTemplateMethodCall(returnBuilder, null, specialization, specialization, null)); diff -r 1f870eaf1e96 -r 85b485b1e8e1 graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/NodeMethodParser.java --- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/NodeMethodParser.java Tue Jan 07 20:05:55 2014 +0100 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/NodeMethodParser.java Tue Jan 07 20:06:27 2014 +0100 @@ -76,7 +76,6 @@ MethodSpec methodSpec = new MethodSpec(createReturnParameterSpec()); addDefaultFrame(methodSpec); - addDefaultImplicitThis(method, methodSpec); addDefaultFieldMethodSpec(methodSpec); addDefaultChildren(shortCircuitsEnabled, shortCircuitName, methodSpec); @@ -117,17 +116,6 @@ } } - protected void addDefaultImplicitThis(ExecutableElement method, MethodSpec methodSpec) { - if (method == null) { - return; - } - TypeMirror declaredType = Utils.findNearestEnclosingType(method).asType(); - - if (!method.getModifiers().contains(Modifier.STATIC) && !Utils.isAssignable(getContext(), declaredType, getContext().getTruffleTypes().getNode())) { - methodSpec.addImplicitRequiredType(getNode().getTemplateType().asType()); - } - } - private static String shortCircuitValueName(String valueName) { return "has" + Utils.firstLetterUpperCase(valueName); } diff -r 1f870eaf1e96 -r 85b485b1e8e1 graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/SpecializationData.java --- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/SpecializationData.java Tue Jan 07 20:05:55 2014 +0100 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/SpecializationData.java Tue Jan 07 20:06:27 2014 +0100 @@ -241,7 +241,7 @@ if (getParameters().isEmpty() || !Utils.typeEquals(getParameters().get(0).getType(), frameType)) { ParameterSpec frameSpec = getSpecification().findParameterSpec("frame"); if (frameSpec != null) { - getParameters().add(0, new ActualParameter(frameSpec, frameType, -1, -1, false)); + getParameters().add(0, new ActualParameter(frameSpec, frameType, -1, -1)); } } } diff -r 1f870eaf1e96 -r 85b485b1e8e1 graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/template/ActualParameter.java --- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/template/ActualParameter.java Tue Jan 07 20:05:55 2014 +0100 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/template/ActualParameter.java Tue Jan 07 20:06:27 2014 +0100 @@ -35,32 +35,30 @@ private final String localName; private final int specificationVarArgsIndex; private final int typeVarArgsIndex; - private final boolean implicit; private final TypeMirror actualType; - public ActualParameter(ParameterSpec specification, TypeMirror actualType, int specificationVarArgsIndex, int typeVarArgsIndex, boolean implicit) { + public ActualParameter(ParameterSpec specification, TypeMirror actualType, int specificationVarArgsIndex, int typeVarArgsIndex) { this.specification = specification; this.actualType = actualType; this.typeSystemType = null; this.specificationVarArgsIndex = specificationVarArgsIndex; - this.implicit = implicit; String valueName = specification.getName() + "Value"; if (specificationVarArgsIndex > -1) { - valueName += "_" + specificationVarArgsIndex; + valueName += specificationVarArgsIndex; } this.typeVarArgsIndex = typeVarArgsIndex; this.localName = valueName; } - public ActualParameter(ParameterSpec specification, TypeData actualType, int specificationIndex, int varArgsIndex, boolean implicit) { - this(specification, actualType.getPrimitiveType(), specificationIndex, varArgsIndex, implicit); + public ActualParameter(ParameterSpec specification, TypeData actualType, int specificationIndex, int varArgsIndex) { + this(specification, actualType.getPrimitiveType(), specificationIndex, varArgsIndex); this.typeSystemType = actualType; } public ActualParameter(ActualParameter parameter, TypeData otherType) { - this(parameter.specification, otherType, parameter.specificationVarArgsIndex, parameter.typeVarArgsIndex, parameter.implicit); + this(parameter.specification, otherType, parameter.specificationVarArgsIndex, parameter.typeVarArgsIndex); } public ActualParameter(ActualParameter parameter) { @@ -68,7 +66,6 @@ this.actualType = parameter.actualType; this.typeSystemType = parameter.typeSystemType; this.specificationVarArgsIndex = parameter.specificationVarArgsIndex; - this.implicit = parameter.implicit; this.localName = parameter.localName; this.typeVarArgsIndex = parameter.typeVarArgsIndex; } @@ -77,10 +74,6 @@ return typeVarArgsIndex; } - public boolean isImplicit() { - return implicit; - } - public int getSpecificationVarArgsIndex() { return specificationVarArgsIndex; } diff -r 1f870eaf1e96 -r 85b485b1e8e1 graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/template/TemplateMethodParser.java --- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/template/TemplateMethodParser.java Tue Jan 07 20:05:55 2014 +0100 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/template/TemplateMethodParser.java Tue Jan 07 20:06:27 2014 +0100 @@ -151,7 +151,7 @@ private E parseImpl(MethodSpec methodSpecification, String id, ExecutableElement method, AnnotationMirror annotation, TypeMirror returnType, List parameterTypes) { ParameterSpec returnTypeSpec = methodSpecification.getReturnType(); - ActualParameter returnTypeMirror = matchParameter(returnTypeSpec, returnType, template, -1, -1, false); + ActualParameter returnTypeMirror = matchParameter(returnTypeSpec, returnType, template, -1, -1); if (returnTypeMirror == null) { if (emitErrors) { E invalidMethod = create(new TemplateMethod(id, template, methodSpecification, method, annotation, returnTypeMirror, Collections. emptyList()), true); @@ -248,7 +248,7 @@ ParameterSpec specification = specifications.get(specIndex); for (int typeIndex = typeStartIndex; typeIndex < types.size(); typeIndex++) { TypeMirror actualType = types.get(typeIndex); - ActualParameter optionalParam = matchParameter(specification, actualType, template, -1, -1, false); + ActualParameter optionalParam = matchParameter(specification, actualType, template, -1, -1); if (optionalParam != null) { parsedParams.add(optionalParam); typeStartIndex = typeIndex + 1; @@ -281,7 +281,6 @@ return null; } - boolean implicit = typeIndex < spec.getImplicitRequiredTypes().size(); int typeVarArgsIndex = typeVarArgs ? typeIndex - types.size() + 1 : -1; int specVarArgsIndex = specVarArgs ? specificationIndex - specifications.size() + 1 : -1; @@ -291,7 +290,7 @@ break; } - ActualParameter resolvedParameter = matchParameter(specification, actualType, template, specVarArgsIndex, typeVarArgsIndex, implicit); + ActualParameter resolvedParameter = matchParameter(specification, actualType, template, specVarArgsIndex, typeVarArgsIndex); if (resolvedParameter == null) { return null; } @@ -337,7 +336,7 @@ } } - protected final ActualParameter matchParameter(ParameterSpec specification, TypeMirror mirror, Template originalTemplate, int specificationIndex, int varArgsIndex, boolean implicit) { + protected final ActualParameter matchParameter(ParameterSpec specification, TypeMirror mirror, Template originalTemplate, int specificationIndex, int varArgsIndex) { TypeMirror resolvedType = mirror; if (hasError(resolvedType)) { resolvedType = context.resolveNotYetCompiledType(mirror, originalTemplate); @@ -349,9 +348,9 @@ TypeData resolvedTypeData = getTypeSystem().findTypeData(resolvedType); if (resolvedTypeData != null) { - return new ActualParameter(specification, resolvedTypeData, specificationIndex, varArgsIndex, implicit); + return new ActualParameter(specification, resolvedTypeData, specificationIndex, varArgsIndex); } else { - return new ActualParameter(specification, resolvedType, specificationIndex, varArgsIndex, implicit); + return new ActualParameter(specification, resolvedType, specificationIndex, varArgsIndex); } }