public FuzzyBoolean match(Shadow shadow) { if (!couldMatch(shadow)) return FuzzyBoolean.NO; TypeX typeToMatch = isThis ? shadow.getThisType() : shadow.getTargetType();   return type.matches(typeToMatch.resolve(shadow.getIWorld()), TypePattern.DYNAMIC);
public FuzzyBoolean match(JoinPoint jp, JoinPoint.StaticPart encJP) { Object toMatch = isThis ? jp.getThis() : jp.getTarget(); if (toMatch == null) return FuzzyBoolean.NO; return type.matches(toMatch.getClass(), TypePattern.DYNAMIC);
	public FuzzyBoolean match(Shadow shadow) {		if (!couldMatch(shadow)) return FuzzyBoolean.NO;		TypeX typeToMatch = isThis ? shadow.getThisType() : shadow.getTargetType(); 		//if (typeToMatch == ResolvedTypeX.MISSING) return FuzzyBoolean.NO;				return type.matches(typeToMatch.resolve(shadow.getIWorld()), TypePattern.DYNAMIC);	}