Package org.eclipse.jdt.internal.compiler.lookup

Examples of org.eclipse.jdt.internal.compiler.lookup.ArrayBinding


   */
  public ITypeBinding getComponentType() {
    if (!isArray()) {
      return null;
    }
    ArrayBinding arrayBinding = (ArrayBinding) this.binding;
    return this.resolver.getTypeBinding(arrayBinding.elementsType());
  }
View Full Code Here


   */
  public int getDimensions() {
    if (!isArray()) {
      return 0;
    }
    ArrayBinding arrayBinding = (ArrayBinding) this.binding;
    return arrayBinding.dimensions;
  }
View Full Code Here

   */
  public ITypeBinding getElementType() {
    if (!isArray()) {
      return null;
    }
    ArrayBinding arrayBinding = (ArrayBinding) this.binding;
    return this.resolver.getTypeBinding(arrayBinding.leafComponentType);
  }
View Full Code Here

      } else {
        final org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeBinding = (org.eclipse.jdt.internal.compiler.lookup.TypeBinding) declaringElement;
        if (typeBinding instanceof ReferenceBinding) {
          return !((ReferenceBinding) typeBinding).isBinaryBinding();
        } else if (typeBinding instanceof ArrayBinding) {
          final ArrayBinding arrayBinding = (ArrayBinding) typeBinding;
          final org.eclipse.jdt.internal.compiler.lookup.TypeBinding leafComponentType = arrayBinding.leafComponentType;
          if (leafComponentType instanceof ReferenceBinding) {
            return !((ReferenceBinding) leafComponentType).isBinaryBinding();
          }
        }
View Full Code Here

  }
}
public void varargsArgumentNeedCast(MethodBinding method, TypeBinding argumentType, InvocationSite location) {
  int severity = this.options.getSeverity(CompilerOptions.VarargsArgumentNeedCast);
  if (severity == ProblemSeverities.Ignore) return;
  ArrayBinding varargsType = (ArrayBinding)method.parameters[method.parameters.length-1];
  if (method.isConstructor()) {
    this.handle(
      IProblem.ConstructorVarargsArgumentNeedCast,
      new String[] {
          new String(argumentType.readableName()),
          new String(varargsType.readableName()),
          new String(method.declaringClass.readableName()),
          typesAsString(method, false),
          new String(varargsType.elementsType().readableName()),
      },
      new String[] {
          new String(argumentType.shortReadableName()),
          new String(varargsType.shortReadableName()),
          new String(method.declaringClass.shortReadableName()),
          typesAsString(method, true),
          new String(varargsType.elementsType().shortReadableName()),
      },
      severity,
      location.sourceStart(),
      location.sourceEnd());
  } else {
    this.handle(
      IProblem.MethodVarargsArgumentNeedCast,
      new String[] {
          new String(argumentType.readableName()),
          new String(varargsType.readableName()),
          new String(method.selector),
          typesAsString(method, false),
          new String(method.declaringClass.readableName()),
          new String(varargsType.elementsType().readableName()),
      },
      new String[] {
          new String(argumentType.shortReadableName()),
          new String(varargsType.shortReadableName()),
          new String(method.selector), typesAsString(method, true),
          new String(method.declaringClass.shortReadableName()),
          new String(varargsType.elementsType().shortReadableName()),
      },
      severity,
      location.sourceStart(),
      location.sourceEnd());
  }
View Full Code Here

      int argumentLength = originalArgumentTypes.length;
      if (binding.isVarargs()) {
        int paramLength = binding.parameters.length;
        if (paramLength == argumentLength) {
          int varargsIndex = paramLength - 1;
          ArrayBinding varargsType = (ArrayBinding) binding.parameters[varargsIndex];
          TypeBinding lastArgType = alternateArgumentTypes[varargsIndex];
          // originalType may be compatible already, but cast mandated
          // to clarify between varargs/non-varargs call
          if (varargsType.dimensions != lastArgType.dimensions()) {
            return;
          }
          if (lastArgType.isCompatibleWith(varargsType.elementsType())
              && lastArgType.isCompatibleWith(varargsType)) {
            return;
          }
        }
      }
View Full Code Here

            invocationStatus |= checkInvocationArgument(scope, arguments[i], parameterType, argumentTypes[i], originalRawParam);
          }
        }
        if (paramLength == argLength) { // 70056
          int varargsIndex = paramLength - 1;
          ArrayBinding varargsType = (ArrayBinding) params[varargsIndex];
          TypeBinding lastArgType = argumentTypes[varargsIndex];
          int dimensions;
          if (lastArgType == TypeBinding.NULL) {
            if (!(varargsType.leafComponentType().isBaseType() && varargsType.dimensions() == 1))
              scope.problemReporter().varargsArgumentNeedCast(method, lastArgType, invocationSite);
          } else if (varargsType.dimensions <= (dimensions = lastArgType.dimensions())) {
            if (lastArgType.leafComponentType().isBaseType()) {
              dimensions--;
            }
            if (varargsType.dimensions < dimensions) {
              scope.problemReporter().varargsArgumentNeedCast(method, lastArgType, invocationSite);
            } else if (varargsType.dimensions == dimensions
                    && TypeBinding.notEquals(lastArgType, varargsType)
                    && TypeBinding.notEquals(lastArgType.leafComponentType().erasure(), varargsType.leafComponentType.erasure())
                    && lastArgType.isCompatibleWith(varargsType.elementsType())
                    && lastArgType.isCompatibleWith(varargsType)) {
              scope.problemReporter().varargsArgumentNeedCast(method, lastArgType, invocationSite);
            }
          }
        }
View Full Code Here

        }
        // Reference to the class itself.
        jsniRef.setResolvedClassName(JdtUtil.getSourceName(binding));
        jsniRef.setResolvedMemberWithSignature(jsniRef.memberSignature());
        if (jsniRef.isArray()) {
          ArrayBinding arrayBinding =
              method.scope.createArrayType(binding, jsniRef.getDimensions());
          return arrayBinding;
        } else {
          return binding;
        }
View Full Code Here

      int argumentLength = originalArgumentTypes.length;
      if (binding.isVarargs()) {
        int paramLength = binding.parameters.length;
        if (paramLength == argumentLength) {
          int varargsIndex = paramLength - 1;
          ArrayBinding varargsType = (ArrayBinding) binding.parameters[varargsIndex];
          TypeBinding lastArgType = alternateArgumentTypes[varargsIndex];
          // originalType may be compatible already, but cast mandated
          // to clarify between varargs/non-varargs call
          if (varargsType.dimensions != lastArgType.dimensions()) {
            return;
          }
          if (lastArgType.isCompatibleWith(varargsType.elementsType())
              && lastArgType.isCompatibleWith(varargsType)) {
            return;
          }
        }
      }
View Full Code Here

    }

    // Check for an array.
    //
    if (binding instanceof ArrayBinding) {
      ArrayBinding arrayBinding = (ArrayBinding) binding;

      // Start by resolving the leaf type.
      //
      TypeBinding leafBinding = arrayBinding.leafComponentType;
      JType resolvedType = resolveType(logger, leafBinding);
View Full Code Here

TOP

Related Classes of org.eclipse.jdt.internal.compiler.lookup.ArrayBinding

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.