Fix language detection handling
Opened this issue · 1 comments
woodruffw commented
This has two parts:
- The "high level" bug is that inputs don't affect the
Tool.lang
correctly --Tool.lang
is determined only by the presence of an-x
flag or the tool class itself, meaning thatblight.CC.lang
will always reportLang.C
unless-x c++
is passed. This manifests particularly as the wronglang
value for assembly inputs:cc foo.s
ought to reportLang.Asm
(which doesn't exist yet), but reportsLang.C
instead. - The "low level" bug is that
Tool.lang
is a bad abstraction: a given tool invocation might be handling multiple languages at once, or no languages at all.
Long term, we should probably just kill off the Tool.lang
API. Shorter term, we should try to make its behavior more intuitive (e.g. sniffing file suffixes when available, and presenting a Lang
variant based on them).