public ArrayMarshalInfo( IType componentType, MarshalInfo componentMarshalInfo, boolean isComponent ) { super( componentType.getArrayType() ); _componentType = componentType; _componentMarshalInfo = componentMarshalInfo; _isComponent = isComponent; }
@Override public IType getJavaType() { return _component.getJavaType().getArrayType(); } public void setJavaType(IJavaType javaType) {
public static Set<IType> getArrayVersionsOfEachType( Set componentTypes ) { Set<IType> allTypes = new HashSet<IType>(); allTypes.add( JavaTypes.OBJECT() ); Iterator it = componentTypes.iterator(); while( it.hasNext() ) { IType type = (IType)it.next(); allTypes.add( type.getArrayType() ); } return allTypes; }
protected Set<IType> getArrayVersionsOfEachType( Set<? extends IType> componentTypes ) { Set<IType> allTypes = new HashSet<IType>( 1 + componentTypes.size() ); allTypes.add( JavaTypes.OBJECT() ); for( IType componentType : componentTypes ) { allTypes.add( componentType.getArrayType() ); } return allTypes; }
public static Set<IType> getArrayVersionsOfEachType( Set componentTypes ) { Set<IType> allTypes = new HashSet<IType>(); allTypes.add( JavaTypes.OBJECT() ); Iterator it = componentTypes.iterator(); while( it.hasNext() ) { IType type = (IType)it.next(); allTypes.add( type.getArrayType() ); } return allTypes; }
protected Set<IType> getArrayVersionsOfEachType( Set<? extends IType> componentTypes ) { Set<IType> allTypes = new HashSet<IType>( 1 + componentTypes.size() ); allTypes.add( JavaTypes.OBJECT() ); for( IType componentType : componentTypes ) { allTypes.add( componentType.getArrayType() ); } return allTypes; }
@Override public IType getActualType(TypeVarToTypeMap typeMap, boolean bKeepTypeVars) { return _component.getActualType(typeMap, bKeepTypeVars).getArrayType(); }
@Override public IRType getArrayType() { return IRTypeFactory.get(_type.getArrayType()); }
@Override public IType getActualType(TypeVarToTypeMap typeMap) { return getGenericComponentType().getActualType(typeMap).getArrayType(); }
/** * @param descriptor * @param arrayicize * @param whosaskin */ public PropertyNode( ITypeInfo owner, IPropertyInfo descriptor, boolean arrayicize, IType whosaskin ) { super( arrayicize ? descriptor.getFeatureType().getArrayType() : descriptor.getFeatureType() ); _descriptor = new MyPropertyRef( owner, descriptor, whosaskin ); _bVirtual = true; }
/** * @param descriptor * @param arrayicize * @param whosaskin */ public PropertyNode( ITypeInfo owner, IPropertyInfo descriptor, boolean arrayicize, IType whosaskin ) { super( arrayicize ? descriptor.getFeatureType().getArrayType() : descriptor.getFeatureType() ); _descriptor = new MyPropertyRef( owner, descriptor, whosaskin ); _bVirtual = true; }
public IType getReturnType() { IType type = _delegate.getReturnType(); if( type.isArray() || type == JavaTypes.pVOID() ) { return type; } return type.getArrayType(); }
public IType getReturnType() { IType type = _delegate.getReturnType(); if( type.isArray() || type == JavaTypes.pVOID() ) { return type; } return type.getArrayType(); }
/** * Make an array type from the delegate's type, if it's not already an array. * The idea with array expansion is to allow access to properties of X from an * array of X. We call the accessor For each X in the array we call the */ public IType getFeatureType() { if( _delegate.getFeatureType().isArray() ) { return _delegate.getFeatureType(); } return _delegate.getFeatureType().getArrayType(); }
protected IRSymbol makeIRSymbol( Symbol varSym ) { IType type = varSym.getType(); if( varSym.isValueBoxed() ) { type = type.getArrayType(); } // This is pretty brutal. It's here because ForEachStatementTransformer takes in a // Symbol to its helper methods, and sometimes we really want that to be a temp symbol IRSymbol symbol = new IRSymbol( varSym.getName(), getDescriptor( type ), varSym.getName().startsWith("*temp") ); _cc().putSymbol( symbol ); return symbol; }
protected IRSymbol makeIRSymbol( Symbol varSym ) { IType type = varSym.getType(); if( varSym.isValueBoxed() ) { type = type.getArrayType(); } // This is pretty brutal. It's here because ForEachStatementTransformer takes in a // Symbol to its helper methods, and sometimes we really want that to be a temp symbol IRSymbol symbol = new IRSymbol( varSym.getName(), getDescriptor( type ), varSym.getName().startsWith("*temp") ); _cc().putSymbol( symbol ); return symbol; }
private IRExpression makeArray( IType componentType, IRExpression lengthExpression ) { if( componentType.isPrimitive() || componentType instanceof IGosuClass || componentType instanceof IJavaType ) { // Gosu/Java arrays are directly represented in bytecode, so we can directly construct a Java array from the component type return newArray( getDescriptor( componentType ), lengthExpression ); } // Custom array types may not have direct representation in bytecode e.g., whacky entities IRExpression array = callMethod( IType.class, "makeArrayInstance", new Class[]{int.class}, pushType( componentType ), exprList( lengthExpression ) ); return checkCast( componentType.getArrayType(), array ); }
private IRExpression makeArray( IType componentType, IRExpression lengthExpression ) { if( componentType.isPrimitive() || componentType instanceof IGosuClass || componentType instanceof IJavaType ) { // Gosu/Java arrays are directly represented in bytecode, so we can directly construct a Java array from the component type return newArray( getDescriptor( componentType ), lengthExpression ); } // Custom array types may not have direct representation in bytecode e.g., whacky entities IRExpression array = callMethod( IType.class, "makeArrayInstance", new Class[]{int.class}, pushType( componentType ), exprList( lengthExpression ) ); return checkCast( componentType.getArrayType(), array ); }
private void assignCapturedParamIndexes( List<IRStatement> statements ) { for( ISymbol paramSym : getActualArgSymbols() ) { if (paramSym.isValueBoxed()) { IRSymbol symbol = new IRSymbol(paramSym.getName(), getDescriptor(paramSym.getType().getArrayType()), false); _cc().putSymbol(symbol); IRExpression expression = identifier(_cc().getSymbol(symbol.getName() + "$$unboxedParam")); IRExpression value = buildInitializedArray(getDescriptor(paramSym.getType()), exprList(expression)); statements.add(buildAssignment(symbol, value)); } } }
private void assignCapturedParamIndexes( List<IRStatement> statements ) { for( ISymbol paramSym : getActualArgSymbols() ) { if (paramSym.isValueBoxed()) { IRSymbol symbol = new IRSymbol(paramSym.getName(), getDescriptor(paramSym.getType().getArrayType()), false); _cc().putSymbol(symbol); IRExpression expression = identifier(_cc().getSymbol(symbol.getName() + "$$unboxedParam")); IRExpression value = buildInitializedArray(getDescriptor(paramSym.getType()), exprList(expression)); statements.add(buildAssignment(symbol, value)); } } }