Examples of TypeList


Examples of com.strobel.reflection.TypeList

        if (methodBuilder != null) {
            if (!methodBuilder.isStatic()) {
                ++index;
            }

            final TypeList parameterTypes = methodBuilder.getParameterTypes();
           
            for (int i = 0, n = parameterTypes.size(); i < localIndex && i < n; i++) {
                final TypeKind kind = parameterTypes.get(i).getKind();
                if (kind == TypeKind.LONG || kind == TypeKind.DOUBLE) {
                    ++index;
                }
            }
        }
View Full Code Here

Examples of com.strobel.reflection.TypeList

            exceptions[least] = temp;
        }
    }

    private void registerCheckedExceptions(final MethodBase method) {
        final TypeList thrownTypes = method.getThrownTypes();

        if (thrownTypes == null || thrownTypes.isEmpty()) {
            return;
        }

        for (int i = 0, n = thrownTypes.size(); i < n; i++) {
            final Type<?> thrownType = thrownTypes.get(i);

            if (Types.RuntimeException.isAssignableFrom(thrownType)) {
                continue;
            }
View Full Code Here

Examples of com.strobel.reflection.TypeList

    private static ExpressionList<? extends Expression> adaptArguments(
        final MethodInfo method,
        final ExpressionList<? extends Expression> arguments) {

        if (method.getCallingConvention() == CallingConvention.VarArgs) {
            final TypeList pt = method.getParameters().getParameterTypes();
            final int varArgArrayPosition = pt.size() - 1;
            final Type varArgArrayType = pt.get(varArgArrayPosition);

            final boolean needArray = arguments.size() != pt.size() ||
                                      !TypeUtils.areEquivalent(
                                          varArgArrayType,
                                          arguments.get(arguments.size() - 1).getType());

            if (needArray) {
                final Expression[] newArguments = new Expression[pt.size()];

                for (int i = 0; i < varArgArrayPosition; i++) {
                    newArguments[i] = arguments.get(i);
                }
View Full Code Here

Examples of com.strobel.reflection.TypeList

        assert nodeKind == ExpressionType.Invoke ||
               nodeKind == ExpressionType.Call ||
               nodeKind == ExpressionType.New;

        final TypeList parameterTypes;

        if (method instanceof MethodBuilder) {
            parameterTypes = ((MethodBuilder) method).getParameterTypes();
        }
        else if (method instanceof ConstructorBuilder) {
            parameterTypes = ((ConstructorBuilder) method).getMethodBuilder().getParameterTypes();
        }
        else {
            parameterTypes = method.getParameters().getParameterTypes();
        }

        validateArgumentCount(method, nodeKind, arguments.size(), parameterTypes);

        T[] newArgs = null;

        for (int i = 0, n = parameterTypes.size(); i < n; i++) {
            final Type parameterType = parameterTypes.get(i);
            final T arg = validateOneArgument(method, nodeKind, arguments.get(i), parameterType);

            if (arg != arguments.get(i)) {
                if (newArgs == null) {
                    newArgs = arguments.toArray();
View Full Code Here

Examples of com.strobel.reflection.TypeList

            if (!m.isGenericMethodDefinition()) {
                return m;
            }
        }
        else if (m.isGenericMethodDefinition()) {
            final TypeList genericParameters = m.getGenericMethodParameters();
            if (genericParameters.size() == typeArgs.size()) {
                for (int i = 0, n = genericParameters.size(); i < n; i++) {
                    if (!genericParameters.get(i).isAssignableFrom(typeArgs.get(i))) {
                        return null;
                    }
                }
                return m.makeGenericMethod(typeArgs);
            }
View Full Code Here

Examples of com.strobel.reflection.TypeList

        this.lambda = lambda;

        _hasClosureArgument = false;

        final TypeList parameterTypes = getParameterTypes(lambda);

        method.setReturnType(lambda.getReturnType());
        method.setParameters(parameterTypes);

        final ParameterExpressionList lambdaParameters = lambda.getParameters();
View Full Code Here

Examples of com.strobel.reflection.TypeList

    private void emitArguments(final MethodBase method, final IArgumentProvider args) {
        emitArguments(method, args, 0);
    }

    private void emitArguments(final MethodBase method, final IArgumentProvider args, final int skipParameters) {
        final TypeList parameters;

        if (method instanceof MethodBuilder) {
            parameters = ((MethodBuilder) method).getParameterTypes();
        }
        else if (method instanceof ConstructorBuilder) {
            parameters = ((ConstructorBuilder) method).getMethodBuilder().getParameterTypes();
        }
        else {
            parameters = method.getParameters().getParameterTypes();
        }

        assert args.getArgumentCount() + skipParameters == parameters.size();

        for (int i = skipParameters, n = parameters.size(); i < n; i++) {
            final Type<?> parameterType = parameters.get(i);
            final Expression argument = args.getArgument(i - skipParameters);

            emitExpression(argument);

            final Type argumentType = argument.getType();
View Full Code Here

Examples of com.strobel.reflection.TypeList

            p3
        );

        final MethodInfo invokeMethod = Expression.getInvokeMethod(e);
        final Type<?> returnType = invokeMethod.getReturnType();
        final TypeList parameterTypes = invokeMethod.getParameters().getParameterTypes();
        final Type delegateType = invokeMethod.getDeclaringType();

        assertTrue(delegateType.isGenericType());
        assertEquals(Types.String, delegateType.getTypeArguments().get(0));

        assertEquals(PrimitiveTypes.Boolean, returnType);
        assertEquals(PrimitiveTypes.Integer, parameterTypes.get(0));
        assertEquals(PrimitiveTypes.Long, parameterTypes.get(1));
        assertEquals(Types.String, parameterTypes.get(2));

        final Delegate<?> delegate = e.compileDelegate();
        final boolean result = (boolean) delegate.getMethodHandle().invokeExact(2, 3L, "moo");

        assertTrue(result);
View Full Code Here

Examples of com.strobel.reflection.TypeList

        _dataBuffer.reset(DATA_BUFFER_SIZE);
        _poolBuffer.reset(POOL_BUFFER_SIZE);
        _signatureBuffer.reset();

        final Type<?> baseType = t.getBaseType();
        final TypeList interfaceTypes = t.getInterfaces();

        int flags = t.getModifiers();

        if ((flags & PROTECTED) != 0) {
            flags |= PUBLIC;
        }

        flags = flags & ClassFlags & ~STRICTFP;

        if ((flags & INTERFACE) == 0) {
            flags |= ACC_SUPER;
        }

        if (t.isNested() && StringUtilities.isNullOrEmpty(t.getName())) {
            flags &= ~FINAL;
        }

        _dataBuffer.putShort(flags);
        _dataBuffer.putShort(t.getTypeToken(t));

        if (baseType != null && baseType.isClass()) {
            _dataBuffer.putShort(t.getTypeToken(baseType));
        }
        else {
            _dataBuffer.putShort(t.getTypeToken(Types.Object));
        }

        _dataBuffer.putShort(interfaceTypes.size());

        for (final Type interfaceType : interfaceTypes) {
            _dataBuffer.putShort(t.getTypeToken(interfaceType));
        }
View Full Code Here

Examples of com.strobel.reflection.TypeList

            writeBody(method);
            endAttribute(attributeLengthIndex);
            attributeCount++;
        }

        final TypeList exceptions = method.getThrownTypes();

        if (!exceptions.isEmpty()) {
            final int attributeLengthIndex = writeAttribute("Exceptions");

            _dataBuffer.putShort(exceptions.size());

            for (final Type exceptionType : exceptions) {
                _dataBuffer.putShort(t.getTypeToken(exceptionType));
            }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.