blob: 3c9cb283e8b21a4dff346f92bc82e4c1e4657b44 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011 GK Software AG and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Stephan Herrmann - initial API and implementation
*******************************************************************************/
package org.eclipse.objectteams.internal.jdt.nullity;
import static org.eclipse.jdt.core.compiler.IProblem.ImportRelated;
import static org.eclipse.jdt.core.compiler.IProblem.Internal;
import static org.eclipse.jdt.core.compiler.IProblem.MethodRelated;
import static org.eclipse.jdt.core.compiler.IProblem.TypeRelated;
import org.eclipse.jdt.internal.compiler.ast.ASTNode;
import org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding;
import org.eclipse.jdt.internal.compiler.lookup.TypeBinding;
@SuppressWarnings("restriction")
public class Constants {
/** Additional constants for {@link org.eclipse.jdt.internal.compiler.lookup.TagBits}. */
static interface TagBits extends org.eclipse.jdt.internal.compiler.lookup.TagBits {
// the following two should be added to TagBits.AllStandardAnnotationsMask:
// MethodBinding or LocalVariableBinding (argument):
long AnnotationNullable = ASTNode.Bit59L;
long AnnotationNonNull = ASTNode.Bit60L;
// PackageBinding or TypeBinding or MethodBinding:
long AnnotationNullUnspecifiedByDefault = ASTNode.Bit61L;
long AnnotationNonNullByDefault = ASTNode.Bit62L;
}
// ASTNode:
// for annotation reference:
public static final int IsSynthetic = ASTNode.Bit7;
// for method declaration to avoid duplicate invocation of bindArguments()
public static final int HasBoundArguments = ASTNode.Bit10;
/** Additional constants for {@link org.eclipse.jdt.internal.compiler.lookup.TypeIds}. */
static interface TypeIds {
final int T_ConfiguredAnnotationNullable = 80;
final int T_ConfiguredAnnotationNonNull = 81;
final int T_ConfiguredAnnotationNonNullByDefault = 82;
}
/** Additional constants for {@link org.eclipse.jdt.core.compiler.IProblem}. */
public static interface IProblem {
/** @since 3.7 */
int RequiredNonNullButProvidedNull = TypeRelated + 910;
/** @since 3.7 */
int RequiredNonNullButProvidedPotentialNull = TypeRelated + 911;
/** @since 3.7 */
int RequiredNonNullButProvidedUnknown = TypeRelated + 912;
/** @since 3.7 */
int MissingNullAnnotationType = ImportRelated + 913;
/** @since 3.7 */
int IllegalReturnNullityRedefinition = MethodRelated + 914;
/** @since 3.7 */
int IllegalRedefinitionToNonNullParameter = MethodRelated + 915;
/** @since 3.7 */
int IllegalDefinitionToNonNullParameter = MethodRelated + 916;
/** @since 3.7 */
int ParameterLackingNonNullAnnotation = MethodRelated + 917;
/** @since 3.7 */
int ParameterLackingNullableAnnotation = MethodRelated + 918;
/** @since 3.7 */
int PotentialNullMessageSendReference = Internal + 919;
/** @since 3.7 */
int RedundantNullCheckOnNonNullMessageSend = Internal + 920;
/** @since 3.7 */
int CannotImplementIncompatibleNullness = Internal + 921;
/** @since 3.7 */
int NullAnnotationNameMustBeQualified = Internal + 922;
/** @since 3.7 */
int NullAnnotationIsRedundant = MethodRelated + 923;
}
/**
* This faked annotation type binding marks types with unspecified nullness.
* For use in {@link PackageBinding#nullnessDefaultAnnotation} and {@link SourceTypeBinding#nullnessDefaultAnnotation}
*/
final static ReferenceBinding NULL_UNSPECIFIED = new ReferenceBinding() {
public boolean hasTypeBit(int bit) {
return false;
}
/* faked type binding */
};
}