blob: d501914b82de00ea30660024270487ae7234445a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 xored software, Inc.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* xored software, Inc. - initial API and Implementation (Alex Panchenko)
*******************************************************************************/
package org.eclipse.dltk.javascript.core;
import org.eclipse.dltk.compiler.problem.IProblemCategory;
import org.eclipse.dltk.compiler.problem.IProblemIdentifier;
import org.eclipse.dltk.compiler.problem.IProblemIdentifierExtension2;
import org.eclipse.dltk.compiler.problem.IProblemIdentifierExtension3;
import org.eclipse.dltk.compiler.problem.ProblemCategory;
import org.eclipse.dltk.javascript.parser.JSParserProblemGroup;
public enum JavaScriptProblems implements IProblemIdentifier,
IProblemIdentifierExtension2, IProblemIdentifierExtension3 {
/**
* Unknown type specified in JSDoc
*/
UNKNOWN_TYPE,
/**
* Wrong type expression specified in javascript code, e.g.
* <code>new a.b.c.d()</code>
*/
WRONG_TYPE_EXPRESSION, DEPRECATED_TYPE,
/**
* Non-instantiable type
*/
NON_INSTANTIABLE_TYPE,
/**
* @since 3.0
*/
UNDECLARED_VARIABLE,
/**
* Undefined standalone function
*/
UNDEFINED_FUNCTION(UNDECLARED_VARIABLE),
/**
* Undefined object/class method
*/
UNDEFINED_METHOD,
/**
* Call to something which is not known be a function.
*/
WRONG_FUNCTION,
WRONG_PARAMETERS, WRONG_PARAMETERS_PARAMETERIZATION, WRONG_PARAMETERS_UNTYPED, DEPRECATED_METHOD,
/**
* @since 3.0
*/
DEPRECATED_FUNCTION,
/**
* @since 4.0
*/
INACCESSIBLE_MEMBER,
/**
* @since 5.0
*/
INACCESSIBLE_TYPE,
/**
* @since 5.0
*/
NOT_GENERIC_TYPE,
/**
* @since 5.0
*/
PARAMETERIZED_TYPE_INCORRECT_ARGUMENTS,
/**
* @since 3.0
*/
PRIVATE_FUNCTION,
/**
* @since 3.0
*/
WRONG_JAVA_PARAMETERS,
/**
* @since 3.0
*/
UNDEFINED_JAVA_METHOD,
/**
* @since 3.0
*/
DECLARATION_MISMATCH_ACTUAL_RETURN_TYPE, DECLARATION_MISMATCH_ACTUAL_RETURN_TYPE_PARAMETERIZATION,
UNDEFINED_PROPERTY, DEPRECATED_PROPERTY,
/**
* @since 3.0
*/
DEPRECATED_VARIABLE,
/**
* @since 3.0
*/
PRIVATE_VARIABLE,
/**
* @since 3.0
*/
HIDDEN_PROPERTY,
/**
* @since 3.0
*/
UNDEFINED_JAVA_PROPERTY,
/**
* @since 3.0
*/
REASSIGNMENT_OF_CONSTANT,
/**
* @since 4.0
*/
PROPERTY_READONLY,
/**
* @since 4.1
*/
UNASSIGNABLE_ELEMENT,
/**
* @since 3.0
*/
PARAMETER_HIDES_VARIABLE(JSParserProblemGroup.DECLARATION_HIDES_OTHER),
PARAMETER_HIDES_FUNCTION(JSParserProblemGroup.DECLARATION_HIDES_OTHER),
/**
* @since 3.0
*/
DUPLICATE_VAR_DECLARATION(JSParserProblemGroup.DECLARATION_HIDES_OTHER),
/**
* @since 3.0
*/
VAR_HIDES_PARAMETER(JSParserProblemGroup.DECLARATION_HIDES_OTHER),
/**
* @since 3.0
*/
VAR_HIDES_PROPERTY(JSParserProblemGroup.DECLARATION_HIDES_OTHER),
VAR_HIDES_METHOD(JSParserProblemGroup.DECLARATION_HIDES_OTHER),
/**
* @since 3.0
*/
VAR_HIDES_FUNCTION(JSParserProblemGroup.DECLARATION_HIDES_OTHER),
/**
* @since 5.0
*/
VAR_HIDES_PREDEFINED,
EQUAL_AS_ASSIGN, INVALID_ASSIGN_LEFT,
UNREACHABLE_CODE, RETURN_INCONSISTENT, FUNCTION_NOT_ALWAYS_RETURN_VALUE,
CONTINUE_NON_LOOP_LABEL, BREAK_NON_LOOP_LABEL,
/**
* @since 3.0
*/
BREAK_OUTSIDE_LABEL,
/**
* @since 3.0
*/
CONTINUE_OUTSIDE_LABEL,
DUPLICATE_PROPERTY_IN_LITERAL,
UNUSED_VARIABLE,
/**
* @since 3.0
*/
FUNCTION_HIDES_VARIABLE(JSParserProblemGroup.DECLARATION_HIDES_OTHER),
FUNCTION_HIDES_FUNCTION(JSParserProblemGroup.DECLARATION_HIDES_OTHER),
/**
* @since 5.0
*/
FUNCTION_HIDES_PREDEFINED;
private JavaScriptProblems() {
this(null);
}
private JavaScriptProblems(IProblemIdentifier primary) {
this.primary = primary;
}
private final IProblemIdentifier primary;
public IProblemIdentifier getPrimeIdentifier() {
return primary;
}
public boolean belongsTo(IProblemCategory category) {
return category == ProblemCategory.IMPORT && this == UNKNOWN_TYPE;
}
public String contributor() {
return JavaScriptPlugin.PLUGIN_ID;
}
}