Remove unnecessary code
diff --git a/tck/src/main/java/com/sun/ts/tests/el/common/elcontext/BarELContext.java b/tck/src/main/java/com/sun/ts/tests/el/common/elcontext/BarELContext.java index c4f205e..cd4a0dc 100644 --- a/tck/src/main/java/com/sun/ts/tests/el/common/elcontext/BarELContext.java +++ b/tck/src/main/java/com/sun/ts/tests/el/common/elcontext/BarELContext.java
@@ -45,11 +45,11 @@ @Override public ELResolver getELResolver() { - return (ELResolver) elResolver; + return elResolver; } public ELContext getELContext() { - return (ELContext) (this); + return this; } @Override
diff --git a/tck/src/main/java/com/sun/ts/tests/el/common/elcontext/BareBonesELContext.java b/tck/src/main/java/com/sun/ts/tests/el/common/elcontext/BareBonesELContext.java index 16eb368..d2679ec 100644 --- a/tck/src/main/java/com/sun/ts/tests/el/common/elcontext/BareBonesELContext.java +++ b/tck/src/main/java/com/sun/ts/tests/el/common/elcontext/BareBonesELContext.java
@@ -44,11 +44,11 @@ @Override public ELResolver getELResolver() { - return (ELResolver) elResolver; + return elResolver; } public ELContext getELContext() { - return (ELContext) (this); + return this; } @Override
diff --git a/tck/src/main/java/com/sun/ts/tests/el/common/elcontext/SimpleELContext.java b/tck/src/main/java/com/sun/ts/tests/el/common/elcontext/SimpleELContext.java index cc7fb18..f326e99 100644 --- a/tck/src/main/java/com/sun/ts/tests/el/common/elcontext/SimpleELContext.java +++ b/tck/src/main/java/com/sun/ts/tests/el/common/elcontext/SimpleELContext.java
@@ -57,7 +57,7 @@ public enum Resolver { EmployeeELResolver, VariableELResolver, VectELResolver - }; + } /* * Default Constructor. @@ -90,13 +90,13 @@ compResolver.add(myResolver); } - elResolver = (ELResolver) compResolver; + elResolver = compResolver; return elResolver; } public ELContext getELContext() { - return (ELContext) (this); + return this; } @Override
diff --git a/tck/src/main/java/com/sun/ts/tests/el/common/elcontext/VarMapperELContext.java b/tck/src/main/java/com/sun/ts/tests/el/common/elcontext/VarMapperELContext.java index 02c907a..3df09f0 100644 --- a/tck/src/main/java/com/sun/ts/tests/el/common/elcontext/VarMapperELContext.java +++ b/tck/src/main/java/com/sun/ts/tests/el/common/elcontext/VarMapperELContext.java
@@ -59,13 +59,13 @@ ELResolver elResolver; this.compResolver.add(new VariableELResolver()); this.compResolver.add(new jakarta.el.BeanELResolver()); - elResolver = (ELResolver) compResolver; + elResolver = compResolver; return elResolver; } public ELContext getELContext() { - return (ELContext) (this); + return this; } @Override
diff --git a/tck/src/main/java/com/sun/ts/tests/el/common/util/Fault.java b/tck/src/main/java/com/sun/ts/tests/el/common/util/Fault.java index aed9f32..02ecea3 100644 --- a/tck/src/main/java/com/sun/ts/tests/el/common/util/Fault.java +++ b/tck/src/main/java/com/sun/ts/tests/el/common/util/Fault.java
@@ -122,7 +122,7 @@ throw new IllegalStateException("Can't overwrite cause"); if (!Exception.class.isInstance(cause)) throw new IllegalArgumentException("Cause not permitted"); - this.t = (Exception) cause; + this.t = cause; return this; } }
diff --git a/tck/src/main/java/com/sun/ts/tests/el/common/util/Validator.java b/tck/src/main/java/com/sun/ts/tests/el/common/util/Validator.java index 3c74a29..0299029 100644 --- a/tck/src/main/java/com/sun/ts/tests/el/common/util/Validator.java +++ b/tck/src/main/java/com/sun/ts/tests/el/common/util/Validator.java
@@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2020 Oracle and/or its affiliates and others. + * Copyright (c) 2012, 2025 Oracle and/or its affiliates and others. * All rights reserved. * * This program and the accompanying materials are made available under the @@ -50,7 +50,7 @@ * This method is used to validate an expression that have at least one * BigDecimal in it. We pass in one of the operands(testVal), the other * operand is automatically picked up from the NumberList. - * + * * @param testVal * - One of the operands used in the expression. * @param expectedVal @@ -65,7 +65,7 @@ Class<?> returnType; for (int i = 0; TestNum.getNumberList().size() > i; i++) { - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "*** Start " + "\"" + "BigDecimal" + "\"" + " Test Sequence ***"); Object testNum = TestNum.getNumberList().get(i); @@ -98,7 +98,7 @@ logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getName()); pass = (ExprEval.compareClass(result, returnType) - && ExprEval.compareValue((Double) result, + && ExprEval.compareValue(result, Double.valueOf(((BigDecimal) expectedVal).doubleValue()))); } else { returnType = BigDecimal.class; @@ -118,7 +118,7 @@ } finally { ExprEval.cleanup(); - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "*** End " + "\"" + "BigDecimal" + "\"" + " Test Sequence ***"); } @@ -132,7 +132,7 @@ * This method is used to validate an expression that have at least one Float * in it. We pass in one of the operands(testVal), the other operand is * automatically picked up from the NumberList. - * + * * @param testVal * - One of the operands used in the expression. * @param expectedVal @@ -184,16 +184,16 @@ // If the Operator is "%" then the return type is Double. } else if ("%".equals(operator)) { returnType = Double.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) - && ExprEval.compareValue((Double) result, + && ExprEval.compareValue(result, Double.valueOf(((Float) expectedVal).doubleValue()))); } else { if (testNum instanceof BigInteger) { returnType = BigDecimal.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) @@ -201,7 +201,7 @@ (Float) expectedVal, 3)); } else { returnType = Double.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) && ExprEval @@ -231,7 +231,7 @@ * This method is used to validate an expression that have at least one Double * in it. We pass in one of the operands(testVal), the other operand is * automatically picked up from the NumberList. - * + * * @param testVal * - One of the operands used in the expression. * @param expectedVal @@ -248,7 +248,7 @@ // For each NumberType in this list. for (int i = 0; TestNum.getNumberList().size() > i; i++) { - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "*** Start " + "\"" + "Double" + "\"" + "Test " + "Sequence ***"); Object testNum = TestNum.getNumberList().get(i); @@ -284,15 +284,15 @@ // If the Operator is "%" then the return type is Double. } else if ("%".equals(operator)) { returnType = Double.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) - && ExprEval.compareValue((Double) result, expectedVal)); + && ExprEval.compareValue(result, expectedVal)); } else { if (testNum instanceof BigInteger) { returnType = BigDecimal.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) @@ -300,11 +300,11 @@ expectedVal)); } else { returnType = Double.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) - && ExprEval.compareValue((Double) result, expectedVal)); + && ExprEval.compareValue(result, expectedVal)); } } @@ -332,7 +332,7 @@ * NumericString in it (numeric String containing ".", "e", or "E". We pass in * one of the operands(testVal), the other operand is automatically picked up * from the NumberList. - * + * * @param testVal * - One of the operands used in the expression. * @param expectedVal @@ -379,15 +379,15 @@ if ("%".equals(operator)) { returnType = Double.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) - && ExprEval.compareValue((Double) result, expectedVal)); + && ExprEval.compareValue(result, expectedVal)); } else { if (testNum instanceof BigInteger) { returnType = BigDecimal.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) @@ -395,11 +395,11 @@ expectedVal)); } else { returnType = Double.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) - && ExprEval.compareValue((Double) result, expectedVal)); + && ExprEval.compareValue(result, expectedVal)); } } @@ -413,7 +413,7 @@ } finally { ExprEval.cleanup(); - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "*** End " + "\"" + "NumericString" + "\"" + " Test Sequence ***"); } @@ -427,7 +427,7 @@ * This method is used to validate an expression that have at least one * BigInteger in it. We pass in one of the operands(testVal), the other * operand is automatically picked up from the numberList. - * + * * @param testVal * - One of the operands used in the expression. * @param expectedVal @@ -444,7 +444,7 @@ // For each NumberType in this list. for (int i = 0; TestNum.getNumberList().size() > i; i++) { - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "*** Start " + "\"" + "BigInteger" + "\"" + " Test Sequence ***"); Object testNum = TestNum.getNumberList().get(i); @@ -483,7 +483,7 @@ // BigDecimal. } else if ("/".equals(operator)) { returnType = BigDecimal.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) @@ -492,7 +492,7 @@ 0)); } else { returnType = BigInteger.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) && ExprEval @@ -509,7 +509,7 @@ } finally { ExprEval.cleanup(); - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "*** End " + "\"" + "BigInteger" + "\"" + " Test Sequence ***"); } @@ -523,7 +523,7 @@ * This method is used to validate an expression that have at least one Long * in it. We pass in one of the operands(testVal), the other operand is * automatically picked up from the numberList. - * + * * @param testVal * - One of the operands used in the expression. * @param expectedVal @@ -578,15 +578,15 @@ // If the Operator is "/" then the return type is Double. } else if ("/".equals(operator)) { returnType = Double.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) - && ExprEval.compareValue((Double) result, + && ExprEval.compareValue(result, ((Long) expectedVal).doubleValue())); } else { returnType = Long.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) @@ -616,7 +616,7 @@ * This method is used to validate an expression that have at least one * Integer in it. We pass in one of the operands(testVal), the other operand * is automatically picked up from the numberList. - * + * * @param testVal * - One of the operands used in the expression. * @param expectedVal @@ -633,7 +633,7 @@ // For each NumberType in this list. for (int i = 0; TestNum.getNumberList().size() > i; i++) { - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "*** Start " + "\"" + "Integer" + "\"" + " Test Sequence ***"); Object testNum = TestNum.getNumberList().get(i); @@ -672,19 +672,19 @@ // If the Operator is "/" then the return type is Double. } else if ("/".equals(operator)) { returnType = Double.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) - && ExprEval.compareValue((Double) result, + && ExprEval.compareValue(result, ((Integer) expectedVal).doubleValue())); } else { returnType = Long.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) - && ExprEval.compareValue((Long) result, + && ExprEval.compareValue(result, ((Integer) expectedVal).longValue())); } @@ -698,7 +698,7 @@ } finally { ExprEval.cleanup(); - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "*** End " + "\"" + "Integer" + "\"" + " Test Sequence ***"); } @@ -712,7 +712,7 @@ * This method is used to validate an expression that have at least one Short * in it. We pass in one of the operands(testVal), the other operand is * automatically picked up from the numberList. - * + * * @param testVal * - One of the operands used in the expression. * @param expectedVal @@ -765,19 +765,19 @@ // If the Operator is "/" then the return type is Double. } else if ("/".equals(operator)) { returnType = Double.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) - && ExprEval.compareValue((Double) result, + && ExprEval.compareValue(result, ((Short) expectedVal).doubleValue())); } else { returnType = Long.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) && ExprEval - .compareValue((Long) result, ((Short) expectedVal).longValue())); + .compareValue(result, ((Short) expectedVal).longValue())); } } catch (RuntimeException re) { @@ -803,7 +803,7 @@ * This method is used to validate an expression that have at least one Byte * in it. We pass in one of the operands(testVal), the other operand is * automatically picked up from the numberList. - * + * * @param testVal * - One of the operands used in the expression. * @param expectedVal @@ -856,19 +856,19 @@ // If the Operator is "/" then the return type is Double. } else if ("/".equals(operator)) { returnType = Double.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) - && ExprEval.compareValue((Double) result, + && ExprEval.compareValue(result, ((Byte) expectedVal).doubleValue())); } else { returnType = Long.class; - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "Setting Expected Type: " + returnType.getCanonicalName()); pass = (ExprEval.compareClass(result, returnType) && ExprEval - .compareValue((Long) result, ((Byte) expectedVal).longValue())); + .compareValue(result, ((Byte) expectedVal).longValue())); } } catch (RuntimeException re) { @@ -893,7 +893,7 @@ /** * This method is used to validate an expression that has at least one boolean * in it. - * + * * @param testValOne * - The boolean operand. * @param testValTwo @@ -913,7 +913,7 @@ testValTwo); try { - logger.log(Logger.Level.INFO, + logger.log(Logger.Level.INFO, "*** Start " + "\"" + "Boolean" + "\"" + " Test Sequence ***"); String expr = ExprEval.buildElExpr(true, operator); logger.log(Logger.Level.INFO, "expression to be evaluated is " + expr); @@ -932,7 +932,7 @@ } else { logger.log(Logger.Level.INFO, "result is " + result.toString()); pass = (ExprEval.compareClass(result, Boolean.class) - && ExprEval.compareValue((Boolean) result, expectedVal)); + && ExprEval.compareValue(result, expectedVal)); } } catch (RuntimeException re) {
diff --git a/tck/src/main/java/com/sun/ts/tests/el/signaturetest/SigTestDriver.java b/tck/src/main/java/com/sun/ts/tests/el/signaturetest/SigTestDriver.java index 54efc08..b9e2e5c 100644 --- a/tck/src/main/java/com/sun/ts/tests/el/signaturetest/SigTestDriver.java +++ b/tck/src/main/java/com/sun/ts/tests/el/signaturetest/SigTestDriver.java
@@ -115,7 +115,7 @@ command.add(API_VERSION_FLAG); command.add(info.getVersion()); - return ((String[]) command.toArray(new String[command.size()])); + return command.toArray(new String[command.size()]); } // END createTestArguments @@ -136,7 +136,6 @@ logger.log(Logger.Level.TRACE, " testArguments[" + ii + "] = " + testArguments[ii]); } - @SuppressWarnings("unchecked") Method runMethod = sigTestClass.getDeclaredMethod("run", new Class[] { String[].class, PrintWriter.class, PrintWriter.class }); runMethod.invoke(sigTestInstance,
diff --git a/tck/src/main/java/com/sun/ts/tests/el/spec/coercion/ELClientIT.java b/tck/src/main/java/com/sun/ts/tests/el/spec/coercion/ELClientIT.java index 4351d33..ea2576c 100644 --- a/tck/src/main/java/com/sun/ts/tests/el/spec/coercion/ELClientIT.java +++ b/tck/src/main/java/com/sun/ts/tests/el/spec/coercion/ELClientIT.java
@@ -71,14 +71,14 @@ private static enum greeting { hello, goodbye - }; + } private Hashtable<Class<?>,Object> numberTable; private enum planets { MERCURY, VENUS, EARTH, MARS, JUPITER, SATURN, URANUS, NEPTUNE /** ,PLUTO */ - }; + } public ELClientIT(){ initializeNumberTable(); @@ -1905,7 +1905,7 @@ Object result = ExprEval.evaluateValueExpression("${A}", timeNV, Date.class); pass1 = ExprEval.compareClass(result, Date.class) - && ExprEval.compareValue(result, (Date) time); + && ExprEval.compareValue(result, time); result = ExprEval.evaluateValueExpression("#{null}", null, Date.class); pass2 = (result == null) ? true : false;
diff --git a/tck/src/main/java/com/sun/ts/tests/el/spec/literal/ELClientIT.java b/tck/src/main/java/com/sun/ts/tests/el/spec/literal/ELClientIT.java index 9369cd2..9495901 100644 --- a/tck/src/main/java/com/sun/ts/tests/el/spec/literal/ELClientIT.java +++ b/tck/src/main/java/com/sun/ts/tests/el/spec/literal/ELClientIT.java
@@ -135,7 +135,7 @@ logger.log(Logger.Level.TRACE, "result is " + result.toString()); pass1 = (ExprEval.compareClass(result, Long.class) - && ExprEval.compareValue((Long) result, expectedResult)); + && ExprEval.compareValue(result, expectedResult)); } catch (Exception e) { throw new Exception(e); @@ -149,7 +149,7 @@ "#{" + tInteger.toString() + "}", null, Object.class); logger.log(Logger.Level.TRACE, "result is " + result.toString()); pass2 = (ExprEval.compareClass(result, Long.class) - && ExprEval.compareValue((Long) result, expectedResult)); + && ExprEval.compareValue(result, expectedResult)); } catch (Exception e) { throw new Exception(e); @@ -249,7 +249,7 @@ logger.log(Logger.Level.TRACE, "result is " + result.toString()); pass1 = (ExprEval.compareClass(result, String.class) - && ExprEval.compareValue((String) result, expectedResult)); + && ExprEval.compareValue(result, expectedResult)); } catch (Exception e) { throw new Exception(e); @@ -263,7 +263,7 @@ "#{" + testString + "}", null, Object.class); logger.log(Logger.Level.TRACE, "result is " + result.toString()); pass2 = (ExprEval.compareClass(result, String.class) - && ExprEval.compareValue((String) result, expectedResult)); + && ExprEval.compareValue(result, expectedResult)); } catch (Exception e) { throw new Exception(e); @@ -347,7 +347,7 @@ while (itr.hasNext()) { expected = itr.next(); - exprStr = (String) testValues.get(expected); + exprStr = testValues.get(expected); try { Object expr = ExprEval.evaluateValueExpression(exprStr, null,
diff --git a/tck/src/main/java/com/sun/ts/tests/el/spec/relationaloperator/ELClientIT.java b/tck/src/main/java/com/sun/ts/tests/el/spec/relationaloperator/ELClientIT.java index 908e8d8..1aa3372 100644 --- a/tck/src/main/java/com/sun/ts/tests/el/spec/relationaloperator/ELClientIT.java +++ b/tck/src/main/java/com/sun/ts/tests/el/spec/relationaloperator/ELClientIT.java
@@ -44,7 +44,7 @@ private enum TestEnum { APPLE, PEAR - }; + } // Data Type to test String Coercion. private static final DougType DT = new DougType();
diff --git a/tck/src/main/java/com/sun/ts/tests/el/spec/unaryoperator/ELClientIT.java b/tck/src/main/java/com/sun/ts/tests/el/spec/unaryoperator/ELClientIT.java index f61a2e2..fd0bd09 100644 --- a/tck/src/main/java/com/sun/ts/tests/el/spec/unaryoperator/ELClientIT.java +++ b/tck/src/main/java/com/sun/ts/tests/el/spec/unaryoperator/ELClientIT.java
@@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2020 Oracle and/or its affiliates and others. + * Copyright (c) 2009, 2025 Oracle and/or its affiliates and others. * All rights reserved. * * This program and the accompanying materials are made available under the @@ -200,7 +200,7 @@ logger.log(Logger.Level.TRACE, "result is " + result.toString()); pass = (ExprEval.compareClass(result, Double.class) - && ExprEval.compareValue((Double) result, expectedResult)); + && ExprEval.compareValue(result, expectedResult)); } } @@ -242,7 +242,7 @@ logger.log(Logger.Level.TRACE, "result is " + result.toString()); pass = (ExprEval.compareClass(result, Long.class) - && ExprEval.compareValue((Long) result, expectedResult)); + && ExprEval.compareValue(result, expectedResult)); } if (!pass) @@ -282,7 +282,7 @@ logger.log(Logger.Level.TRACE, "result is " + result.toString()); pass = (ExprEval.compareClass(result, Byte.class) - && ExprEval.compareValue((Byte) result, expectedResult)); + && ExprEval.compareValue(result, expectedResult)); } if (!pass) @@ -322,7 +322,7 @@ logger.log(Logger.Level.TRACE, "result is " + result.toString()); pass = (ExprEval.compareClass(result, Short.class) - && ExprEval.compareValue((Short) result, expectedResult)); + && ExprEval.compareValue(result, expectedResult)); } if (!pass) @@ -362,7 +362,7 @@ logger.log(Logger.Level.TRACE, "result is " + result.toString()); pass = (ExprEval.compareClass(result, Integer.class) - && ExprEval.compareValue((Integer) result, expectedResult)); + && ExprEval.compareValue(result, expectedResult)); } if (!pass) @@ -402,7 +402,7 @@ logger.log(Logger.Level.TRACE, "result is " + result.toString()); pass = (ExprEval.compareClass(result, Long.class) - && ExprEval.compareValue((Long) result, expectedResult)); + && ExprEval.compareValue(result, expectedResult)); } if (!pass) @@ -482,7 +482,7 @@ logger.log(Logger.Level.TRACE, "result is " + result.toString()); pass = (ExprEval.compareClass(result, Double.class) - && ExprEval.compareValue((Double) result, expectedResult)); + && ExprEval.compareValue(result, expectedResult)); } if (!pass)