• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java GroovyBugError类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.codehaus.groovy.GroovyBugError的典型用法代码示例。如果您正苦于以下问题:Java GroovyBugError类的具体用法?Java GroovyBugError怎么用?Java GroovyBugError使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



GroovyBugError类属于org.codehaus.groovy包,在下文中一共展示了GroovyBugError类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: parse

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
/**
 * Parses the source to a CST.  You can retrieve it with getCST().
 */
public void parse() throws CompilationFailedException {
    if (this.phase > Phases.PARSING) {
        throw new GroovyBugError("parsing is already complete");
    }

    if (this.phase == Phases.INITIALIZATION) {
        nextPhase();
    }

    //
    // Create a reader on the source and run the parser.

    try (Reader reader = source.getReader()) {
        // let's recreate the parser each time as it tends to keep around state
        parserPlugin = getConfiguration().getPluginFactory().createParserPlugin();

        cst = parserPlugin.parseCST(this, reader);
    } catch (IOException e) {
        getErrorCollector().addFatalError(new SimpleMessage(e.getMessage(), this));
    }
}
 
开发者ID:apache,项目名称:groovy,代码行数:25,代码来源:SourceUnit.java


示例2: handleMissingMethod

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
@Override
@SuppressWarnings("unchecked")
public List<MethodNode> handleMissingMethod(final ClassNode receiver, final String name, final ArgumentListExpression argumentList, final ClassNode[] argumentTypes, final MethodCall call) {
    List<Closure> onMethodSelection = eventHandlers.get("handleMissingMethod");
    List<MethodNode> methodList = new LinkedList<MethodNode>();
    if (onMethodSelection != null) {
        for (Closure closure : onMethodSelection) {
            Object result = safeCall(closure, receiver, name, argumentList, argumentTypes, call);
            if (result != null) {
                if (result instanceof MethodNode) {
                    methodList.add((MethodNode) result);
                } else if (result instanceof Collection) {
                    methodList.addAll((Collection<? extends MethodNode>) result);
                } else {
                    throw new GroovyBugError("Type checking extension returned unexpected method list: " + result);
                }
            }
        }
    }
    return methodList;
}
 
开发者ID:apache,项目名称:groovy,代码行数:22,代码来源:GroovyTypeCheckingExtensionSupport.java


示例3: handleAmbiguousMethods

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
@Override
@SuppressWarnings("unchecked")
public List<MethodNode> handleAmbiguousMethods(final List<MethodNode> nodes, final Expression origin) {
    List<Closure> onMethodSelection = eventHandlers.get("handleAmbiguousMethods");
    List<MethodNode> methodList = nodes;
    if (onMethodSelection != null) {
        Iterator<Closure> iterator = onMethodSelection.iterator();
        while (methodList.size()>1 && iterator.hasNext() ) {
            final Closure closure = iterator.next();
            Object result = safeCall(closure, methodList, origin);
            if (result != null) {
                if (result instanceof MethodNode) {
                    methodList = Collections.singletonList((MethodNode) result);
                } else if (result instanceof Collection) {
                    methodList = new LinkedList<MethodNode>((Collection<? extends MethodNode>) result);
                } else {
                    throw new GroovyBugError("Type checking extension returned unexpected method list: " + result);
                }
            }
        }
    }
    return methodList;
}
 
开发者ID:apache,项目名称:groovy,代码行数:24,代码来源:GroovyTypeCheckingExtensionSupport.java


示例4: parameterizedType

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
public ClassNode parameterizedType(ClassNode baseType, ClassNode... genericsTypeArguments) {
    ClassNode result = baseType.getPlainNodeReference();
    if (result.isUsingGenerics()) {
        GenericsType[] gts = new GenericsType[genericsTypeArguments.length];
        int expectedLength = result.getGenericsTypes().length;
        if (expectedLength!=genericsTypeArguments.length) {
            throw new GroovyBugError("Expected number of generic type arguments for "+baseType.toString(false)+" is "+expectedLength
            + " but you gave "+genericsTypeArguments.length);
        }
        for (int i = 0; i < gts.length; i++) {
            gts[i] = new GenericsType(genericsTypeArguments[i]);
        }
        result.setGenericsTypes(gts);
    }
    return result;
}
 
开发者ID:apache,项目名称:groovy,代码行数:17,代码来源:TypeCheckingExtension.java


示例5: extractTarget

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
private static groovy.transform.PackageScopeTarget extractTarget(PropertyExpression expr) {
    Expression oe = expr.getObjectExpression();
    if (oe instanceof ClassExpression) {
        ClassExpression ce = (ClassExpression) oe;
        if (ce.getType().getName().equals("groovy.transform.PackageScopeTarget")) {
            Expression prop = expr.getProperty();
            if (prop instanceof ConstantExpression) {
                String propName = (String) ((ConstantExpression) prop).getValue();
                try {
                    return PackageScopeTarget.valueOf(propName);
                } catch(IllegalArgumentException iae) {
                    /* ignore */
                }
            }
        }
    }
    throw new GroovyBugError("Internal error during " + MY_TYPE_NAME
            + " processing. Annotation parameters must be of type: " + TARGET_CLASS_NAME + ".");
}
 
开发者ID:apache,项目名称:groovy,代码行数:20,代码来源:PackageScopeASTTransformation.java


示例6: makePostfix

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
/**
*  Converts a node from a generic type to a specific postfix type.
*  Throws a <code>GroovyBugError</code> if the type can't be converted.
*/

public static void makePostfix(CSTNode node, boolean throwIfInvalid ) {

    switch( node.getMeaning() ) {
        case PLUS_PLUS:
            node.setMeaning( POSTFIX_PLUS_PLUS );
            break;

        case MINUS_MINUS:
            node.setMeaning( POSTFIX_MINUS_MINUS );
            break;

        default:
            if( throwIfInvalid ) {
                throw new GroovyBugError( "cannot convert to postfix for type [" + node.getMeaning() + "]" );
            }
    }

}
 
开发者ID:apache,项目名称:groovy,代码行数:24,代码来源:Types.java


示例7: visitMethodCallExpression

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
public void visitMethodCallExpression(MethodCallExpression call) {
    if (call.isImplicitThis() && call.getMethod() instanceof ConstantExpression) {
        ConstantExpression methodNameConstant = (ConstantExpression) call.getMethod();
        Object value = methodNameConstant.getText();

        if (!(value instanceof String)) {
            throw new GroovyBugError("tried to make a method call with a non-String constant method name.");
        }

        String methodName = (String) value;
        Variable v = checkVariableNameForDeclaration(methodName, call);
        if (v != null && !(v instanceof DynamicVariable)) {
            checkVariableContextAccess(v, call);
        }

        if (v instanceof VariableExpression || v instanceof Parameter) {
            VariableExpression object = new VariableExpression(v);
            object.setSourcePosition(methodNameConstant);
            call.setObjectExpression(object);
            ConstantExpression method = new ConstantExpression("call");
            method.setSourcePosition(methodNameConstant); // important for GROOVY-4344
            call.setImplicitThis(false);
            call.setMethod(method);
        }

    }
    super.visitMethodCallExpression(call);
}
 
开发者ID:apache,项目名称:groovy,代码行数:29,代码来源:VariableScopeVisitor.java


示例8: encodeAsValidClassName

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
public static String encodeAsValidClassName(String name) {
    final int l = name.length();
    StringBuilder b = null;
    int lastEscape = -1;
    for(int i = 0; i < l; ++i) {
        final int encodeIndex = name.charAt(i) - MIN_ENCODING;
        if (encodeIndex >= 0 && encodeIndex < CHARACTERS_TO_ENCODE.length) {
            if (CHARACTERS_TO_ENCODE[encodeIndex]) {
                if(b == null) {
                    b = new StringBuilder(name.length() + 3);
                    b.append(name, 0, i);
                } else {
                    b.append(name, lastEscape + 1, i);
                }
                b.append('_');
                lastEscape = i;
            }
        }
    }
    if(b == null) return name.toString();
    if (lastEscape == -1) throw new GroovyBugError("unexpected escape char control flow in "+name);
    b.append(name, lastEscape + 1, l);
    return b.toString();
}
 
开发者ID:apache,项目名称:groovy,代码行数:25,代码来源:GeneratorContext.java


示例9: addGeneratedClosureConstructorCall

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
public boolean addGeneratedClosureConstructorCall(ConstructorCallExpression call) {
    ClassNode classNode = controller.getClassNode();
    if (!classNode.declaresInterface(ClassHelper.GENERATED_CLOSURE_Type)) return false;

    AsmClassGenerator acg = controller.getAcg();
    OperandStack operandStack = controller.getOperandStack();
    
    MethodVisitor mv = controller.getMethodVisitor();
    mv.visitVarInsn(ALOAD, 0);
    ClassNode callNode = classNode.getSuperClass();
    TupleExpression arguments = (TupleExpression) call.getArguments();
    if (arguments.getExpressions().size()!=2) throw new GroovyBugError("expected 2 arguments for closure constructor super call, but got"+arguments.getExpressions().size());
    arguments.getExpression(0).visit(acg);
    operandStack.box();
    arguments.getExpression(1).visit(acg);
    operandStack.box();
    //TODO: replace with normal String, p not needed
    Parameter p = new Parameter(ClassHelper.OBJECT_TYPE,"_p");
    String descriptor = BytecodeHelper.getMethodDescriptor(ClassHelper.VOID_TYPE, new Parameter[]{p,p});
    mv.visitMethodInsn(INVOKESPECIAL, BytecodeHelper.getClassInternalName(callNode), "<init>", descriptor, false);
    operandStack.remove(2);
    return true;
}
 
开发者ID:apache,项目名称:groovy,代码行数:24,代码来源:ClosureWriter.java


示例10: chooseBytecodeVersion

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
private static int chooseBytecodeVersion(final boolean invokedynamic, final String targetBytecode) {
    if (invokedynamic) {
        if (CompilerConfiguration.JDK7.equals(targetBytecode)) {
            return Opcodes.V1_7;
        }

        return Opcodes.V1_8;
    } else {
        Integer bytecodeVersion = CompilerConfiguration.JDK_TO_BYTECODE_VERSION_MAP.get(targetBytecode);

        if (null != bytecodeVersion) {
            return bytecodeVersion;
        }
    }

    throw new GroovyBugError("Bytecode version ["+targetBytecode+"] is not supported by the compiler");
}
 
开发者ID:apache,项目名称:groovy,代码行数:18,代码来源:WriterController.java


示例11: makeSingleArgumentCall

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
@Override
public void makeSingleArgumentCall(final Expression receiver, final String message, final Expression arguments, boolean safe) {
    TypeChooser typeChooser = controller.getTypeChooser();
    ClassNode classNode = controller.getClassNode();
    ClassNode rType = typeChooser.resolveType(receiver, classNode);
    ClassNode aType = typeChooser.resolveType(arguments, classNode);
    if (trySubscript(receiver, message, arguments, rType, aType, safe)) {
        return;
    }
    // now try with flow type instead of declaration type
    rType = receiver.getNodeMetaData(StaticTypesMarker.INFERRED_TYPE);
    if (receiver instanceof VariableExpression && rType == null) {
        // TODO: can STCV be made smarter to avoid this check?
        VariableExpression ve = (VariableExpression) ((VariableExpression)receiver).getAccessedVariable();
        rType = ve.getNodeMetaData(StaticTypesMarker.INFERRED_TYPE);
    }
    if (rType!=null && trySubscript(receiver, message, arguments, rType, aType, safe)) {
        return;
    }
    // todo: more cases
    throw new GroovyBugError(
            "At line " + receiver.getLineNumber() + " column " + receiver.getColumnNumber() + "\n" +
            "On receiver: " + receiver.getText() + " with message: " + message + " and arguments: " + arguments.getText() + "\n" +
            "This method should not have been called. Please try to create a simple example reproducing\n" +
            "this error and file a bug report at https://issues.apache.org/jira/browse/GROOVY");
}
 
开发者ID:apache,项目名称:groovy,代码行数:27,代码来源:StaticTypesCallSiteWriter.java


示例12: createClosureClass

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
@Override
protected ClassNode createClosureClass(final ClosureExpression expression, final int mods) {
    ClassNode closureClass = super.createClosureClass(expression, mods);
    List<MethodNode> methods = closureClass.getDeclaredMethods("call");
    List<MethodNode> doCall = closureClass.getMethods("doCall");
    if (doCall.size() != 1) {
        throw new GroovyBugError("Expected to find one (1) doCall method on generated closure, but found " + doCall.size());
    }
    MethodNode doCallMethod = doCall.get(0);
    if (methods.isEmpty() && doCallMethod.getParameters().length == 1) {
        createDirectCallMethod(closureClass, doCallMethod);
    }
    MethodTargetCompletionVisitor visitor = new MethodTargetCompletionVisitor(doCallMethod);
    Object dynamic = expression.getNodeMetaData(StaticTypesMarker.DYNAMIC_RESOLUTION);
    if (dynamic != null) {
        doCallMethod.putNodeMetaData(StaticTypesMarker.DYNAMIC_RESOLUTION, dynamic);
    }
    for (MethodNode method : methods) {
        visitor.visitMethod(method);
    }
    closureClass.putNodeMetaData(StaticCompilationMetadataKeys.STATIC_COMPILE_NODE, Boolean.TRUE);
    return closureClass;
}
 
开发者ID:apache,项目名称:groovy,代码行数:24,代码来源:StaticTypesClosureWriter.java


示例13: getInvokeSpecialHandle

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
@Override
public Object getInvokeSpecialHandle(final Method method, final Object receiver) {
    if (LOOKUP_Constructor==null) {
        return super.getInvokeSpecialHandle(method, receiver);
    }
    if (!method.isAccessible()) {
        AccessController.doPrivileged(new PrivilegedAction() {
            @Override
            public Object run() {
                method.setAccessible(true);
                return null;
            }
        });
    }
    Class declaringClass = method.getDeclaringClass();
    try {
        return LOOKUP_Constructor.
                newInstance(declaringClass, -1).
                unreflectSpecial(method, declaringClass).
                bindTo(receiver);
    } catch (ReflectiveOperationException e) {
        throw new GroovyBugError(e);
    }
}
 
开发者ID:apache,项目名称:groovy,代码行数:25,代码来源:Java7.java


示例14: bootstrap

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
/**
 * bootstrap method for method calls from Groovy compiled code with indy 
 * enabled. This method gets a flags parameter which uses the following 
 * encoding:<ul>
 * <li>{@value #SAFE_NAVIGATION} is the flag value for safe navigation see {@link #SAFE_NAVIGATION}<li/>
 * <li>{@value #THIS_CALL} is the flag value for a call on this see {@link #THIS_CALL}</li>
 * </ul> 
 * @param caller - the caller
 * @param callType - the type of the call
 * @param type - the call site type
 * @param name - the real method name
 * @param flags - call flags
 * @return the produced CallSite
 * @since Groovy 2.1.0
 */
public static CallSite bootstrap(Lookup caller, String callType, MethodType type, String name, int flags) {
    boolean safe = (flags&SAFE_NAVIGATION)!=0;
    boolean thisCall = (flags&THIS_CALL)!=0;
    boolean spreadCall = (flags&SPREAD_CALL)!=0;
    int callID;
    if (callType.equals(CALL_TYPES.METHOD.getCallSiteName())) {
        callID = CALL_TYPES.METHOD.ordinal();
    } else if (callType.equals(CALL_TYPES.INIT.getCallSiteName())) {
        callID = CALL_TYPES.INIT.ordinal();
    } else if (callType.equals(CALL_TYPES.GET.getCallSiteName())) {
        callID = CALL_TYPES.GET.ordinal();
    } else if (callType.equals(CALL_TYPES.SET.getCallSiteName())) {
        callID = CALL_TYPES.SET.ordinal();
    } else if (callType.equals(CALL_TYPES.CAST.getCallSiteName())) {
        callID = CALL_TYPES.CAST.ordinal();
    }else {
        throw new GroovyBugError("Unknown call type: "+callType);
    }
    return realBootstrap(caller, name, callID, type, safe, thisCall, spreadCall);
}
 
开发者ID:apache,项目名称:groovy,代码行数:36,代码来源:IndyInterface.java


示例15: configureType

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
private ClassNode configureType(Type type) {
    if (type instanceof WildcardType) {
        return configureWildcardType((WildcardType) type);
    } else if (type instanceof ParameterizedType) {
        return configureParameterizedType((ParameterizedType) type);
    } else if (type instanceof GenericArrayType) {
        return configureGenericArray((GenericArrayType) type);
    } else if (type instanceof TypeVariable) {
        return configureTypeVariableReference(((TypeVariable) type).getName());
    } else if (type instanceof Class) {
        return configureClass((Class) type);
    } else if (type==null) {
        throw new GroovyBugError("Type is null. Most probably you let a transform reuse existing ClassNodes with generics information, that is now used in a wrong context.");
    } else {
        throw new GroovyBugError("unknown type: " + type + " := " + type.getClass());
    }
}
 
开发者ID:apache,项目名称:groovy,代码行数:18,代码来源:Java5.java


示例16: getElementCode

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
protected int getElementCode(ElementType value) {
    switch (value) {
        case TYPE:
            return AnnotationNode.TYPE_TARGET;
        case CONSTRUCTOR:
            return AnnotationNode.CONSTRUCTOR_TARGET;
        case METHOD:
            return AnnotationNode.METHOD_TARGET;
        case FIELD:
            return AnnotationNode.FIELD_TARGET;
        case PARAMETER:
            return AnnotationNode.PARAMETER_TARGET;
        case LOCAL_VARIABLE:
            return AnnotationNode.LOCAL_VARIABLE_TARGET;
        case ANNOTATION_TYPE:
            return AnnotationNode.ANNOTATION_TARGET;
        case PACKAGE:
            return AnnotationNode.PACKAGE_TARGET;
    }
    if ("MODULE".equals(value.name())) {
        return AnnotationNode.TYPE_TARGET;
    } else {
        throw new GroovyBugError("unsupported Target " + value);
    }
}
 
开发者ID:apache,项目名称:groovy,代码行数:26,代码来源:Java5.java


示例17: makeInterfaceTypes

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
private void makeInterfaceTypes(CompileUnit cu, ClassNode classNode, Class clazz) {
    Type[] interfaceTypes = clazz.getGenericInterfaces();
    if (interfaceTypes.length == 0) {
        classNode.setInterfaces(ClassNode.EMPTY_ARRAY);
    } else {
        ClassNode[] ret = new ClassNode[interfaceTypes.length];
        for (int i = 0; i < interfaceTypes.length; i++) {
            Type type = interfaceTypes[i];
            while (!(type instanceof Class)) {
                ParameterizedType pt = (ParameterizedType) type;
                Type t2 = pt.getRawType();
                if (t2==type) {
                    throw new GroovyBugError("Cannot transform generic signature of "+clazz+
                            " with generic interface "+interfaceTypes[i]+" to a class.");
                }
                type = t2;
            }
            ret[i] = makeClassNode(cu, interfaceTypes[i], (Class) type);
        }
        classNode.setInterfaces(ret);
    }
}
 
开发者ID:apache,项目名称:groovy,代码行数:23,代码来源:Java5.java


示例18: setName

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
public String setName(String name) {
    if (redirect() != this) {
        return super.setName(name);
    } else {
        throw new GroovyBugError("ConstructedNestedClass#setName should not be called");
    }
}
 
开发者ID:lxxlxx888,项目名称:Reer,代码行数:8,代码来源:GradleResolveVisitor.java


示例19: parseCST

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
@Override
public Reduction parseCST(SourceUnit sourceUnit, java.io.Reader reader) throws CompilationFailedException {
    try {
        ReaderSource readerSource = sourceUnit.getSource();
        if (null != readerSource && null != readerSource.getReader()) {
            this.readerSource = readerSource;
        } else {
            this.readerSource = new StringReaderSource(IOGroovyMethods.getText(reader), sourceUnit.getConfiguration());
        }
    } catch (IOException e) {
        throw new GroovyBugError("Failed to create StringReaderSource instance", e);
    }

    return null;
}
 
开发者ID:apache,项目名称:groovy,代码行数:16,代码来源:Antlr4ParserPlugin.java


示例20: isTrue

import org.codehaus.groovy.GroovyBugError; //导入依赖的package包/类
private boolean isTrue(NodeMetaDataHandler nodeMetaDataHandler, String key) {
    Object nmd = nodeMetaDataHandler.getNodeMetaData(key);

    if (null == nmd) {
        return false;
    }

    if (!(nmd instanceof Boolean)) {
        throw new GroovyBugError(nodeMetaDataHandler + " node meta data[" + key + "] is not an instance of Boolean");
    }

    return (Boolean) nmd;
}
 
开发者ID:apache,项目名称:groovy,代码行数:14,代码来源:AstBuilder.java



注:本文中的org.codehaus.groovy.GroovyBugError类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java PropertySpec类代码示例发布时间:2022-05-22
下一篇:
Java SerialSubscription类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap