98c2096f49
* Refactor the type checker to use diagnostics Although this patch is very large and seemingly disjoint the fixes are required to get it working for the entire stack. I started with first changing InferType to use the diagnostics, these weren't yet in the pass manager so this required changes to module and module pass. InferType wasn't actually written correctly as a pass requring refactoring there, then in order to add spans to AST it required turning on AnnotateSpans which in term required changes to the parser, and module to make it possible to use the errors. These changes to parse and module required changes to diagnostics and InferType. Althought seemingly disconnected there are hidden cycles between the components which require simultaneous change in order to remove the old error reporting. A huge change due to this patch is that the module no longer implicitly type checks functions which are added. * Apply suggestions from code review Co-authored-by: Robert Kimball <bobkimball@gmail.com> Co-authored-by: Junru Shao <junrushao1994@gmail.com> * Apply suggestions from code review Co-authored-by: Tristan Konolige <tristan.konolige@gmail.com> * Clean up parser * CR feedback * Apply Bobs suggestions * Fix up Python interface for diagnostics * Fix test_ir_parser and formatting * Fix cpplint * Fix lint * Fix format * More lint * Fix format * Kill dead doc comment * Fix documentation comment * Rebase fixups * Add docs for type.h * Fix parser.cc * Fix unittests * Fix black * Skip previously typechecked functions * fix ACL * Fix numerous issues * Add repr method * Fix issue with Pytest, I am ready to cry * Fix the rest of tests * Kill dead code * Fix dignostic tests * Fix more tests * fix more tests (#11) * Fix diagnostic.py deinit bug * Fix deinit issue * Format * Tweak disabling of override * Format * Fix BYOC * Fix TensorArray stuff * Fix PyTorch * Format * Format Co-authored-by: Robert Kimball <bobkimball@gmail.com> Co-authored-by: Junru Shao <junrushao1994@gmail.com> Co-authored-by: Tristan Konolige <tristan.konolige@gmail.com> Co-authored-by: Cody Yu <comaniac0422@gmail.com> Co-authored-by: Zhi <5145158+zhiics@users.noreply.github.com>
44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
# pylint: disable=invalid-name
|
|
"""The under development unified IR parsing infrastructure."""
|
|
from .. import _ffi, Object
|
|
from . import _ffi_api
|
|
|
|
|
|
@_ffi.register_object("SourceMap")
|
|
class SourceMap(Object):
|
|
def add(self, name, content):
|
|
return _ffi.get_global_func("SourceMapAdd")(self, name, content)
|
|
|
|
|
|
def parse(source, source_name="from_string"):
|
|
return _ffi_api.ParseModule(source_name, source)
|
|
|
|
|
|
def parse_expr(source):
|
|
return _ffi_api.ParseExpr("string", source)
|
|
|
|
|
|
def fromtext(source, source_name="from_string"):
|
|
return parse(source, source_name)
|
|
|
|
|
|
def SpanCheck():
|
|
"""A debugging utility for reporting missing span information."""
|
|
return _ffi_api.SpanCheck()
|