anchor.diff:        final body = getSyntheticMethod(context, declarationId).second;
         return Some(Tuple2(body, BodyAstToHirIds()));
       }
  +    if (!hasBody(context, declarationId)) return None();
   
       if (declarationId.isFunction) {
         final functionAst = getFunctionDeclarationAst(context, declarationId);
  -      if (functionAst.body == null) return None();
  +      assert(functionAst.body != null);
   
         final result = FunctionContext.lowerFunction(context, declarationId);
         // ignore: only_throw_errors, Iterables of errors are also handled.
  
positive.code:             getFunctionDeclarationHir(queryContext, declarationId);
          if (functionHir.isStatic) return;
        } else if (declarationId.isProperty) {
          final propertyHir =
              getPropertyDeclarationHir(queryContext, declarationId);
          if (propertyHir.isStatic) return;
        } else {
          throw CompilerError.unsupportedFeature(
            "Tried lowering an identifier in a body that's neither in a function nor in a property.",
  
negative.code:       /// 1. to get from trait to impl
        /// 2. to get from impl to class
        /// 3. to get from class to instance
        ///
        /// Update(2020-12-16): Sometimes, this doesn't work.
  
        // from class to instance
        final genericsMap = Map.fromEntries(typeParameters
  