Package com.google.gwt.dev.jjs.ast

Examples of com.google.gwt.dev.jjs.ast.JArrayType


      // Need to synthesize an appropriately-typed array.
      List<JExpression> initializers = new ArrayList<JExpression>();
      for (int i = varArg; i < args.length; ++i) {
        initializers.add(args[i]);
      }
      JArrayType lastParamType = (JArrayType) typeMap.get(params[varArg]);
      JNewArray newArray = JNewArray.createInitializers(SourceOrigin.UNKNOWN,
          lastParamType, initializers);
      call.addArg(newArray);
    }
View Full Code Here


    private JField writeEnumValuesMethod(JEnumType type) {
      JField valuesField;
      {
        // $VALUES = new E[]{A,B,B};
        SourceInfo fieldInfo = type.getSourceInfo().makeChild();
        JArrayType enumArrayType = program.getTypeArray(type);
        valuesField = program.createField(fieldInfo, "$VALUES", type,
            enumArrayType, true, Disposition.FINAL);
        fieldInfo.addCorrelation(fieldInfo.getCorrelator().by(valuesField));
        List<JExpression> initializers = new ArrayList<JExpression>();
        for (JEnumField field : type.getEnumList()) {
View Full Code Here

        return JPrimitiveType.INT;
      }
     
      JType uType = getPossiblyUnderlyingType(type);
      if (uType instanceof JArrayType) {
        JArrayType aType = (JArrayType) uType;
        JType leafType = aType.getLeafType();
        if (canBeOrdinal(leafType)) {
          JArrayType newAType = program.getTypeArray(
                    JPrimitiveType.INT, aType.getDims());
          return newAType.getNonNull();
        }
      }
     
      return null;
    }
View Full Code Here

         */
        JTypeOracle typeOracle = program.typeOracle;
        JType rhsType = x.getRhs().getType();
        assert (rhsType instanceof JReferenceType);

        JArrayType lhsArrayType = lhsArrayRef.getArrayType();
        for (JArrayType arrayType : instantiatedArrayTypes) {
          if (typeOracle.canTheoreticallyCast(arrayType, lhsArrayType)) {
            JType itElementType = arrayType.getElementType();
            if (itElementType instanceof JReferenceType) {
              recordCast(itElementType, x.getRhs());
View Full Code Here

        JReferenceType qType) {
      type = type.getUnderlyingType();
      qType = qType.getUnderlyingType();

      if (type instanceof JArrayType && qType instanceof JArrayType) {
        JArrayType aType = (JArrayType) type;
        JArrayType aqType = (JArrayType) qType;
        return program.typeOracle.canTriviallyCast(type, qType)
            || (program.isJavaScriptObject(aType.getLeafType())
                && program.isJavaScriptObject(aqType.getLeafType()));
      }

      return program.typeOracle.canTriviallyCast(type, qType)
            || (program.isJavaScriptObject(type)
                 && program.isJavaScriptObject(qType));
View Full Code Here

        // A subclass of an enum class
        call.addArg(JNullLiteral.INSTANCE);
        call.addArg(JNullLiteral.INSTANCE);
      }
    } else if (type instanceof JArrayType) {
      JArrayType arrayType = (JArrayType) type;
      JClassLiteral componentLiteral =
          createDependentClassLiteral(info, arrayType.getElementType());
      call.addArg(componentLiteral);
    } else {
      assert (type instanceof JInterfaceType || type instanceof JPrimitiveType);
    }
    assert call.getArgs().size() == method.getParams().size() : "Argument / param mismatch "
View Full Code Here

    if (program.isJavaScriptObject(type)) {
      return program.getJavaScriptObject();
    }

    if (type instanceof JArrayType) {
      JArrayType aType = (JArrayType) type;
      if (program.isJavaScriptObject(aType.getLeafType())) {
        return program.getTypeArray(program.getJavaScriptObject(), aType.getDims());
      }
    }

    return type;
  }
View Full Code Here

      }

      boolean nonNull = type instanceof JNonNullType;
      JType uType = nonNull ? ((JNonNullType) type).getUnderlyingType() : type;
      if (uType instanceof JArrayType) {
        JArrayType aType = (JArrayType) uType;
        JType leafType = aType.getLeafType();
        if (canBeOrdinal(leafType)) {
          JArrayType newAType = program.getTypeArray(JPrimitiveType.INT, aType.getDims());
          return nonNull ? newAType.getNonNull() : newAType;
        }
      }

      return null;
    }
View Full Code Here

         */
        JTypeOracle typeOracle = program.typeOracle;
        JType rhsType = x.getRhs().getType();
        assert (rhsType instanceof JReferenceType);

        JArrayType lhsArrayType = lhsArrayRef.getArrayType();
        for (JArrayType arrayType : instantiatedArrayTypes) {
          if (typeOracle.canTheoreticallyCast(arrayType, lhsArrayType)) {
            JType itElementType = arrayType.getElementType();
            if (itElementType instanceof JReferenceType) {
              recordCast(itElementType, x.getRhs());
View Full Code Here

    private boolean canTriviallyCastJsoSemantics(JReferenceType type, JReferenceType qType) {
      type = type.getUnderlyingType();
      qType = qType.getUnderlyingType();

      if (type instanceof JArrayType && qType instanceof JArrayType) {
        JArrayType aType = (JArrayType) type;
        JArrayType aqType = (JArrayType) qType;
        return program.typeOracle.canTriviallyCast(type, qType)
            || (program.isJavaScriptObject(aType.getLeafType()) && program
                .isJavaScriptObject(aqType.getLeafType()));
      }

      return program.typeOracle.canTriviallyCast(type, qType)
          || (program.isJavaScriptObject(type) && program.isJavaScriptObject(qType));
    }
View Full Code Here

TOP

Related Classes of com.google.gwt.dev.jjs.ast.JArrayType

Copyright © 2018 www.massapicom. 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.