getSourceCode method
Implementation
Future<String> getSourceCode(BuildStep step) async {
if (sourcesCache.containsKey(hashCode)) {
return sourcesCache[hashCode]!;
}
String part = '';
try {
// TODO: https://github.com/dart-lang/build/issues/2634
// find better way to get method source?
ParsedLibraryResult result =
session!.getParsedLibraryByElement(library) as ParsedLibraryResult;
part = result.getFragmentDeclaration(firstFragment)!.node.toSource();
} on InconsistentAnalysisException {
var resolver = step.resolver;
ResolvedLibraryResult result = await _getResolvedLibrary(
library,
resolver,
);
part = result.getFragmentDeclaration(firstFragment)!.node.toSource();
}
//named parameters can be defined
part = part.substring(part.indexOf(') {') + 3, part.length - 1);
sourcesCache[hashCode] = part;
//part = '//method_hash:' + this.hashCode.toString() + "\n" + part;
return part;
}