[vpm] typedMatchAnonFun: selectorTp, params in scope
typedMatchAnonFun seems to work

need to set up symbols with approximated info for the method and its owner
before typing the method's body; when the body has been typed,
we know what its result type will be, so update info of class and method to reflect that

better detection of synthesized matches: annotate selector rather than relying on symbol info

encapsulate CASE | SYNTHETIC flags (setting and querying)
handle missing type info
remove wrong comment

still something pretty wrong though, VerifyError when bootstrapping using -Yvirtpatmat:

quick.plugins:
    [mkdir] Created dir: /Users/adriaan/git/scala-build/build/quick/classes/continuations-plugin
[scalacfork] Compiling 5 files to /Users/adriaan/git/scala-build/build/quick/classes/continuations-plugin
[scalacfork] Exception in thread "main" java.lang.VerifyError: (class: scala/reflect/internal/Types$class, method: matchesType signature: (Lscala/reflect/internal/SymbolTable;Lscala/reflect/internal/Types$Type;Lscala/reflect/internal/Types$Type;Z)Z) Register 12 contains wrong type
[scalacfork] 	at scala.reflect.internal.SymbolTable.<init>(SymbolTable.scala:13)
don't throw error in setError when -Ydebug
diagnosing genicode bug

scalac -Yvirtpatmat src/compiler/scala/reflect/internal/Types.scala

results in bytecode that does not verify, the culprit is: genLoad(rhs, ctx1, expectedType /*toTypeKind(tree.symbol.info.resultType)*/) in GenICode

this shouldn't happen (-Ydebug -Ylog:icode output):
Dropped a BOOL at source-/Users/adriaan/git/scala/src/compiler/scala/reflect/internal/Types.scala,line-5582,offset=226564 in 	package: internal
	clazz: scala.reflect.internal.Types$class
	method: scala.reflect.internal.Types$class.matchesType
	bb: 163
	labels: Map(method _matchesType -> method _matchesType, method case13 -> method case13, method case14 -> method case14, method matchEnd3 -> method matchEnd3, method matchEnd12 -> method matchEnd12, method case16 -> method case16, method case7 -> method case7, method case14 -> method case14, method matchEnd10 -> method matchEnd10, method matchEnd6 -> method matchEnd6, method case13 -> method case13, method case4 -> method case4, method case8 -> method case8, method case16 -> method case16, method case14 -> method case14, method case5 -> method case5, method case15 -> method case15, method case15 -> method case15, method case17 -> method case17, method case11 -> method case11, method case7 -> method case7, method case8 -> method case8, method case13 -> method case13, method case6 -> method case6, method case9 -> method case9, method case12 -> method case12, method case11 -> method case11, method matchEnd5 -> method matchEnd5, method matchEnd10 -> method matchEnd10, method case12 -> method case12, method case15 -> method case15)
	exception handlers: List()
	cleanups: List()
	scope: [][value $this, value tp1$3, value tp2$3, value alwaysMatchSimple$1][][][value x1][value x5][value x1]

java.lang.Exception: Stack trace
	at java.lang.Thread.dumpStack(Thread.java:1273)
	at scala.tools.nsc.backend.icode.GenICode$ICodePhase.adapt(GenICode.scala:1121)
	at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genLoad(GenICode.scala:1110) // if (generatedType != expectedType) adapt(generatedType, expectedType, resCtx, tree.pos)

	at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genLoad(GenICode.scala:624)  // genLoad(rhs, ctx1, expectedType /*toTypeKind(tree.symbol.info.resultType)*/)
	at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genStat(GenICode.scala:178)  // genLoad(tree, ctx, UNIT)