Buggy code:
public class ArgsPointcut extends NameBindingPointcut { private static final String ASPECTJ_JP_SIGNATURE_PREFIX = "Lorg//aspectj//lang//JoinPoint" ; private static final String ASPECTJ_SYNTHETIC_SIGNATURE_PREFIX = "Lorg//aspectj//runtime//internal//" ; private TypePatternList arguments ; private String stringRepresentation ; public ArgsPointcut ( TypePatternList arguments ) { } public TypePatternList getArguments ( ) { } public Pointcut parameterizeWith ( Map typeVariableMap ) { } public Set couldMatchKinds ( ) { } public FuzzyBoolean fastMatch ( FastMatchInfo type ) { } protected FuzzyBoolean matchInternal ( Shadow shadow ) { } private ResolvedType [ ] getArgumentsToMatchAgainst ( Shadow shadow ) { } public List getBindingAnnotationTypePatterns ( ) { } public List getBindingTypePatterns ( ) { } public void write ( DataOutputStream s ) throws IOException { } public static Pointcut read ( VersionedDataInputStream s , ISourceContext context ) throws IOException { } public boolean equals ( Object other ) { } public int hashCode ( ) { } public void resolveBindings ( IScope scope , Bindings bindings ) { } public void postRead ( ResolvedType enclosingType ) { } public Pointcut concretize1 ( ResolvedType inAspect , ResolvedType declaringType , IntMap bindings ) { } private Test findResidueNoEllipsis ( Shadow shadow , ExposedState state , TypePattern [ ] patterns ) { ResolvedType [ ] argumentsToMatchAgainst = getArgumentsToMatchAgainst ( shadow ) ; int len = argumentsToMatchAgainst . length ; if ( ( patterns . length ) != len ) { return Literal . FALSE ; } Test ret = Literal . TRUE ; for ( int i = 0 ; i < len ; i ++ ) { UnresolvedType argType = shadow . getGenericArgTypes ( ) [ i ] ; TypePattern type = patterns [ i ] ; ResolvedType argRTX = shadow . getIWorld ( ) . resolve ( argType , true ) ; if ( ! ( type instanceof BindingTypePattern ) ) { <START_BUG> if ( argRTX == ( ResolvedType . MISSING ) ) { <END_BUG> shadow . getIWorld ( ) . getLint ( ) . cantFindType . signal ( new String [ ] { WeaverMessages . format ( CANT_FIND_TYPE_ARG_TYPE , argType . getName ( ) ) } , shadow . getSourceLocation ( ) , new ISourceLocation [ ] { getSourceLocation ( ) } ) ; } if ( type . matchesInstanceof ( argRTX ) . alwaysTrue ( ) ) { continue ; } } World world = shadow . getIWorld ( ) ; ResolvedType typeToExpose = type . getExactType ( ) . resolve ( world ) ; if ( typeToExpose . isParameterizedType ( ) ) { boolean inDoubt = ( type . matchesInstanceof ( argRTX ) ) == ( FuzzyBoolean . MAYBE ) ; if ( inDoubt && ( world . getLint ( ) . uncheckedArgument . isEnabled ( ) ) ) { String uncheckedMatchWith = typeToExpose . getSimpleBaseName ( ) ; if ( ( argRTX . isParameterizedType ( ) ) && ( ( argRTX . getRawType ( ) ) == ( typeToExpose . getRawType ( ) ) ) ) { uncheckedMatchWith = argRTX . getSimpleName ( ) ; } if ( ! ( isUncheckedArgumentWarningSuppressed ( ) ) ) { world . getLint ( ) . uncheckedArgument . signal ( new String [ ] { typeToExpose . getSimpleName ( ) , uncheckedMatchWith , typeToExpose . getSimpleBaseName ( ) , shadow . toResolvedString ( world ) } , getSourceLocation ( ) , new ISourceLocation [ ] { shadow . getSourceLocation ( ) } ) ; } } } ret = Test . makeAnd ( ret , exposeStateForVar ( shadow . getArgVar ( i ) , type , state , shadow . getIWorld ( ) ) ) ; } return ret ; } private boolean isUncheckedArgumentWarningSuppressed ( ) { } protected Test findResidueInternal ( Shadow shadow , ExposedState state ) { } public String toString ( ) { } public Object accept ( PatternNodeVisitor visitor , Object data ) { } }

Fix:
if ( argRTX . isMissing ( ) ) {