Da es nicht so explizit ist, schätze ich, dass Sie versuchen, Implementierungstyp zu initialisieren, der provider
Variable verwendet wird, die EnvironmentVariableCredientialsProvider
wäre.
Es gibt derzeit keinen einfachen und direkten Weg, dies zu erreichen. Der beste Weg wäre, wie folgt vorgehen:
- Vom
provider
IdentifierTree
, verwenden Sie die semantische API auf das entsprechende Symbol zu erhalten.
- Wechseln Sie vom Symbol
provider
zum Deklarationsbaum (der null ist, wenn der Bezeichner in einer anderen Datei deklariert ist).
- Von der
declaration
, und wenn der Baum ein VariableTree
ist, suchen Sie nach dem Initialisiererausdruck.
- Von der
ExpressionTree
, erhalten Sie den Typ des Symbols Typ, die Ihnen den Implementierungstyp geben wird.
Das ist ein erster Schritt, der Ihnen helfen sollte, weiter zu kommen. Natürlich müssen Sie als Nächstes wahrscheinlich Fälle behandeln, in denen die Variable ohne Initialisierer deklariert und dann anderswo zugewiesen wird. Um diese Ausdrücke abzurufen, sehen Sie sich die Symbolverwendungen anstelle der Deklaration an und gehen Sie die Bäume entlang.
Vielen Dank. –